LLVMLinkage.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 06 Jul 2016 09:53:56 +0100
changeset 70 ced2a5c16e70
parent 14 c7dea3fcc5a7
permissions -rw-r--r--
Added builder support for llvm.memset , llvm.memmove and llvm.memcpy intrinsics For those, use specialized IR builder routines rather than manually calling the intrinsic. The problem which the latter is that those instrinsics are overloaded and - for reason not yet known - retrieving them cause crash. So better strick to LLVM way of doing so - through IRBuilder.

"
    Copyright (C) 2015-now Jan Vrany

    This code is not an open-source (yet). You may use this code
    for your own experiments and projects, given that:

    * all modification to the code will be sent to the
      original author for inclusion in future releases
    * this is not used in any commercial software

    This license is provisional and may (will) change in
    a future.
"
"{ Package: 'jv:llvm_s' }"

"{ NameSpace: Smalltalk }"

SharedPool subclass:#LLVMLinkage
	instanceVariableNames:''
	classVariableNames:'LLVMExternalLinkage LLVMAvailableExternallyLinkage
		LLVMLinkOnceAnyLinkage LLVMLinkOnceODRLinkage
		LLVMLinkOnceODRAutoHideLinkage LLVMWeakAnyLinkage
		LLVMWeakODRLinkage LLVMAppendingLinkage LLVMInternalLinkage
		LLVMPrivateLinkage LLVMDLLImportLinkage LLVMDLLExportLinkage
		LLVMExternalWeakLinkage LLVMGhostLinkage LLVMCommonLinkage
		LLVMLinkerPrivateLinkage LLVMLinkerPrivateWeakLinkage'
	poolDictionaries:''
	category:'LLVM-S-Core-Constants'
!

!LLVMLinkage class methodsFor:'documentation'!

copyright
"
    Copyright (C) 2015-now Jan Vrany

    This code is not an open-source (yet). You may use this code
    for your own experiments and projects, given that:

    * all modification to the code will be sent to the
      original author for inclusion in future releases
    * this is not used in any commercial software

    This license is provisional and may (will) change in
    a future.
"
! !

!LLVMLinkage class methodsFor:'initialization'!

initialize

    LLVMExternalLinkage := 0.
    LLVMAvailableExternallyLinkage := 1.
    LLVMLinkOnceAnyLinkage := 2.
    LLVMLinkOnceODRLinkage := 3.
    LLVMLinkOnceODRAutoHideLinkage := 4.
    LLVMWeakAnyLinkage := 5.
    LLVMWeakODRLinkage := 6.
    LLVMAppendingLinkage := 7.
    LLVMInternalLinkage := 8.
    LLVMPrivateLinkage := 9.
    LLVMDLLImportLinkage := 10.
    LLVMDLLExportLinkage := 11.
    LLVMExternalWeakLinkage := 12.
    LLVMGhostLinkage := 13.
    LLVMCommonLinkage := 14.
    LLVMLinkerPrivateLinkage := 15.
    LLVMLinkerPrivateWeakLinkage := 16.
! !

!LLVMLinkage class methodsFor:'constants'!

LLVMAppendingLinkage

    ^LLVMAppendingLinkage
!

LLVMAvailableExternallyLinkage

    ^LLVMAvailableExternallyLinkage
!

LLVMCommonLinkage

    ^LLVMCommonLinkage
!

LLVMDLLExportLinkage

    ^LLVMDLLExportLinkage
!

LLVMDLLImportLinkage

    ^LLVMDLLImportLinkage
!

LLVMExternalLinkage

    ^LLVMExternalLinkage
!

LLVMExternalWeakLinkage

    ^LLVMExternalWeakLinkage
!

LLVMGhostLinkage

    ^LLVMGhostLinkage
!

LLVMInternalLinkage

    ^LLVMInternalLinkage
!

LLVMLinkOnceAnyLinkage

    ^LLVMLinkOnceAnyLinkage
!

LLVMLinkOnceODRAutoHideLinkage

    ^LLVMLinkOnceODRAutoHideLinkage
!

LLVMLinkOnceODRLinkage

    ^LLVMLinkOnceODRLinkage
!

LLVMLinkerPrivateLinkage

    ^LLVMLinkerPrivateLinkage
!

LLVMLinkerPrivateWeakLinkage

    ^LLVMLinkerPrivateWeakLinkage
!

LLVMPrivateLinkage

    ^LLVMPrivateLinkage
!

LLVMWeakAnyLinkage

    ^LLVMWeakAnyLinkage
!

LLVMWeakODRLinkage

    ^LLVMWeakODRLinkage
! !


LLVMLinkage initialize!