llvm_c_ext: Improved `LLVMSetMetadata2()` to support also function values
...in addition to instruction values. This is handy to attach data to functions,
such as debugging information. Added Smalltalk API for setting metadata nodes
on instructions and functions.
"
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:#LLVMOpcode
instanceVariableNames:''
classVariableNames:'LLVMRet LLVMBr LLVMSwitch LLVMIndirectBr LLVMInvoke
LLVMUnreachable LLVMAdd LLVMFAdd LLVMSub LLVMFSub LLVMMul
LLVMFMul LLVMUDiv LLVMSDiv LLVMFDiv LLVMURem LLVMSRem LLVMFRem
LLVMShl LLVMLShr LLVMAShr LLVMAnd LLVMOr LLVMXor LLVMAlloca
LLVMLoad LLVMStore LLVMGetElementPtr LLVMTrunc LLVMZExt LLVMSExt
LLVMFPToUI LLVMFPToSI LLVMUIToFP LLVMSIToFP LLVMFPTrunc LLVMFPExt
LLVMPtrToInt LLVMIntToPtr LLVMBitCast LLVMAddrSpaceCast LLVMICmp
LLVMFCmp LLVMPHI LLVMCall LLVMSelect LLVMUserOp1 LLVMUserOp2
LLVMVAArg LLVMExtractElement LLVMInsertElement LLVMShuffleVector
LLVMExtractValue LLVMInsertValue LLVMFence LLVMAtomicCmpXchg
LLVMAtomicRMW LLVMResume LLVMLandingPad LLVMCleanupRet
LLVMCatchRet LLVMCatchPad LLVMTerminatePad LLVMCleanupPad
LLVMCatchEndPad'
poolDictionaries:''
category:'LLVM-S-Core-Constants'
!
!LLVMOpcode 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.
"
! !
!LLVMOpcode class methodsFor:'initialization'!
initialize
LLVMRet := 1.
LLVMBr := 2.
LLVMSwitch := 3.
LLVMIndirectBr := 4.
LLVMInvoke := 5.
LLVMUnreachable := 7.
LLVMAdd := 8.
LLVMFAdd := 9.
LLVMSub := 10.
LLVMFSub := 11.
LLVMMul := 12.
LLVMFMul := 13.
LLVMUDiv := 14.
LLVMSDiv := 15.
LLVMFDiv := 16.
LLVMURem := 17.
LLVMSRem := 18.
LLVMFRem := 19.
LLVMShl := 20.
LLVMLShr := 21.
LLVMAShr := 22.
LLVMAnd := 23.
LLVMOr := 24.
LLVMXor := 25.
LLVMAlloca := 26.
LLVMLoad := 27.
LLVMStore := 28.
LLVMGetElementPtr := 29.
LLVMTrunc := 30.
LLVMZExt := 31.
LLVMSExt := 32.
LLVMFPToUI := 33.
LLVMFPToSI := 34.
LLVMUIToFP := 35.
LLVMSIToFP := 36.
LLVMFPTrunc := 37.
LLVMFPExt := 38.
LLVMPtrToInt := 39.
LLVMIntToPtr := 40.
LLVMBitCast := 41.
LLVMAddrSpaceCast := 60.
LLVMICmp := 42.
LLVMFCmp := 43.
LLVMPHI := 44.
LLVMCall := 45.
LLVMSelect := 46.
LLVMUserOp1 := 47.
LLVMUserOp2 := 48.
LLVMVAArg := 49.
LLVMExtractElement := 50.
LLVMInsertElement := 51.
LLVMShuffleVector := 52.
LLVMExtractValue := 53.
LLVMInsertValue := 54.
LLVMFence := 55.
LLVMAtomicCmpXchg := 56.
LLVMAtomicRMW := 57.
LLVMResume := 58.
LLVMLandingPad := 59.
LLVMCleanupRet := 61.
LLVMCatchRet := 62.
LLVMCatchPad := 63.
LLVMTerminatePad := 64.
LLVMCleanupPad := 65.
LLVMCatchEndPad := 66.
! !
!LLVMOpcode class methodsFor:'constants'!
LLVMAShr
^LLVMAShr
!
LLVMAdd
^LLVMAdd
!
LLVMAddrSpaceCast
^LLVMAddrSpaceCast
!
LLVMAlloca
^LLVMAlloca
!
LLVMAnd
^LLVMAnd
!
LLVMAtomicCmpXchg
^LLVMAtomicCmpXchg
!
LLVMAtomicRMW
^LLVMAtomicRMW
!
LLVMBitCast
^LLVMBitCast
!
LLVMBr
^LLVMBr
!
LLVMCall
^LLVMCall
!
LLVMCatchEndPad
^LLVMCatchEndPad
!
LLVMCatchPad
^LLVMCatchPad
!
LLVMCatchRet
^LLVMCatchRet
!
LLVMCleanupPad
^LLVMCleanupPad
!
LLVMCleanupRet
^LLVMCleanupRet
!
LLVMExtractElement
^LLVMExtractElement
!
LLVMExtractValue
^LLVMExtractValue
!
LLVMFAdd
^LLVMFAdd
!
LLVMFCmp
^LLVMFCmp
!
LLVMFDiv
^LLVMFDiv
!
LLVMFMul
^LLVMFMul
!
LLVMFPExt
^LLVMFPExt
!
LLVMFPToSI
^LLVMFPToSI
!
LLVMFPToUI
^LLVMFPToUI
!
LLVMFPTrunc
^LLVMFPTrunc
!
LLVMFRem
^LLVMFRem
!
LLVMFSub
^LLVMFSub
!
LLVMFence
^LLVMFence
!
LLVMGetElementPtr
^LLVMGetElementPtr
!
LLVMICmp
^LLVMICmp
!
LLVMIndirectBr
^LLVMIndirectBr
!
LLVMInsertElement
^LLVMInsertElement
!
LLVMInsertValue
^LLVMInsertValue
!
LLVMIntToPtr
^LLVMIntToPtr
!
LLVMInvoke
^LLVMInvoke
!
LLVMLShr
^LLVMLShr
!
LLVMLandingPad
^LLVMLandingPad
!
LLVMLoad
^LLVMLoad
!
LLVMMul
^LLVMMul
!
LLVMOr
^LLVMOr
!
LLVMPHI
^LLVMPHI
!
LLVMPtrToInt
^LLVMPtrToInt
!
LLVMResume
^LLVMResume
!
LLVMRet
^LLVMRet
!
LLVMSDiv
^LLVMSDiv
!
LLVMSExt
^LLVMSExt
!
LLVMSIToFP
^LLVMSIToFP
!
LLVMSRem
^LLVMSRem
!
LLVMSelect
^LLVMSelect
!
LLVMShl
^LLVMShl
!
LLVMShuffleVector
^LLVMShuffleVector
!
LLVMStore
^LLVMStore
!
LLVMSub
^LLVMSub
!
LLVMSwitch
^LLVMSwitch
!
LLVMTerminatePad
^LLVMTerminatePad
!
LLVMTrunc
^LLVMTrunc
!
LLVMUDiv
^LLVMUDiv
!
LLVMUIToFP
^LLVMUIToFP
!
LLVMURem
^LLVMURem
!
LLVMUnreachable
^LLVMUnreachable
!
LLVMUserOp1
^LLVMUserOp1
!
LLVMUserOp2
^LLVMUserOp2
!
LLVMVAArg
^LLVMVAArg
!
LLVMXor
^LLVMXor
!
LLVMZExt
^LLVMZExt
! !
!LLVMOpcode class methodsFor:'documentation'!
version_HG
^ '$Changeset: <not expanded> $'
! !
LLVMOpcode initialize!