Compare commits
3 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7af2f71403 | ||
|
|
8a0778e75a | ||
|
|
eb43529f7b |
6 changed files with 66 additions and 48 deletions
45
llvm/core.py
45
llvm/core.py
|
|
@ -174,20 +174,37 @@ class OpcodeEnum(Enum):
|
||||||
OPCODE_PTRTOINT = 42
|
OPCODE_PTRTOINT = 42
|
||||||
OPCODE_INTTOPTR = 43
|
OPCODE_INTTOPTR = 43
|
||||||
OPCODE_BITCAST = 44
|
OPCODE_BITCAST = 44
|
||||||
OPCODE_ICMP = 45
|
if llvm.version <= (3, 3):
|
||||||
OPCODE_FCMP = 46
|
OPCODE_ICMP = 45
|
||||||
OPCODE_PHI = 47
|
OPCODE_FCMP = 46
|
||||||
OPCODE_CALL = 48
|
OPCODE_PHI = 47
|
||||||
OPCODE_SELECT = 49
|
OPCODE_CALL = 48
|
||||||
OPCODE_USEROP1 = 50
|
OPCODE_SELECT = 49
|
||||||
OPCODE_USEROP2 = 51
|
OPCODE_USEROP1 = 50
|
||||||
OPCODE_VAARG = 52
|
OPCODE_USEROP2 = 51
|
||||||
OPCODE_EXTRACTELEMENT = 53
|
OPCODE_VAARG = 52
|
||||||
OPCODE_INSERTELEMENT = 54
|
OPCODE_EXTRACTELEMENT = 53
|
||||||
OPCODE_SHUFFLEVECTOR = 55
|
OPCODE_INSERTELEMENT = 54
|
||||||
OPCODE_EXTRACTVALUE = 56
|
OPCODE_SHUFFLEVECTOR = 55
|
||||||
OPCODE_INSERTVALUE = 57
|
OPCODE_EXTRACTVALUE = 56
|
||||||
OPCODE_LANDINGPAD = 58
|
OPCODE_INSERTVALUE = 57
|
||||||
|
OPCODE_LANDINGPAD = 58
|
||||||
|
else:
|
||||||
|
OPCODE_ADDRSPACECAST = 45
|
||||||
|
OPCODE_ICMP = 46
|
||||||
|
OPCODE_FCMP = 47
|
||||||
|
OPCODE_PHI = 48
|
||||||
|
OPCODE_CALL = 49
|
||||||
|
OPCODE_SELECT = 50
|
||||||
|
OPCODE_USEROP1 = 51
|
||||||
|
OPCODE_USEROP2 = 52
|
||||||
|
OPCODE_VAARG = 53
|
||||||
|
OPCODE_EXTRACTELEMENT = 54
|
||||||
|
OPCODE_INSERTELEMENT = 55
|
||||||
|
OPCODE_SHUFFLEVECTOR = 56
|
||||||
|
OPCODE_EXTRACTVALUE = 57
|
||||||
|
OPCODE_INSERTVALUE = 58
|
||||||
|
OPCODE_LANDINGPAD = 59
|
||||||
|
|
||||||
OpcodeEnum.declare()
|
OpcodeEnum.declare()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -114,20 +114,38 @@ class DIBuilder:
|
||||||
ref(DIType), # Ty
|
ref(DIType), # Ty
|
||||||
)
|
)
|
||||||
|
|
||||||
createClassType = Method(DIType,
|
if LLVM_VERSION <= (3, 3):
|
||||||
ref(DIDescriptor), # Scope
|
createClassType = Method(DIType,
|
||||||
stringref_arg, # Name
|
ref(DIDescriptor), # Scope
|
||||||
ref(DIFile), # File
|
stringref_arg, # Name
|
||||||
unsigned_arg, # LineNum
|
ref(DIFile), # File
|
||||||
uint64_arg, # SizeInBits
|
unsigned_arg, # LineNum
|
||||||
uint64_arg, # AlignInBits
|
uint64_arg, # SizeInBits
|
||||||
uint64_arg, # OffsetInBits,
|
uint64_arg, # AlignInBits
|
||||||
unsigned_arg, # Flags
|
uint64_arg, # OffsetInBits,
|
||||||
ref(DIType), # DerivedFrom
|
unsigned_arg, # Flags
|
||||||
ref(DIArray), # Elements
|
ref(DIType), # DerivedFrom
|
||||||
ptr(MDNode), # VTableHolder = 0
|
ref(DIArray), # Elements
|
||||||
ptr(MDNode), # TemplateParms = 0
|
ptr(MDNode), # VTableHolder = 0
|
||||||
).require_only(10)
|
ptr(MDNode), # TemplateParms = 0
|
||||||
|
).require_only(10)
|
||||||
|
else:
|
||||||
|
createClassType = Method(DIType,
|
||||||
|
ref(DIDescriptor), # Scope
|
||||||
|
stringref_arg, # Name
|
||||||
|
ref(DIFile), # File
|
||||||
|
unsigned_arg, # LineNum
|
||||||
|
uint64_arg, # SizeInBits
|
||||||
|
uint64_arg, # AlignInBits
|
||||||
|
uint64_arg, # OffsetInBits,
|
||||||
|
unsigned_arg, # Flags
|
||||||
|
ref(DIType), # DerivedFrom
|
||||||
|
ref(DIArray), # Elements
|
||||||
|
ref(DIType), # VTableHolder = DIType()
|
||||||
|
ptr(MDNode), # TemplateParms = 0
|
||||||
|
stringref_arg, # UniqueIdentifier
|
||||||
|
).require_only(10)
|
||||||
|
|
||||||
|
|
||||||
if LLVM_VERSION >= (3, 3):
|
if LLVM_VERSION >= (3, 3):
|
||||||
createStructType = Method(DIType,
|
createStructType = Method(DIType,
|
||||||
|
|
@ -303,7 +321,7 @@ class DIBuilder:
|
||||||
bool_arg, # isDefinition
|
bool_arg, # isDefinition
|
||||||
unsigned_arg, # Virtuality=0
|
unsigned_arg, # Virtuality=0
|
||||||
unsigned_arg, # VTableIndex=0
|
unsigned_arg, # VTableIndex=0
|
||||||
ptr(MDNode), # *VTableHolder=0
|
ptr(MDNode) if LLVM_VERSION <= (3, 3) else ref(DIType), # VTableHolder
|
||||||
unsigned_arg, # Flags=0
|
unsigned_arg, # Flags=0
|
||||||
bool_arg, # isOptimized=false
|
bool_arg, # isOptimized=false
|
||||||
ptr(Function), # *Fn=0
|
ptr(Function), # *Fn=0
|
||||||
|
|
|
||||||
|
|
@ -88,9 +88,6 @@ class ExecutionEngine:
|
||||||
isLazyCompilationDisabled = Method(cast(Bool, bool))
|
isLazyCompilationDisabled = Method(cast(Bool, bool))
|
||||||
DisableGVCompilation = Method(Void, cast(bool, Bool))
|
DisableGVCompilation = Method(Void, cast(bool, Bool))
|
||||||
isSymbolSearchingDisabled = Method(cast(Bool, bool))
|
isSymbolSearchingDisabled = Method(cast(Bool, bool))
|
||||||
RegisterTable = Method(Void, ptr(Function), cast(int, VoidPtr))
|
|
||||||
DeregisterTable = Method(Void, ptr(Function))
|
|
||||||
DeregisterAllTables = Method()
|
|
||||||
|
|
||||||
_runFunction = CustomMethod('ExecutionEngine_RunFunction',
|
_runFunction = CustomMethod('ExecutionEngine_RunFunction',
|
||||||
PyObjectPtr, ptr(Function), PyObjectPtr)
|
PyObjectPtr, ptr(Function), PyObjectPtr)
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ class GlobalValue:
|
||||||
|
|
||||||
LinkageTypes = Enum('''
|
LinkageTypes = Enum('''
|
||||||
ExternalLinkage, AvailableExternallyLinkage, LinkOnceAnyLinkage,
|
ExternalLinkage, AvailableExternallyLinkage, LinkOnceAnyLinkage,
|
||||||
LinkOnceODRLinkage, LinkOnceODRAutoHideLinkage, WeakAnyLinkage,
|
LinkOnceODRLinkage, WeakAnyLinkage,
|
||||||
WeakODRLinkage, AppendingLinkage, InternalLinkage, PrivateLinkage,
|
WeakODRLinkage, AppendingLinkage, InternalLinkage, PrivateLinkage,
|
||||||
LinkerPrivateLinkage, LinkerPrivateWeakLinkage, DLLImportLinkage,
|
LinkerPrivateLinkage, LinkerPrivateWeakLinkage, DLLImportLinkage,
|
||||||
DLLExportLinkage, ExternalWeakLinkage, CommonLinkage
|
DLLExportLinkage, ExternalWeakLinkage, CommonLinkage
|
||||||
|
|
|
||||||
|
|
@ -34,13 +34,6 @@ class Target:
|
||||||
hasJIT = _has()
|
hasJIT = _has()
|
||||||
hasTargetMachine = _has()
|
hasTargetMachine = _has()
|
||||||
hasMCAsmBackend = _has()
|
hasMCAsmBackend = _has()
|
||||||
hasMCAsmParser = _has()
|
|
||||||
hasAsmPrinter = _has()
|
|
||||||
hasMCDisassembler = _has()
|
|
||||||
hasMCInstPrinter = _has()
|
|
||||||
hasMCCodeEmitter = _has()
|
|
||||||
hasMCObjectStreamer = _has()
|
|
||||||
hasAsmStreamer = _has()
|
|
||||||
|
|
||||||
createTargetMachine = Method(ptr(TargetMachine),
|
createTargetMachine = Method(ptr(TargetMachine),
|
||||||
cast(str, StringRef), # triple
|
cast(str, StringRef), # triple
|
||||||
|
|
|
||||||
|
|
@ -10,14 +10,7 @@ mthds = (
|
||||||
("description:", "getShortDescription"),
|
("description:", "getShortDescription"),
|
||||||
("has JIT:", "hasJIT" ),
|
("has JIT:", "hasJIT" ),
|
||||||
("has target machine:", "hasTargetMachine" ),
|
("has target machine:", "hasTargetMachine" ),
|
||||||
("has asm backend:", "hasMCAsmBackend" ),
|
("has asm backend:", "hasMCAsmBackend" )
|
||||||
("has asm parser:", "hasMCAsmParser" ),
|
|
||||||
("has asm printer:", "hasAsmPrinter" ),
|
|
||||||
("has disassembler:", "hasMCDisassembler" ),
|
|
||||||
("has inst printer:", "hasMCInstPrinter" ),
|
|
||||||
("has code emitter:", "hasMCCodeEmitter" ),
|
|
||||||
("has object streamer:", "hasMCObjectStreamer"),
|
|
||||||
("has asm streamer:", "hasAsmStreamer" )
|
|
||||||
)
|
)
|
||||||
|
|
||||||
for target in llvm.TargetRegistry.targetsList():
|
for target in llvm.TargetRegistry.targetsList():
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue