LLVMOpcode.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 30 Aug 2016 16:57:29 +0100
changeset 78 7a4c769a9fea
parent 33 feabf14b6c1d
permissions -rw-r--r--
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!