diff --git a/llvm/core.py b/llvm/core.py index 4db8135..20ad062 100644 --- a/llvm/core.py +++ b/llvm/core.py @@ -174,20 +174,37 @@ class OpcodeEnum(Enum): OPCODE_PTRTOINT = 42 OPCODE_INTTOPTR = 43 OPCODE_BITCAST = 44 - OPCODE_ICMP = 45 - OPCODE_FCMP = 46 - OPCODE_PHI = 47 - OPCODE_CALL = 48 - OPCODE_SELECT = 49 - OPCODE_USEROP1 = 50 - OPCODE_USEROP2 = 51 - OPCODE_VAARG = 52 - OPCODE_EXTRACTELEMENT = 53 - OPCODE_INSERTELEMENT = 54 - OPCODE_SHUFFLEVECTOR = 55 - OPCODE_EXTRACTVALUE = 56 - OPCODE_INSERTVALUE = 57 - OPCODE_LANDINGPAD = 58 + if llvm.version <= (3, 3): + OPCODE_ICMP = 45 + OPCODE_FCMP = 46 + OPCODE_PHI = 47 + OPCODE_CALL = 48 + OPCODE_SELECT = 49 + OPCODE_USEROP1 = 50 + OPCODE_USEROP2 = 51 + OPCODE_VAARG = 52 + OPCODE_EXTRACTELEMENT = 53 + OPCODE_INSERTELEMENT = 54 + OPCODE_SHUFFLEVECTOR = 55 + OPCODE_EXTRACTVALUE = 56 + 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() diff --git a/llvmpy/src/DIBuilder.py b/llvmpy/src/DIBuilder.py index 78aba4c..44e5445 100644 --- a/llvmpy/src/DIBuilder.py +++ b/llvmpy/src/DIBuilder.py @@ -114,20 +114,38 @@ class DIBuilder: ref(DIType), # Ty ) - 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 - ptr(MDNode), # VTableHolder = 0 - ptr(MDNode), # TemplateParms = 0 - ).require_only(10) + if LLVM_VERSION <= (3, 3): + 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 + ptr(MDNode), # VTableHolder = 0 + 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): createStructType = Method(DIType, @@ -303,7 +321,7 @@ class DIBuilder: bool_arg, # isDefinition unsigned_arg, # Virtuality=0 unsigned_arg, # VTableIndex=0 - ptr(MDNode), # *VTableHolder=0 + ptr(MDNode) if LLVM_VERSION <= (3, 3) else ref(DIType), # VTableHolder unsigned_arg, # Flags=0 bool_arg, # isOptimized=false ptr(Function), # *Fn=0 diff --git a/llvmpy/src/ExecutionEngine/ExecutionEngine.py b/llvmpy/src/ExecutionEngine/ExecutionEngine.py index d6dfe43..7545c51 100644 --- a/llvmpy/src/ExecutionEngine/ExecutionEngine.py +++ b/llvmpy/src/ExecutionEngine/ExecutionEngine.py @@ -88,9 +88,6 @@ class ExecutionEngine: isLazyCompilationDisabled = Method(cast(Bool, bool)) DisableGVCompilation = Method(Void, 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', PyObjectPtr, ptr(Function), PyObjectPtr) diff --git a/llvmpy/src/GlobalValue.py b/llvmpy/src/GlobalValue.py index 49071e3..68aa26b 100644 --- a/llvmpy/src/GlobalValue.py +++ b/llvmpy/src/GlobalValue.py @@ -13,7 +13,7 @@ class GlobalValue: LinkageTypes = Enum(''' ExternalLinkage, AvailableExternallyLinkage, LinkOnceAnyLinkage, - LinkOnceODRLinkage, LinkOnceODRAutoHideLinkage, WeakAnyLinkage, + LinkOnceODRLinkage, WeakAnyLinkage, WeakODRLinkage, AppendingLinkage, InternalLinkage, PrivateLinkage, LinkerPrivateLinkage, LinkerPrivateWeakLinkage, DLLImportLinkage, DLLExportLinkage, ExternalWeakLinkage, CommonLinkage diff --git a/llvmpy/src/Support/TargetRegistry.py b/llvmpy/src/Support/TargetRegistry.py index 0635e2b..1a6d008 100644 --- a/llvmpy/src/Support/TargetRegistry.py +++ b/llvmpy/src/Support/TargetRegistry.py @@ -34,13 +34,6 @@ class Target: hasJIT = _has() hasTargetMachine = _has() hasMCAsmBackend = _has() - hasMCAsmParser = _has() - hasAsmPrinter = _has() - hasMCDisassembler = _has() - hasMCInstPrinter = _has() - hasMCCodeEmitter = _has() - hasMCObjectStreamer = _has() - hasAsmStreamer = _has() createTargetMachine = Method(ptr(TargetMachine), cast(str, StringRef), # triple diff --git a/test/target_info.py b/test/target_info.py index 2242bbb..7f9751a 100644 --- a/test/target_info.py +++ b/test/target_info.py @@ -10,14 +10,7 @@ mthds = ( ("description:", "getShortDescription"), ("has JIT:", "hasJIT" ), ("has target machine:", "hasTargetMachine" ), - ("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" ) + ("has asm backend:", "hasMCAsmBackend" ) ) for target in llvm.TargetRegistry.targetsList():