Initial support for generating (DWARF) debug info.
The current API is really horrible and clumsy, but it's more or less
1-to-1 mapping to LLVM API. LLVMExamples>>example7_factorial_with_debug_info
shows how to use it. The debug info API (at the Smalltalk level) will be
refactored to provide easier-to-use interface.
--- a/LLVM.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVM.st Mon Aug 17 08:53:26 2015 +0100
@@ -73,7 +73,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMABIAlignmentOfType" ( LLVMTargetData LLVMType ) >
+ <cdecl: uint "LLVMABIAlignmentOfType" ( LLVMTargetData LLVMType ) >
self primitiveFailed
!
@@ -83,7 +83,7 @@
@return: long long unsigned int
"
- <cdecl: uint64 "LLVMABISizeOfType" ( LLVMTargetData LLVMType ) >
+ <cdecl: longlong "LLVMABISizeOfType" ( LLVMTargetData LLVMType ) >
self primitiveFailed
!
@@ -147,10 +147,8 @@
@return: LLVMValueRef
"
- <cdecl: LLVMFunction "LLVMAddFunction" ( LLVMModule charPointer LLVMType ) >
- self primitiveFailed
-
- "Modified: / 11-07-2015 / 07:43:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ <cdecl: LLVMValue "LLVMAddFunction" ( LLVMModule charPointer LLVMType ) >
+ self primitiveFailed
!
AddFunctionAttr: Fn _: PA
@@ -182,7 +180,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMAddGlobalInAddressSpace" ( LLVMModule LLVMType charPointer uint32 ) >
+ <cdecl: LLVMValue "LLVMAddGlobalInAddressSpace" ( LLVMModule LLVMType charPointer uint ) >
self primitiveFailed
!
@@ -205,7 +203,7 @@
@return: void
"
- <cdecl: void "LLVMAddIncoming" ( LLVMValue pointer pointer uint32 ) >
+ <cdecl: void "LLVMAddIncoming" ( LLVMValue pointer pointer uint ) >
self primitiveFailed
!
@@ -216,7 +214,7 @@
@return: void
"
- <cdecl: void "LLVMAddInstrAttribute" ( LLVMValue uint32 int32 ) >
+ <cdecl: void "LLVMAddInstrAttribute" ( LLVMValue uint int32 ) >
self primitiveFailed
!
@@ -328,7 +326,7 @@
@return: LLVMTypeRef
"
- <cdecl: LLVMType "LLVMArrayType" ( LLVMType uint32 ) >
+ <cdecl: LLVMType "LLVMArrayType" ( LLVMType uint ) >
self primitiveFailed
!
@@ -394,7 +392,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildAggregateRet" ( LLVMIRBuilder pointer uint32 ) >
+ <cdecl: LLVMValue "LLVMBuildAggregateRet" ( LLVMIRBuilder pointer uint ) >
self primitiveFailed
!
@@ -455,7 +453,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildAtomicRMW" ( LLVMIRBuilder int32 LLVMValue LLVMValue int32 int32 ) >
+ <cdecl: LLVMValue "LLVMBuildAtomicRMW" ( LLVMIRBuilder int32 LLVMValue LLVMValue int32 bool ) >
self primitiveFailed
!
@@ -503,7 +501,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildCall" ( LLVMIRBuilder LLVMValue pointer uint32 charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildCall" ( LLVMIRBuilder LLVMValue pointer uint charPointer ) >
self primitiveFailed
!
@@ -564,7 +562,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildExtractValue" ( LLVMIRBuilder LLVMValue uint32 charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildExtractValue" ( LLVMIRBuilder LLVMValue uint charPointer ) >
self primitiveFailed
!
@@ -720,7 +718,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildFence" ( LLVMIRBuilder int32 int32 charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildFence" ( LLVMIRBuilder int32 bool charPointer ) >
self primitiveFailed
!
@@ -743,7 +741,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildGEP" ( LLVMIRBuilder LLVMValue pointer uint32 charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildGEP" ( LLVMIRBuilder LLVMValue pointer uint charPointer ) >
self primitiveFailed
!
@@ -791,7 +789,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildInBoundsGEP" ( LLVMIRBuilder LLVMValue pointer uint32 charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildInBoundsGEP" ( LLVMIRBuilder LLVMValue pointer uint charPointer ) >
self primitiveFailed
!
@@ -802,7 +800,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildIndirectBr" ( LLVMIRBuilder LLVMValue uint32 ) >
+ <cdecl: LLVMValue "LLVMBuildIndirectBr" ( LLVMIRBuilder LLVMValue uint ) >
self primitiveFailed
!
@@ -828,7 +826,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildInsertValue" ( LLVMIRBuilder LLVMValue LLVMValue uint32 charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildInsertValue" ( LLVMIRBuilder LLVMValue LLVMValue uint charPointer ) >
self primitiveFailed
!
@@ -867,7 +865,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildInvoke" ( LLVMIRBuilder LLVMValue pointer uint32 LLVMBasicBlock LLVMBasicBlock charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildInvoke" ( LLVMIRBuilder LLVMValue pointer uint LLVMBasicBlock LLVMBasicBlock charPointer ) >
self primitiveFailed
!
@@ -917,6 +915,19 @@
self primitiveFailed
!
+BuildLandingPad: B _: Ty _: PersFn _: NumClauses _: Name
+ "@param B: LLVMBuilderRef
+ @param Ty: LLVMTypeRef
+ @param PersFn: LLVMValueRef
+ @param NumClauses: unsigned int
+ @param Name: *const char
+ @return: LLVMValueRef
+ "
+
+ <cdecl: LLVMValue "LLVMBuildLandingPad" ( LLVMIRBuilder LLVMType LLVMValue uint charPointer ) >
+ self primitiveFailed
+!
+
BuildLoad: arg1 _: PointerVal _: Name
"@param arg1: LLVMBuilderRef
@param PointerVal: LLVMValueRef
@@ -1272,7 +1283,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildStructGEP" ( LLVMIRBuilder LLVMValue uint32 charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildStructGEP" ( LLVMIRBuilder LLVMValue uint charPointer ) >
self primitiveFailed
!
@@ -1296,7 +1307,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildSwitch" ( LLVMIRBuilder LLVMValue LLVMBasicBlock uint32 ) >
+ <cdecl: LLVMValue "LLVMBuildSwitch" ( LLVMIRBuilder LLVMValue LLVMBasicBlock uint ) >
self primitiveFailed
!
@@ -1432,7 +1443,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMCallFrameAlignmentOfType" ( LLVMTargetData LLVMType ) >
+ <cdecl: uint "LLVMCallFrameAlignmentOfType" ( LLVMTargetData LLVMType ) >
self primitiveFailed
!
@@ -1510,7 +1521,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMConstArray" ( LLVMType pointer uint32 ) >
+ <cdecl: LLVMValue "LLVMConstArray" ( LLVMType pointer uint ) >
self primitiveFailed
!
@@ -1551,7 +1562,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMConstExtractValue" ( LLVMValue int32Pointer uint32 ) >
+ <cdecl: LLVMValue "LLVMConstExtractValue" ( LLVMValue intPointer uint ) >
self primitiveFailed
!
@@ -1682,7 +1693,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMConstGEP" ( LLVMValue pointer uint32 ) >
+ <cdecl: LLVMValue "LLVMConstGEP" ( LLVMValue pointer uint ) >
self primitiveFailed
!
@@ -1704,7 +1715,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMConstInBoundsGEP" ( LLVMValue pointer uint32 ) >
+ <cdecl: LLVMValue "LLVMConstInBoundsGEP" ( LLVMValue pointer uint ) >
self primitiveFailed
!
@@ -1717,7 +1728,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMConstInlineAsm" ( LLVMType charPointer charPointer int32 int32 ) >
+ <cdecl: LLVMValue "LLVMConstInlineAsm" ( LLVMType charPointer charPointer bool bool ) >
self primitiveFailed
!
@@ -1740,7 +1751,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMConstInsertValue" ( LLVMValue LLVMValue int32Pointer uint32 ) >
+ <cdecl: LLVMValue "LLVMConstInsertValue" ( LLVMValue LLVMValue intPointer uint ) >
self primitiveFailed
!
@@ -1751,10 +1762,8 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMConstInt" ( LLVMType uint64 int32 ) >
- self primitiveFailed
-
- "Modified: / 03-08-2015 / 17:12:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ <cdecl: LLVMValue "LLVMConstInt" ( LLVMType longlong bool ) >
+ self primitiveFailed
!
ConstIntCast: ConstantVal _: ToType _: isSigned
@@ -1764,7 +1773,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMConstIntCast" ( LLVMValue LLVMType int32 ) >
+ <cdecl: LLVMValue "LLVMConstIntCast" ( LLVMValue LLVMType bool ) >
self primitiveFailed
!
@@ -1773,7 +1782,7 @@
@return: long long int
"
- <cdecl: uint64 "LLVMConstIntGetSExtValue" ( LLVMValue ) >
+ <cdecl: longlong "LLVMConstIntGetSExtValue" ( LLVMValue ) >
self primitiveFailed
!
@@ -1782,7 +1791,7 @@
@return: long long unsigned int
"
- <cdecl: uint64 "LLVMConstIntGetZExtValue" ( LLVMValue ) >
+ <cdecl: longlong "LLVMConstIntGetZExtValue" ( LLVMValue ) >
self primitiveFailed
!
@@ -1793,7 +1802,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMConstIntOfArbitraryPrecision" ( LLVMType uint32 pointer ) >
+ <cdecl: LLVMValue "LLVMConstIntOfArbitraryPrecision" ( LLVMType uint pointer ) >
self primitiveFailed
!
@@ -1804,7 +1813,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMConstIntOfString" ( LLVMType charPointer uchar ) >
+ <cdecl: LLVMValue "LLVMConstIntOfString" ( LLVMType charPointer uint8 ) >
self primitiveFailed
!
@@ -1816,7 +1825,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMConstIntOfStringAndSize" ( LLVMType charPointer uint32 uchar ) >
+ <cdecl: LLVMValue "LLVMConstIntOfStringAndSize" ( LLVMType charPointer uint uint8 ) >
self primitiveFailed
!
@@ -1935,7 +1944,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMConstNamedStruct" ( LLVMType pointer uint32 ) >
+ <cdecl: LLVMValue "LLVMConstNamedStruct" ( LLVMType pointer uint ) >
self primitiveFailed
!
@@ -2042,7 +2051,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMConstRealOfStringAndSize" ( LLVMType charPointer uint32 ) >
+ <cdecl: LLVMValue "LLVMConstRealOfStringAndSize" ( LLVMType charPointer uint ) >
self primitiveFailed
!
@@ -2135,7 +2144,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMConstString" ( charPointer uint32 int32 ) >
+ <cdecl: LLVMValue "LLVMConstString" ( charPointer uint bool ) >
self primitiveFailed
!
@@ -2147,7 +2156,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMConstStringInContext" ( LLVMContext charPointer uint32 int32 ) >
+ <cdecl: LLVMValue "LLVMConstStringInContext" ( LLVMContext charPointer uint bool ) >
self primitiveFailed
!
@@ -2158,7 +2167,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMConstStruct" ( pointer uint32 int32 ) >
+ <cdecl: LLVMValue "LLVMConstStruct" ( pointer uint bool ) >
self primitiveFailed
!
@@ -2170,7 +2179,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMConstStructInContext" ( LLVMContext pointer uint32 int32 ) >
+ <cdecl: LLVMValue "LLVMConstStructInContext" ( LLVMContext pointer uint bool ) >
self primitiveFailed
!
@@ -2240,7 +2249,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMConstVector" ( pointer uint32 ) >
+ <cdecl: LLVMValue "LLVMConstVector" ( pointer uint ) >
self primitiveFailed
!
@@ -2298,7 +2307,7 @@
@return: void
"
- <cdecl: void "LLVMContextSetDiagnosticHandler" ( LLVMContext int32Pointer voidPointer ) >
+ <cdecl: void "LLVMContextSetDiagnosticHandler" ( LLVMContext intPointer voidPointer ) >
self primitiveFailed
!
@@ -2309,7 +2318,7 @@
@return: void
"
- <cdecl: void "LLVMContextSetYieldCallback" ( LLVMContext int32Pointer voidPointer ) >
+ <cdecl: void "LLVMContextSetYieldCallback" ( LLVMContext intPointer voidPointer ) >
self primitiveFailed
!
@@ -2327,7 +2336,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMCountBasicBlocks" ( LLVMValue ) >
+ <cdecl: uint "LLVMCountBasicBlocks" ( LLVMValue ) >
self primitiveFailed
!
@@ -2336,7 +2345,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMCountIncoming" ( LLVMValue ) >
+ <cdecl: uint "LLVMCountIncoming" ( LLVMValue ) >
self primitiveFailed
!
@@ -2345,7 +2354,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMCountParamTypes" ( LLVMType ) >
+ <cdecl: uint "LLVMCountParamTypes" ( LLVMType ) >
self primitiveFailed
!
@@ -2354,7 +2363,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMCountParams" ( LLVMValue ) >
+ <cdecl: uint "LLVMCountParams" ( LLVMValue ) >
self primitiveFailed
!
@@ -2363,7 +2372,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMCountStructElementTypes" ( LLVMType ) >
+ <cdecl: uint "LLVMCountStructElementTypes" ( LLVMType ) >
self primitiveFailed
!
@@ -2391,7 +2400,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMCreateExecutionEngine" ( pointer LLVMModuleProvider pointer ) >
+ <cdecl: bool "LLVMCreateExecutionEngine" ( pointer LLVMModuleProvider pointer ) >
self primitiveFailed
!
@@ -2402,7 +2411,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMCreateExecutionEngineForModule" ( pointer LLVMModule pointer ) >
+ <cdecl: bool "LLVMCreateExecutionEngineForModule" ( pointer LLVMModule pointer ) >
self primitiveFailed
!
@@ -2441,7 +2450,7 @@
@return: LLVMGenericValueRef
"
- <cdecl: LLVMGenericValue "LLVMCreateGenericValueOfInt" ( LLVMType uint64 int32 ) >
+ <cdecl: LLVMGenericValue "LLVMCreateGenericValueOfInt" ( LLVMType longlong bool ) >
self primitiveFailed
!
@@ -2461,7 +2470,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMCreateInterpreter" ( pointer LLVMModuleProvider pointer ) >
+ <cdecl: bool "LLVMCreateInterpreter" ( pointer LLVMModuleProvider pointer ) >
self primitiveFailed
!
@@ -2472,7 +2481,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMCreateInterpreterForModule" ( pointer LLVMModule pointer ) >
+ <cdecl: bool "LLVMCreateInterpreterForModule" ( pointer LLVMModule pointer ) >
self primitiveFailed
!
@@ -2484,7 +2493,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMCreateJITCompiler" ( pointer LLVMModuleProvider uint32 pointer ) >
+ <cdecl: bool "LLVMCreateJITCompiler" ( pointer LLVMModuleProvider uint pointer ) >
self primitiveFailed
!
@@ -2496,7 +2505,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMCreateJITCompilerForModule" ( pointer LLVMModule uint32 pointer ) >
+ <cdecl: bool "LLVMCreateJITCompilerForModule" ( pointer LLVMModule uint pointer ) >
self primitiveFailed
!
@@ -2509,7 +2518,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMCreateMCJITCompilerForModule" ( pointer LLVMModule LLVMMCJITCompilerOptions uint64 pointer ) >
+ <cdecl: bool "LLVMCreateMCJITCompilerForModule" ( pointer LLVMModule LLVMMCJITCompilerOptions long pointer ) >
self primitiveFailed
!
@@ -2520,7 +2529,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMCreateMemoryBufferWithContentsOfFile" ( charPointer pointer pointer ) >
+ <cdecl: bool "LLVMCreateMemoryBufferWithContentsOfFile" ( charPointer pointer pointer ) >
self primitiveFailed
!
@@ -2532,7 +2541,7 @@
@return: LLVMMemoryBufferRef
"
- <cdecl: pointer "LLVMCreateMemoryBufferWithMemoryRange" ( charPointer uint64 charPointer int32 ) >
+ <cdecl: pointer "LLVMCreateMemoryBufferWithMemoryRange" ( charPointer long charPointer bool ) >
self primitiveFailed
!
@@ -2543,7 +2552,7 @@
@return: LLVMMemoryBufferRef
"
- <cdecl: pointer "LLVMCreateMemoryBufferWithMemoryRangeCopy" ( charPointer uint64 charPointer ) >
+ <cdecl: pointer "LLVMCreateMemoryBufferWithMemoryRangeCopy" ( charPointer long charPointer ) >
self primitiveFailed
!
@@ -2553,7 +2562,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMCreateMemoryBufferWithSTDIN" ( pointer pointer ) >
+ <cdecl: bool "LLVMCreateMemoryBufferWithSTDIN" ( pointer pointer ) >
self primitiveFailed
!
@@ -2592,7 +2601,7 @@
@return: LLVMMCJITMemoryManagerRef
"
- <cdecl: LLVMMCJITMemoryManager "LLVMCreateSimpleMCJITMemoryManager" ( voidPointer int32Pointer int32Pointer int32Pointer int32Pointer ) >
+ <cdecl: LLVMMCJITMemoryManager "LLVMCreateSimpleMCJITMemoryManager" ( voidPointer intPointer intPointer intPointer intPointer ) >
self primitiveFailed
!
@@ -2773,7 +2782,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMElementAtOffset" ( LLVMTargetData LLVMType uint64 ) >
+ <cdecl: uint "LLVMElementAtOffset" ( LLVMTargetData LLVMType longlong ) >
self primitiveFailed
!
@@ -2807,7 +2816,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMFinalizeFunctionPassManager" ( LLVMPassManager ) >
+ <cdecl: bool "LLVMFinalizeFunctionPassManager" ( LLVMPassManager ) >
self primitiveFailed
!
@@ -2818,7 +2827,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMFindFunction" ( LLVMExecutionEngine charPointer pointer ) >
+ <cdecl: bool "LLVMFindFunction" ( LLVMExecutionEngine charPointer pointer ) >
self primitiveFailed
!
@@ -2857,10 +2866,8 @@
@return: LLVMTypeRef
"
- <cdecl: LLVMType "LLVMFunctionType" ( LLVMType pointer uint32 bool ) >
- self primitiveFailed
-
- "Modified: / 04-08-2015 / 19:28:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ <cdecl: LLVMType "LLVMFunctionType" ( LLVMType pointer uint bool ) >
+ self primitiveFailed
!
GenericValueIntWidth: GenValRef
@@ -2868,7 +2875,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMGenericValueIntWidth" ( LLVMGenericValue ) >
+ <cdecl: uint "LLVMGenericValueIntWidth" ( LLVMGenericValue ) >
self primitiveFailed
!
@@ -2888,7 +2895,7 @@
@return: long long unsigned int
"
- <cdecl: uint64 "LLVMGenericValueToInt" ( LLVMGenericValue int32 ) >
+ <cdecl: longlong "LLVMGenericValueToInt" ( LLVMGenericValue bool ) >
self primitiveFailed
!
@@ -2906,7 +2913,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMGetAlignment" ( LLVMValue ) >
+ <cdecl: uint "LLVMGetAlignment" ( LLVMValue ) >
self primitiveFailed
!
@@ -2915,7 +2922,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMGetArrayLength" ( LLVMType ) >
+ <cdecl: uint "LLVMGetArrayLength" ( LLVMType ) >
self primitiveFailed
!
@@ -2971,7 +2978,7 @@
@return: size_t
"
- <cdecl: uint64 "LLVMGetBufferSize" ( pointer ) >
+ <cdecl: long "LLVMGetBufferSize" ( pointer ) >
self primitiveFailed
!
@@ -3053,7 +3060,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMGetElementAsConstant" ( LLVMValue uint32 ) >
+ <cdecl: LLVMValue "LLVMGetElementAsConstant" ( LLVMValue uint ) >
self primitiveFailed
!
@@ -3162,10 +3169,8 @@
@return: uint64_t
"
- <cdecl: int64 "LLVMGetFunctionAddress" ( LLVMExecutionEngine charPointer ) >
- self primitiveFailed
-
- "Modified: / 10-07-2015 / 21:50:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ <cdecl: uint64 "LLVMGetFunctionAddress" ( LLVMExecutionEngine charPointer ) >
+ self primitiveFailed
!
GetFunctionAttr: Fn
@@ -3182,7 +3187,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMGetFunctionCallConv" ( LLVMValue ) >
+ <cdecl: uint "LLVMGetFunctionCallConv" ( LLVMValue ) >
self primitiveFailed
!
@@ -3245,7 +3250,7 @@
@return: LLVMBasicBlockRef
"
- <cdecl: LLVMBasicBlock "LLVMGetIncomingBlock" ( LLVMValue uint32 ) >
+ <cdecl: LLVMBasicBlock "LLVMGetIncomingBlock" ( LLVMValue uint ) >
self primitiveFailed
!
@@ -3255,7 +3260,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMGetIncomingValue" ( LLVMValue uint32 ) >
+ <cdecl: LLVMValue "LLVMGetIncomingValue" ( LLVMValue uint ) >
self primitiveFailed
!
@@ -3282,7 +3287,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMGetInstructionCallConv" ( LLVMValue ) >
+ <cdecl: uint "LLVMGetInstructionCallConv" ( LLVMValue ) >
self primitiveFailed
!
@@ -3309,7 +3314,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMGetIntTypeWidth" ( LLVMType ) >
+ <cdecl: uint "LLVMGetIntTypeWidth" ( LLVMType ) >
self primitiveFailed
!
@@ -3318,7 +3323,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMGetIntrinsicID" ( LLVMValue ) >
+ <cdecl: uint "LLVMGetIntrinsicID" ( LLVMValue ) >
self primitiveFailed
!
@@ -3382,7 +3387,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMGetMDKindID" ( charPointer uint32 ) >
+ <cdecl: uint "LLVMGetMDKindID" ( charPointer uint ) >
self primitiveFailed
!
@@ -3393,7 +3398,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMGetMDKindIDInContext" ( LLVMContext charPointer uint32 ) >
+ <cdecl: uint "LLVMGetMDKindIDInContext" ( LLVMContext charPointer uint ) >
self primitiveFailed
!
@@ -3402,7 +3407,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMGetMDNodeNumOperands" ( LLVMValue ) >
+ <cdecl: uint "LLVMGetMDNodeNumOperands" ( LLVMValue ) >
self primitiveFailed
!
@@ -3422,7 +3427,7 @@
@return: *const char
"
- <cdecl: charPointer "LLVMGetMDString" ( LLVMValue int32Pointer ) >
+ <cdecl: charPointer "LLVMGetMDString" ( LLVMValue intPointer ) >
self primitiveFailed
!
@@ -3432,7 +3437,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMGetMetadata" ( LLVMValue uint32 ) >
+ <cdecl: LLVMValue "LLVMGetMetadata" ( LLVMValue uint ) >
self primitiveFailed
!
@@ -3471,7 +3476,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMGetNamedMetadataNumOperands" ( LLVMModule charPointer ) >
+ <cdecl: uint "LLVMGetNamedMetadataNumOperands" ( LLVMModule charPointer ) >
self primitiveFailed
!
@@ -3545,7 +3550,7 @@
@return: int
"
- <cdecl: int32 "LLVMGetNumOperands" ( LLVMValue ) >
+ <cdecl: int "LLVMGetNumOperands" ( LLVMValue ) >
self primitiveFailed
!
@@ -3554,7 +3559,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMGetNumSuccessors" ( LLVMValue ) >
+ <cdecl: uint "LLVMGetNumSuccessors" ( LLVMValue ) >
self primitiveFailed
!
@@ -3564,7 +3569,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMGetOperand" ( LLVMValue uint32 ) >
+ <cdecl: LLVMValue "LLVMGetOperand" ( LLVMValue uint ) >
self primitiveFailed
!
@@ -3574,7 +3579,16 @@
@return: LLVMUseRef
"
- <cdecl: LLVMUse "LLVMGetOperandUse" ( LLVMValue uint32 ) >
+ <cdecl: LLVMUse "LLVMGetOperandUse" ( LLVMValue uint ) >
+ self primitiveFailed
+!
+
+GetOrdering: MemoryAccessInst
+ "@param MemoryAccessInst: LLVMValueRef
+ @return: LLVMAtomicOrdering
+ "
+
+ <cdecl: int32 "LLVMGetOrdering" ( LLVMValue ) >
self primitiveFailed
!
@@ -3584,7 +3598,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMGetParam" ( LLVMValue uint32 ) >
+ <cdecl: LLVMValue "LLVMGetParam" ( LLVMValue uint ) >
self primitiveFailed
!
@@ -3617,12 +3631,21 @@
self primitiveFailed
!
+GetPersonalityFn: Fn
+ "@param Fn: LLVMValueRef
+ @return: LLVMValueRef
+ "
+
+ <cdecl: LLVMValue "LLVMGetPersonalityFn" ( LLVMValue ) >
+ self primitiveFailed
+!
+
GetPointerAddressSpace: PointerTy
"@param PointerTy: LLVMTypeRef
@return: unsigned int
"
- <cdecl: uint32 "LLVMGetPointerAddressSpace" ( LLVMType ) >
+ <cdecl: uint "LLVMGetPointerAddressSpace" ( LLVMType ) >
self primitiveFailed
!
@@ -3724,7 +3747,7 @@
@return: LLVMBasicBlockRef
"
- <cdecl: LLVMBasicBlock "LLVMGetSuccessor" ( LLVMValue uint32 ) >
+ <cdecl: LLVMBasicBlock "LLVMGetSuccessor" ( LLVMValue uint ) >
self primitiveFailed
!
@@ -3824,7 +3847,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMGetVectorSize" ( LLVMType ) >
+ <cdecl: uint "LLVMGetVectorSize" ( LLVMType ) >
self primitiveFailed
!
@@ -3842,7 +3865,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMGetVolatile" ( LLVMValue ) >
+ <cdecl: bool "LLVMGetVolatile" ( LLVMValue ) >
self primitiveFailed
!
@@ -3868,7 +3891,7 @@
@return: int
"
- <cdecl: int32 "LLVMHasMetadata" ( LLVMValue ) >
+ <cdecl: int "LLVMHasMetadata" ( LLVMValue ) >
self primitiveFailed
!
@@ -3877,7 +3900,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMHasUnnamedAddr" ( LLVMValue ) >
+ <cdecl: bool "LLVMHasUnnamedAddr" ( LLVMValue ) >
self primitiveFailed
!
@@ -3943,7 +3966,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMInitializeFunctionPassManager" ( LLVMPassManager ) >
+ <cdecl: bool "LLVMInitializeFunctionPassManager" ( LLVMPassManager ) >
self primitiveFailed
!
@@ -3953,7 +3976,7 @@
@return: void
"
- <cdecl: void "LLVMInitializeMCJITCompilerOptions" ( LLVMMCJITCompilerOptions uint64 ) >
+ <cdecl: void "LLVMInitializeMCJITCompilerOptions" ( LLVMMCJITCompilerOptions long ) >
self primitiveFailed
!
@@ -3961,7 +3984,7 @@
"@return: LLVMBool
"
- <cdecl: int32 "LLVMInitializeNativeAsmParser" ( ) >
+ <cdecl: bool "LLVMInitializeNativeAsmParser" ( ) >
self primitiveFailed
!
@@ -3969,7 +3992,7 @@
"@return: LLVMBool
"
- <cdecl: int32 "LLVMInitializeNativeAsmPrinter" ( ) >
+ <cdecl: bool "LLVMInitializeNativeAsmPrinter" ( ) >
self primitiveFailed
!
@@ -3977,7 +4000,7 @@
"@return: LLVMBool
"
- <cdecl: int32 "LLVMInitializeNativeDisassembler" ( ) >
+ <cdecl: bool "LLVMInitializeNativeDisassembler" ( ) >
self primitiveFailed
!
@@ -3985,7 +4008,7 @@
"@return: LLVMBool
"
- <cdecl: int32 "LLVMInitializeNativeTarget" ( ) >
+ <cdecl: bool "LLVMInitializeNativeTarget" ( ) >
self primitiveFailed
!
@@ -4076,7 +4099,7 @@
@return: void
"
- <cdecl: void "LLVMInstallFatalErrorHandler" ( int32Pointer ) >
+ <cdecl: void "LLVMInstallFatalErrorHandler" ( intPointer ) >
self primitiveFailed
!
@@ -4198,7 +4221,7 @@
@return: LLVMTypeRef
"
- <cdecl: LLVMType "LLVMIntPtrTypeForAS" ( LLVMTargetData uint32 ) >
+ <cdecl: LLVMType "LLVMIntPtrTypeForAS" ( LLVMTargetData uint ) >
self primitiveFailed
!
@@ -4209,7 +4232,7 @@
@return: LLVMTypeRef
"
- <cdecl: LLVMType "LLVMIntPtrTypeForASInContext" ( LLVMContext LLVMTargetData uint32 ) >
+ <cdecl: LLVMType "LLVMIntPtrTypeForASInContext" ( LLVMContext LLVMTargetData uint ) >
self primitiveFailed
!
@@ -4228,7 +4251,7 @@
@return: LLVMTypeRef
"
- <cdecl: LLVMType "LLVMIntType" ( uint32 ) >
+ <cdecl: LLVMType "LLVMIntType" ( uint ) >
self primitiveFailed
!
@@ -4238,7 +4261,7 @@
@return: LLVMTypeRef
"
- <cdecl: LLVMType "LLVMIntTypeInContext" ( LLVMContext uint32 ) >
+ <cdecl: LLVMType "LLVMIntTypeInContext" ( LLVMContext uint ) >
self primitiveFailed
!
@@ -4332,6 +4355,51 @@
self primitiveFailed
!
+IsACatchEndPadInst: Val
+ "@param Val: LLVMValueRef
+ @return: LLVMValueRef
+ "
+
+ <cdecl: LLVMValue "LLVMIsACatchEndPadInst" ( LLVMValue ) >
+ self primitiveFailed
+!
+
+IsACatchPadInst: Val
+ "@param Val: LLVMValueRef
+ @return: LLVMValueRef
+ "
+
+ <cdecl: LLVMValue "LLVMIsACatchPadInst" ( LLVMValue ) >
+ self primitiveFailed
+!
+
+IsACatchReturnInst: Val
+ "@param Val: LLVMValueRef
+ @return: LLVMValueRef
+ "
+
+ <cdecl: LLVMValue "LLVMIsACatchReturnInst" ( LLVMValue ) >
+ self primitiveFailed
+!
+
+IsACleanupPadInst: Val
+ "@param Val: LLVMValueRef
+ @return: LLVMValueRef
+ "
+
+ <cdecl: LLVMValue "LLVMIsACleanupPadInst" ( LLVMValue ) >
+ self primitiveFailed
+!
+
+IsACleanupReturnInst: Val
+ "@param Val: LLVMValueRef
+ @return: LLVMValueRef
+ "
+
+ <cdecl: LLVMValue "LLVMIsACleanupReturnInst" ( LLVMValue ) >
+ self primitiveFailed
+!
+
IsACmpInst: Val
"@param Val: LLVMValueRef
@return: LLVMValueRef
@@ -4827,6 +4895,15 @@
self primitiveFailed
!
+IsATerminatePadInst: Val
+ "@param Val: LLVMValueRef
+ @return: LLVMValueRef
+ "
+
+ <cdecl: LLVMValue "LLVMIsATerminatePadInst" ( LLVMValue ) >
+ self primitiveFailed
+!
+
IsATerminatorInst: Val
"@param Val: LLVMValueRef
@return: LLVMValueRef
@@ -4913,7 +4990,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMIsConditional" ( LLVMValue ) >
+ <cdecl: bool "LLVMIsConditional" ( LLVMValue ) >
self primitiveFailed
!
@@ -4922,7 +4999,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMIsConstant" ( LLVMValue ) >
+ <cdecl: bool "LLVMIsConstant" ( LLVMValue ) >
self primitiveFailed
!
@@ -4931,7 +5008,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMIsConstantString" ( LLVMValue ) >
+ <cdecl: bool "LLVMIsConstantString" ( LLVMValue ) >
self primitiveFailed
!
@@ -4940,7 +5017,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMIsDeclaration" ( LLVMValue ) >
+ <cdecl: bool "LLVMIsDeclaration" ( LLVMValue ) >
self primitiveFailed
!
@@ -4949,7 +5026,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMIsExternallyInitialized" ( LLVMValue ) >
+ <cdecl: bool "LLVMIsExternallyInitialized" ( LLVMValue ) >
self primitiveFailed
!
@@ -4958,7 +5035,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMIsFunctionVarArg" ( LLVMType ) >
+ <cdecl: bool "LLVMIsFunctionVarArg" ( LLVMType ) >
self primitiveFailed
!
@@ -4967,7 +5044,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMIsGlobalConstant" ( LLVMValue ) >
+ <cdecl: bool "LLVMIsGlobalConstant" ( LLVMValue ) >
self primitiveFailed
!
@@ -4975,7 +5052,7 @@
"@return: LLVMBool
"
- <cdecl: int32 "LLVMIsMultithreaded" ( ) >
+ <cdecl: bool "LLVMIsMultithreaded" ( ) >
self primitiveFailed
!
@@ -4984,7 +5061,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMIsNull" ( LLVMValue ) >
+ <cdecl: bool "LLVMIsNull" ( LLVMValue ) >
self primitiveFailed
!
@@ -4995,8 +5072,6 @@
<cdecl: bool "LLVMIsOpaqueStruct" ( LLVMType ) >
self primitiveFailed
-
- "Modified: / 14-08-2015 / 06:11:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
IsPackedStruct: StructTy
@@ -5006,8 +5081,6 @@
<cdecl: bool "LLVMIsPackedStruct" ( LLVMType ) >
self primitiveFailed
-
- "Modified: / 14-08-2015 / 06:11:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
IsTailCall: CallInst
@@ -5015,7 +5088,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMIsTailCall" ( LLVMValue ) >
+ <cdecl: bool "LLVMIsTailCall" ( LLVMValue ) >
self primitiveFailed
!
@@ -5024,7 +5097,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMIsThreadLocal" ( LLVMValue ) >
+ <cdecl: bool "LLVMIsThreadLocal" ( LLVMValue ) >
self primitiveFailed
!
@@ -5033,7 +5106,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMIsUndef" ( LLVMValue ) >
+ <cdecl: bool "LLVMIsUndef" ( LLVMValue ) >
self primitiveFailed
!
@@ -5076,7 +5149,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMMDNode" ( pointer uint32 ) >
+ <cdecl: LLVMValue "LLVMMDNode" ( pointer uint ) >
self primitiveFailed
!
@@ -5087,7 +5160,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMMDNodeInContext" ( LLVMContext pointer uint32 ) >
+ <cdecl: LLVMValue "LLVMMDNodeInContext" ( LLVMContext pointer uint ) >
self primitiveFailed
!
@@ -5097,7 +5170,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMMDString" ( charPointer uint32 ) >
+ <cdecl: LLVMValue "LLVMMDString" ( charPointer uint ) >
self primitiveFailed
!
@@ -5108,7 +5181,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMMDStringInContext" ( LLVMContext charPointer uint32 ) >
+ <cdecl: LLVMValue "LLVMMDStringInContext" ( LLVMContext charPointer uint ) >
self primitiveFailed
!
@@ -5119,8 +5192,6 @@
<cdecl: LLVMModule "LLVMModuleCreateWithName" ( charPointer ) >
self primitiveFailed
-
- "Modified (format): / 07-07-2015 / 20:36:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
ModuleCreateWithNameInContext: ModuleID _: C
@@ -5160,7 +5231,7 @@
@return: long long unsigned int
"
- <cdecl: uint64 "LLVMOffsetOfElement" ( LLVMTargetData LLVMType uint32 ) >
+ <cdecl: longlong "LLVMOffsetOfElement" ( LLVMTargetData LLVMType uint ) >
self primitiveFailed
!
@@ -5186,7 +5257,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMPointerSize" ( LLVMTargetData ) >
+ <cdecl: uint "LLVMPointerSize" ( LLVMTargetData ) >
self primitiveFailed
!
@@ -5196,7 +5267,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMPointerSizeForAS" ( LLVMTargetData uint32 ) >
+ <cdecl: uint "LLVMPointerSizeForAS" ( LLVMTargetData uint ) >
self primitiveFailed
!
@@ -5206,7 +5277,7 @@
@return: LLVMTypeRef
"
- <cdecl: LLVMType "LLVMPointerType" ( LLVMType uint32 ) >
+ <cdecl: LLVMType "LLVMPointerType" ( LLVMType uint ) >
self primitiveFailed
!
@@ -5247,7 +5318,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMPreferredAlignmentOfGlobal" ( LLVMTargetData LLVMValue ) >
+ <cdecl: uint "LLVMPreferredAlignmentOfGlobal" ( LLVMTargetData LLVMValue ) >
self primitiveFailed
!
@@ -5257,7 +5328,7 @@
@return: unsigned int
"
- <cdecl: uint32 "LLVMPreferredAlignmentOfType" ( LLVMTargetData LLVMType ) >
+ <cdecl: uint "LLVMPreferredAlignmentOfType" ( LLVMTargetData LLVMType ) >
self primitiveFailed
!
@@ -5268,7 +5339,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMPrintModuleToFile" ( LLVMModule charPointer pointer ) >
+ <cdecl: bool "LLVMPrintModuleToFile" ( LLVMModule charPointer pointer ) >
self primitiveFailed
!
@@ -5280,7 +5351,7 @@
<cdecl: pointer "LLVMPrintModuleToString" ( LLVMModule ) >
self primitiveFailed
- "Modified: / 10-07-2015 / 14:27:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 14-08-2015 / 13:06:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
PrintTypeToString: Val
@@ -5288,10 +5359,8 @@
@return: *char
"
- <cdecl: pointer "LLVMPrintTypeToString" ( LLVMType ) >
- self primitiveFailed
-
- "Modified: / 10-07-2015 / 14:27:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ <cdecl: charPointer "LLVMPrintTypeToString" ( LLVMType ) >
+ self primitiveFailed
!
PrintValueToString: Val
@@ -5302,7 +5371,7 @@
<cdecl: pointer "LLVMPrintValueToString" ( LLVMValue ) >
self primitiveFailed
- "Modified: / 10-07-2015 / 14:27:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 15-08-2015 / 07:00:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
RecompileAndRelinkFunction: EE _: Fn
@@ -5351,7 +5420,7 @@
@return: void
"
- <cdecl: void "LLVMRemoveInstrAttribute" ( LLVMValue uint32 int32 ) >
+ <cdecl: void "LLVMRemoveInstrAttribute" ( LLVMValue uint int32 ) >
self primitiveFailed
!
@@ -5363,7 +5432,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMRemoveModule" ( LLVMExecutionEngine LLVMModule pointer pointer ) >
+ <cdecl: bool "LLVMRemoveModule" ( LLVMExecutionEngine LLVMModule pointer pointer ) >
self primitiveFailed
!
@@ -5375,7 +5444,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMRemoveModuleProvider" ( LLVMExecutionEngine LLVMModuleProvider pointer pointer ) >
+ <cdecl: bool "LLVMRemoveModuleProvider" ( LLVMExecutionEngine LLVMModuleProvider pointer pointer ) >
self primitiveFailed
!
@@ -5405,7 +5474,7 @@
@return: LLVMGenericValueRef
"
- <cdecl: LLVMGenericValue "LLVMRunFunction" ( LLVMExecutionEngine LLVMValue uint32 pointer ) >
+ <cdecl: LLVMGenericValue "LLVMRunFunction" ( LLVMExecutionEngine LLVMValue uint pointer ) >
self primitiveFailed
!
@@ -5418,7 +5487,7 @@
@return: int
"
- <cdecl: int32 "LLVMRunFunctionAsMain" ( LLVMExecutionEngine LLVMValue uint32 pointer pointer ) >
+ <cdecl: int "LLVMRunFunctionAsMain" ( LLVMExecutionEngine LLVMValue uint pointer pointer ) >
self primitiveFailed
!
@@ -5428,7 +5497,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMRunFunctionPassManager" ( LLVMPassManager LLVMValue ) >
+ <cdecl: bool "LLVMRunFunctionPassManager" ( LLVMPassManager LLVMValue ) >
self primitiveFailed
!
@@ -5438,7 +5507,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMRunPassManager" ( LLVMPassManager LLVMModule ) >
+ <cdecl: bool "LLVMRunPassManager" ( LLVMPassManager LLVMModule ) >
self primitiveFailed
!
@@ -5466,7 +5535,7 @@
@return: void
"
- <cdecl: void "LLVMSetAlignment" ( LLVMValue uint32 ) >
+ <cdecl: void "LLVMSetAlignment" ( LLVMValue uint ) >
self primitiveFailed
!
@@ -5476,7 +5545,7 @@
@return: void
"
- <cdecl: void "LLVMSetCleanup" ( LLVMValue int32 ) >
+ <cdecl: void "LLVMSetCleanup" ( LLVMValue bool ) >
self primitiveFailed
!
@@ -5526,7 +5595,7 @@
@return: void
"
- <cdecl: void "LLVMSetExternallyInitialized" ( LLVMValue int32 ) >
+ <cdecl: void "LLVMSetExternallyInitialized" ( LLVMValue bool ) >
self primitiveFailed
!
@@ -5536,7 +5605,7 @@
@return: void
"
- <cdecl: void "LLVMSetFunctionCallConv" ( LLVMValue uint32 ) >
+ <cdecl: void "LLVMSetFunctionCallConv" ( LLVMValue uint ) >
self primitiveFailed
!
@@ -5556,7 +5625,7 @@
@return: void
"
- <cdecl: void "LLVMSetGlobalConstant" ( LLVMValue int32 ) >
+ <cdecl: void "LLVMSetGlobalConstant" ( LLVMValue bool ) >
self primitiveFailed
!
@@ -5587,7 +5656,7 @@
@return: void
"
- <cdecl: void "LLVMSetInstrParamAlignment" ( LLVMValue uint32 uint32 ) >
+ <cdecl: void "LLVMSetInstrParamAlignment" ( LLVMValue uint uint ) >
self primitiveFailed
!
@@ -5597,7 +5666,7 @@
@return: void
"
- <cdecl: void "LLVMSetInstructionCallConv" ( LLVMValue uint32 ) >
+ <cdecl: void "LLVMSetInstructionCallConv" ( LLVMValue uint ) >
self primitiveFailed
!
@@ -5618,7 +5687,7 @@
@return: void
"
- <cdecl: void "LLVMSetMetadata" ( LLVMValue uint32 LLVMValue ) >
+ <cdecl: void "LLVMSetMetadata" ( LLVMValue uint LLVMValue ) >
self primitiveFailed
!
@@ -5639,7 +5708,17 @@
@return: void
"
- <cdecl: void "LLVMSetOperand" ( LLVMValue uint32 LLVMValue ) >
+ <cdecl: void "LLVMSetOperand" ( LLVMValue uint LLVMValue ) >
+ self primitiveFailed
+!
+
+SetOrdering: MemoryAccessInst _: Ordering
+ "@param MemoryAccessInst: LLVMValueRef
+ @param Ordering: LLVMAtomicOrdering
+ @return: void
+ "
+
+ <cdecl: void "LLVMSetOrdering" ( LLVMValue int32 ) >
self primitiveFailed
!
@@ -5649,7 +5728,17 @@
@return: void
"
- <cdecl: void "LLVMSetParamAlignment" ( LLVMValue uint32 ) >
+ <cdecl: void "LLVMSetParamAlignment" ( LLVMValue uint ) >
+ self primitiveFailed
+!
+
+SetPersonalityFn: Fn _: PersonalityFn
+ "@param Fn: LLVMValueRef
+ @param PersonalityFn: LLVMValueRef
+ @return: void
+ "
+
+ <cdecl: void "LLVMSetPersonalityFn" ( LLVMValue LLVMValue ) >
self primitiveFailed
!
@@ -5670,7 +5759,7 @@
@return: void
"
- <cdecl: void "LLVMSetSuccessor" ( LLVMValue uint32 LLVMBasicBlock ) >
+ <cdecl: void "LLVMSetSuccessor" ( LLVMValue uint LLVMBasicBlock ) >
self primitiveFailed
!
@@ -5680,7 +5769,7 @@
@return: void
"
- <cdecl: void "LLVMSetTailCall" ( LLVMValue int32 ) >
+ <cdecl: void "LLVMSetTailCall" ( LLVMValue bool ) >
self primitiveFailed
!
@@ -5700,7 +5789,7 @@
@return: void
"
- <cdecl: void "LLVMSetThreadLocal" ( LLVMValue int32 ) >
+ <cdecl: void "LLVMSetThreadLocal" ( LLVMValue bool ) >
self primitiveFailed
!
@@ -5720,7 +5809,7 @@
@return: void
"
- <cdecl: void "LLVMSetUnnamedAddr" ( LLVMValue int32 ) >
+ <cdecl: void "LLVMSetUnnamedAddr" ( LLVMValue bool ) >
self primitiveFailed
!
@@ -5750,7 +5839,7 @@
@return: void
"
- <cdecl: void "LLVMSetVolatile" ( LLVMValue int32 ) >
+ <cdecl: void "LLVMSetVolatile" ( LLVMValue bool ) >
self primitiveFailed
!
@@ -5777,7 +5866,7 @@
@return: long long unsigned int
"
- <cdecl: uint64 "LLVMSizeOfTypeInBits" ( LLVMTargetData LLVMType ) >
+ <cdecl: longlong "LLVMSizeOfTypeInBits" ( LLVMTargetData LLVMType ) >
self primitiveFailed
!
@@ -5785,7 +5874,7 @@
"@return: LLVMBool
"
- <cdecl: int32 "LLVMStartMultithreaded" ( ) >
+ <cdecl: bool "LLVMStartMultithreaded" ( ) >
self primitiveFailed
!
@@ -5803,7 +5892,7 @@
@return: long long unsigned int
"
- <cdecl: uint64 "LLVMStoreSizeOfType" ( LLVMTargetData LLVMType ) >
+ <cdecl: longlong "LLVMStoreSizeOfType" ( LLVMTargetData LLVMType ) >
self primitiveFailed
!
@@ -5823,7 +5912,7 @@
@return: LLVMTypeRef
"
- <cdecl: LLVMType "LLVMStructGetTypeAtIndex" ( LLVMType uint32 ) >
+ <cdecl: LLVMType "LLVMStructGetTypeAtIndex" ( LLVMType uint ) >
self primitiveFailed
!
@@ -5835,7 +5924,7 @@
@return: void
"
- <cdecl: void "LLVMStructSetBody" ( LLVMType pointer uint32 int32 ) >
+ <cdecl: void "LLVMStructSetBody" ( LLVMType pointer uint bool ) >
self primitiveFailed
!
@@ -5846,7 +5935,7 @@
@return: LLVMTypeRef
"
- <cdecl: LLVMType "LLVMStructType" ( pointer uint32 int32 ) >
+ <cdecl: LLVMType "LLVMStructType" ( pointer uint bool ) >
self primitiveFailed
!
@@ -5858,7 +5947,7 @@
@return: LLVMTypeRef
"
- <cdecl: LLVMType "LLVMStructTypeInContext" ( LLVMContext pointer uint32 int32 ) >
+ <cdecl: LLVMType "LLVMStructTypeInContext" ( LLVMContext pointer uint bool ) >
self primitiveFailed
!
@@ -5867,7 +5956,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMTypeIsSized" ( LLVMType ) >
+ <cdecl: bool "LLVMTypeIsSized" ( LLVMType ) >
self primitiveFailed
!
@@ -5896,8 +5985,6 @@
<cdecl: bool "LLVMValueIsBasicBlock" ( LLVMValue ) >
self primitiveFailed
-
- "Modified: / 08-08-2015 / 04:17:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
VectorType: ElementType _: ElementCount
@@ -5906,7 +5993,7 @@
@return: LLVMTypeRef
"
- <cdecl: LLVMType "LLVMVectorType" ( LLVMType uint32 ) >
+ <cdecl: LLVMType "LLVMVectorType" ( LLVMType uint ) >
self primitiveFailed
!
@@ -5916,7 +6003,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMVerifyFunction" ( LLVMValue int32 ) >
+ <cdecl: bool "LLVMVerifyFunction" ( LLVMValue int32 ) >
self primitiveFailed
!
@@ -5927,7 +6014,7 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMVerifyModule" ( LLVMModule int32 pointer ) >
+ <cdecl: bool "LLVMVerifyModule" ( LLVMModule int32 pointer ) >
self primitiveFailed
!
@@ -5974,7 +6061,7 @@
@return: int
"
- <cdecl: int32 "LLVMWriteBitcodeToFD" ( LLVMModule int32 int32 int32 ) >
+ <cdecl: int "LLVMWriteBitcodeToFD" ( LLVMModule int int int ) >
self primitiveFailed
!
@@ -5984,7 +6071,7 @@
@return: int
"
- <cdecl: int32 "LLVMWriteBitcodeToFile" ( LLVMModule charPointer ) >
+ <cdecl: int "LLVMWriteBitcodeToFile" ( LLVMModule charPointer ) >
self primitiveFailed
!
@@ -5994,7 +6081,7 @@
@return: int
"
- <cdecl: int32 "LLVMWriteBitcodeToFileHandle" ( LLVMModule int32 ) >
+ <cdecl: int "LLVMWriteBitcodeToFileHandle" ( LLVMModule int ) >
self primitiveFailed
!
--- a/LLVMCEXT.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMCEXT.st Mon Aug 17 08:53:26 2015 +0100
@@ -95,7 +95,7 @@
@return: void
"
- <cdecl: void "LLVMAddNamedMetadataOperand2" ( pointer charPointer LLVMMetadata ) >
+ <cdecl: void "LLVMAddNamedMetadataOperand2" ( LLVMModule charPointer LLVMMetadata ) >
self primitiveFailed
!
@@ -394,30 +394,41 @@
self primitiveFailed
!
-DIBuilderInsertDeclareAtEnd: D _: Storage _: VarInfo _: Expr _: Block
+DIBuilderInsertDeclareAtEnd: D _: Storage _: VarInfo _: Expr _: Location _: Block
"@param D: LLVMDIBuilderRef
@param Storage: LLVMValueRef
@param VarInfo: LLVMMetadataRef
@param Expr: LLVMMetadataRef
+ @param Location: LLVMMetadataRef
@param Block: LLVMBasicBlockRef
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMDIBuilderInsertDeclareAtEnd" ( LLVMDIBuilder LLVMValue LLVMMetadata LLVMMetadata pointer ) >
+ <cdecl: LLVMValue "LLVMDIBuilderInsertDeclareAtEnd" ( LLVMDIBuilder LLVMValue LLVMMetadata LLVMMetadata LLVMMetadata pointer ) >
self primitiveFailed
!
-DIBuilderInsertValueAtEnd: D _: Val _: Offset _: VarInfo _: Expr _: Block
+DIBuilderInsertValueAtEnd: D _: Val _: Offset _: VarInfo _: Expr _: Location _: Block
"@param D: LLVMDIBuilderRef
@param Val: LLVMValueRef
@param Offset: uint64_t
@param VarInfo: LLVMMetadataRef
@param Expr: LLVMMetadataRef
+ @param Location: LLVMMetadataRef
@param Block: LLVMBasicBlockRef
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMDIBuilderInsertValueAtEnd" ( LLVMDIBuilder LLVMValue uint64 LLVMMetadata LLVMMetadata pointer ) >
+ <cdecl: LLVMValue "LLVMDIBuilderInsertValueAtEnd" ( LLVMDIBuilder LLVMValue uint64 LLVMMetadata LLVMMetadata LLVMMetadata pointer ) >
+ self primitiveFailed
+!
+
+GetCurrentDebugLocation2: Bref
+ "@param Bref: LLVMBuilderRef
+ @return: LLVMMetadataRef
+ "
+
+ <cdecl: LLVMMetadata "LLVMGetCurrentDebugLocation2" ( pointer ) >
self primitiveFailed
!
@@ -438,7 +449,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMGetIntrinsicByName" ( pointer charPointer int pointer ) >
+ <cdecl: LLVMValue "LLVMGetIntrinsicByName" ( LLVMModule charPointer int pointer ) >
self primitiveFailed
!
@@ -464,6 +475,25 @@
self primitiveFailed
!
+MetadataAsValue: MD
+ "@param MD: LLVMMetadataRef
+ @return: LLVMValueRef
+ "
+
+ <cdecl: LLVMValue "LLVMMetadataAsValue" ( LLVMMetadata ) >
+ self primitiveFailed
+!
+
+MetadataAsValueInContext: C _: MD
+ "@param C: LLVMContextRef
+ @param MD: LLVMMetadataRef
+ @return: LLVMValueRef
+ "
+
+ <cdecl: LLVMValue "LLVMMetadataAsValueInContext" ( LLVMContext LLVMMetadata ) >
+ self primitiveFailed
+!
+
MetadataReplaceAllUsesWith: MD _: New
"@param MD: LLVMMetadataRef
@param New: LLVMMetadataRef
@@ -474,12 +504,24 @@
self primitiveFailed
!
+ModuleAddModuleFlag: M _: Behavior _: Key _: Val
+ "@param M: LLVMModuleRef
+ @param Behavior: LLVMModuleFlagBehavior
+ @param Key: *const char
+ @param Val: LLVMMetadataRef
+ @return: void
+ "
+
+ <cdecl: void "LLVMModuleAddModuleFlag" ( LLVMModule int32 charPointer LLVMMetadata ) >
+ self primitiveFailed
+!
+
NewDIBuilder: m
"@param m: LLVMModuleRef
@return: LLVMDIBuilderRef
"
- <cdecl: LLVMDIBuilder "LLVMNewDIBuilder" ( pointer ) >
+ <cdecl: LLVMDIBuilder "LLVMNewDIBuilder" ( LLVMModule ) >
self primitiveFailed
!
@@ -526,6 +568,33 @@
<cdecl: LLVMMetadata "LLVMTemporaryMDNode" ( LLVMContext pointer uint ) >
self primitiveFailed
+!
+
+ValueAsMetadata: Value
+ "@param Value: LLVMValueRef
+ @return: LLVMMetadataRef
+ "
+
+ <cdecl: LLVMMetadata "LLVMValueAsMetadata" ( LLVMValue ) >
+ self primitiveFailed
+!
+
+ValueAsSInt64: Value
+ "@param Value: LLVMValueRef
+ @return: int64_t
+ "
+
+ <cdecl: sint64 "LLVMValueAsSInt64" ( LLVMValue ) >
+ self primitiveFailed
+!
+
+ValueAsUInt64: Value
+ "@param Value: LLVMValueRef
+ @return: uint64_t
+ "
+
+ <cdecl: uint64 "LLVMValueAsUInt64" ( LLVMValue ) >
+ self primitiveFailed
! !
!LLVMCEXT class methodsFor:'documentation'!
--- a/LLVMDIBuilder.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMDIBuilder.st Mon Aug 17 08:53:26 2015 +0100
@@ -15,10 +15,10 @@
"{ NameSpace: Smalltalk }"
-ExternalAddress subclass:#LLVMDIBuilder
+LLVMDisposableObject subclass:#LLVMDIBuilder
instanceVariableNames:''
classVariableNames:''
- poolDictionaries:''
+ poolDictionaries:'LLVMModuleFlagBehavior'
category:'LLVM-S-Core'
!
@@ -40,3 +40,235 @@
"
! !
+!LLVMDIBuilder class methodsFor:'instance creation'!
+
+newForModule: module
+ | dib |
+ dib := LLVMCEXT NewDIBuilder: module.
+ "/ Now we have to add module flags otherwise llc won't
+ "/ produce debug info.
+ "/ See http://lists.llvm.org/pipermail/llvm-dev/2014-October/077815.html
+ module addFlag: 'Dwarf Version' value: (LLVMConstant uint32: 4) asLLVMMetadata behavior: LLVMModuleFlagBehaviorWarning.
+ module addFlag: 'Debug Info Version' value: (LLVMConstant uint32: 3) asLLVMMetadata behavior: LLVMModuleFlagBehaviorError.
+
+ ^ dib
+
+ "Created: / 13-08-2015 / 06:35:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 15-08-2015 / 23:39:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMDIBuilder methodsFor:'assertions'!
+
+assertIsStringOrFilename: value
+ <resource: #skipInDebuggersWalkback>
+ self assert: (value isString or:[ value isFilename ]) message: 'value is not a String or Filename'
+
+ "Created: / 13-08-2015 / 06:47:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMDIBuilder methodsFor:'building'!
+
+createAutomaticVariable: name in: scope file: file line: line type: type
+ ^ self createAutomaticVariable: name in: scope file: file line: line type: type flags: 0
+
+ "Created: / 14-08-2015 / 13:58:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+createAutomaticVariable: name in: scope file: file line: line type: type flags: flags
+ ^ self createAutomaticVariable: name in: scope file: file line: line type: type flags: flags preserve: true.
+
+ "Created: / 14-08-2015 / 13:57:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+createAutomaticVariable: name in: scope file: file line: line type: type flags: flags preserve: preserve
+ "Creates a debg info metadata describing a local variable"
+
+ self assertIsString: name.
+ self assertIsMetadata: scope.
+ self assertIsMetadata: file.
+ self assertIsIntegerUnsigned: line.
+ self assertIsMetadata: type.
+ self assertIsIntegerUnsigned: flags.
+ self assertIsBoolean: preserve.
+
+ ^ LLVMCEXT DIBuilderCreateAutoVariable: self _: scope _: name _: file _: line _: type _: (preserve ifTrue:[1] ifFalse:[0]) _: flags
+
+ "Created: / 14-08-2015 / 13:56:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+createCompilationUnit: path language: lang producer: producer
+ ^ self createCompilationUnit: path language: lang producer: producer runtimeVersion: 0 optimized: false flags: ''
+
+ "Created: / 13-08-2015 / 06:58:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+createCompilationUnit: path language: lang producer: producer runtimeVersion: rv optimized: isOptimized flags: compilerFlags
+ | filename |
+ self assertIsStringOrFilename: path.
+ self assertIsIntegerUnsigned: lang.
+ self assertIsString: producer.
+ self assertIsIntegerUnsigned: rv.
+ self assertIsBoolean: isOptimized.
+ self assertIsString: compilerFlags.
+
+ filename := path asFilename.
+
+ ^ LLVMCEXT DIBuilderCreateCompileUnit: self _: lang _: filename baseName _: filename directory pathName _: producer _: (isOptimized ifTrue:[1] ifFalse:[0]) _: compilerFlags _: rv
+
+ "Created: / 13-08-2015 / 06:47:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+createExpression
+ ^ LLVMCEXT DIBuilderCreateExpression: self _: ExternalAddress new _: 0
+
+ "Created: / 14-08-2015 / 14:06:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+createFile: path
+ | filename |
+
+ self assertIsStringOrFilename: path.
+
+ filename := path asFilename.
+ ^ LLVMCEXT DIBuilderCreateFile: self _: filename baseName _: filename directory pathName
+
+ "Created: / 15-08-2015 / 22:08:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+createFunction: name in: scope file: file line: line type: type function: function local: isLocal definition: isDefinition optimized: isOptimized
+ ^ self createFunction: name in: scope file: file line: line type: type function: function local: isLocal definition: isDefinition optimized: isOptimized flags: 0
+
+ "Created: / 14-08-2015 / 13:47:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+createFunction: name in: scope file: file line: line type: type function: function local: isLocal definition: isDefinition optimized: isOptimized flags: flags
+ ^ self createFunction: name in: scope file: file line: line type: type function: function local: isLocal definition: isDefinition optimized: isOptimized flags: flags scopeLine: line
+
+ "Created: / 14-08-2015 / 13:47:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+createFunction: name in: scope file: file line: line type: type function: function local: isLocal definition: isDefinition optimized: isOptimized flags: flags scopeLine: scopeLine
+ ^ self createFunction: name in: scope file: file line: line type: type function: function local: isLocal definition: isDefinition optimized: isOptimized flags: flags scopeLine: scopeLine linkageName: function name
+
+ "Created: / 14-08-2015 / 13:46:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+createFunction: name in: scope file: file line: line type: type function: function local: isLocal definition: isDefinition optimized: isOptimized flags: flags scopeLine: scopeLine linkageName: linkageName
+
+ self assertIsMetadata: scope.
+ self assertIsMetadata: file.
+ self assertIsString: name.
+ self assertIsIntegerUnsigned: line.
+ self assertIsFunctionValue: function.
+ self assertIsBoolean: isLocal.
+ self assertIsBoolean: isDefinition.
+ self assertIsBoolean: isOptimized.
+ self assertIsIntegerUnsigned: flags.
+ self assertIsIntegerUnsigned: scopeLine.
+ self assertIsString: linkageName.
+
+ ^ LLVMCEXT DIBuilderCreateFunction: self _: scope _: name _: linkageName _: file _: line _: type _: (isLocal ifTrue:[1] ifFalse:[0]) _: (isDefinition ifTrue:[1] ifFalse:[0]) _: scopeLine _: flags _: (isOptimized ifTrue:[1] ifFalse:[0]) _: function.
+
+ "Created: / 14-08-2015 / 13:46:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+createParameterVariable: name in: scope file: file line: line type: type flags: flags index: index
+ ^ self createParameterVariable: name in: scope file: file line: line type: type flags: flags index: index preserve: true
+
+ "Created: / 14-08-2015 / 13:54:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+createParameterVariable: name in: scope file: file line: line type: type flags: flags index: index preserve: preserve
+ "Creates a debg info metadata describing a local variable"
+
+ self assertIsString: name.
+ self assertIsMetadata: scope.
+ self assertIsMetadata: file.
+ self assertIsIntegerUnsigned: line.
+ self assertIsMetadata: type.
+ self assertIsIntegerUnsigned: flags.
+ self assertIsIntegerUnsigned: index.
+ self assertIsBoolean: preserve.
+
+ ^ LLVMCEXT DIBuilderCreateParameterVariable: self _: scope _: name _: file _: line _: type _: (preserve ifTrue:[1] ifFalse:[0]) _: flags _: index - 1
+
+ "Created: / 14-08-2015 / 13:54:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+createTypeFunctionIn: file parameterTypes: parameterTypes
+ | parameterTypesAsTuple |
+
+ self assertIsMetadata: file.
+ self assertIsMetadataArray: parameterTypes.
+
+ parameterTypesAsTuple := LLVMCEXT MDNode2: LLVM GetGlobalContext _: parameterTypes asLLVMObjectArray _: parameterTypes size.
+ ^ LLVMCEXT DIBuilderCreateSubroutineType: self _: file _: parameterTypesAsTuple
+
+ "Created: / 14-08-2015 / 08:57:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+createTypeScalar: name size: sizeInBits alignment: alignmentInBits encoding: encoding
+ self assertIsString: name.
+ self assertIsInteger64Unsigned: sizeInBits.
+ self assertIsInteger64Unsigned: alignmentInBits.
+ self assertIsIntegerUnsigned: alignmentInBits.
+
+ ^ LLVMCEXT DIBuilderCreateBasicType: self _: name _: sizeInBits _: alignmentInBits _: encoding
+
+ "Created: / 14-08-2015 / 07:32:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+createTypeScalar: name type: type encoding: encoding
+ self assertIsString: name.
+ self assertIsType: type.
+
+ ^ self createTypeScalar: name size: type sizeInBits alignment:type alignmentInBits encoding: encoding
+
+ "Created: / 14-08-2015 / 09:17:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+finish
+ LLVMCEXT DIBuilderFinalize: self
+
+ "Created: / 14-08-2015 / 13:11:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+insertDeclare: alloca variable: variable expression: expr location: location atEndOf: basicblock
+ "Inserts @llvm.dbg.declare() intrinsic at the end of given `basicblock`"
+
+ self assertIsValue: alloca.
+ self assertIsMetadata: variable.
+ self assertIsMetadata: expr.
+ self assertIsMetadata: location.
+ self assertIsBasicBlock: basicblock.
+
+ ^ LLVMCEXT DIBuilderInsertDeclareAtEnd: self _: alloca _: variable _: expr _: location _: basicblock
+
+ "Created: / 15-08-2015 / 23:44:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+insertValue: alloca variable: variable expression: expr location: location atEndOf: basicblock offset: offset
+ "Inserts @llvm.dbg.value() intrinsic at the end of given `basicblock`"
+
+ self assertIsValue: alloca.
+ self assertIsMetadata: variable.
+ self assertIsMetadata: expr.
+ self assertIsMetadata: location.
+ self assertIsBasicBlock: basicblock.
+ self assertIsInteger64Unsigned: offset.
+
+ ^ LLVMCEXT DIBuilderInsertValueAtEnd: self _: alloca _: offset _: variable _: expr _: location _: basicblock
+
+ "Created: / 15-08-2015 / 23:49:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMDIBuilder methodsFor:'initialization & release'!
+
+dispose
+ "superclass LLVMDisposableObject says that I am responsible to implement this method"
+
+ ^ LLVMCEXT DIBuilderDestroy: self
+
+ "Modified: / 14-08-2015 / 13:20:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMDWARFEncoding.st Mon Aug 17 08:53:26 2015 +0100
@@ -0,0 +1,167 @@
+"
+ 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:#LLVMDWARFEncoding
+ instanceVariableNames:''
+ classVariableNames:'LLVM_DW_ATE_address LLVM_DW_ATE_boolean LLVM_DW_ATE_complex_float
+ LLVM_DW_ATE_float LLVM_DW_ATE_signed LLVM_DW_ATE_signed_char
+ LLVM_DW_ATE_unsigned LLVM_DW_ATE_unsigned_char
+ LLVM_DW_ATE_imaginary_float LLVM_DW_ATE_packed_decimal
+ LLVM_DW_ATE_numeric_string LLVM_DW_ATE_edited
+ LLVM_DW_ATE_signed_fixed LLVM_DW_ATE_unsigned_fixed
+ LLVM_DW_ATE_decimal_float LLVM_DW_ATE_UTF LLVM_DW_ATE_lo_user
+ LLVM_DW_ATE_hi_user'
+ poolDictionaries:''
+ category:'LLVM-S-Core-Constants'
+!
+
+!LLVMDWARFEncoding 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.
+"
+! !
+
+!LLVMDWARFEncoding class methodsFor:'initialization'!
+
+initialize
+
+ LLVM_DW_ATE_address := 1.
+ LLVM_DW_ATE_boolean := 2.
+ LLVM_DW_ATE_complex_float := 3.
+ LLVM_DW_ATE_float := 4.
+ LLVM_DW_ATE_signed := 5.
+ LLVM_DW_ATE_signed_char := 6.
+ LLVM_DW_ATE_unsigned := 7.
+ LLVM_DW_ATE_unsigned_char := 8.
+ LLVM_DW_ATE_imaginary_float := 9.
+ LLVM_DW_ATE_packed_decimal := 10.
+ LLVM_DW_ATE_numeric_string := 11.
+ LLVM_DW_ATE_edited := 12.
+ LLVM_DW_ATE_signed_fixed := 13.
+ LLVM_DW_ATE_unsigned_fixed := 14.
+ LLVM_DW_ATE_decimal_float := 15.
+ LLVM_DW_ATE_UTF := 16.
+ LLVM_DW_ATE_lo_user := 128.
+ LLVM_DW_ATE_hi_user := 255.
+! !
+
+!LLVMDWARFEncoding class methodsFor:'constants'!
+
+LLVM_DW_ATE_UTF
+
+ ^LLVM_DW_ATE_UTF
+!
+
+LLVM_DW_ATE_address
+
+ ^LLVM_DW_ATE_address
+!
+
+LLVM_DW_ATE_boolean
+
+ ^LLVM_DW_ATE_boolean
+!
+
+LLVM_DW_ATE_complex_float
+
+ ^LLVM_DW_ATE_complex_float
+!
+
+LLVM_DW_ATE_decimal_float
+
+ ^LLVM_DW_ATE_decimal_float
+!
+
+LLVM_DW_ATE_edited
+
+ ^LLVM_DW_ATE_edited
+!
+
+LLVM_DW_ATE_float
+
+ ^LLVM_DW_ATE_float
+!
+
+LLVM_DW_ATE_hi_user
+
+ ^LLVM_DW_ATE_hi_user
+!
+
+LLVM_DW_ATE_imaginary_float
+
+ ^LLVM_DW_ATE_imaginary_float
+!
+
+LLVM_DW_ATE_lo_user
+
+ ^LLVM_DW_ATE_lo_user
+!
+
+LLVM_DW_ATE_numeric_string
+
+ ^LLVM_DW_ATE_numeric_string
+!
+
+LLVM_DW_ATE_packed_decimal
+
+ ^LLVM_DW_ATE_packed_decimal
+!
+
+LLVM_DW_ATE_signed
+
+ ^LLVM_DW_ATE_signed
+!
+
+LLVM_DW_ATE_signed_char
+
+ ^LLVM_DW_ATE_signed_char
+!
+
+LLVM_DW_ATE_signed_fixed
+
+ ^LLVM_DW_ATE_signed_fixed
+!
+
+LLVM_DW_ATE_unsigned
+
+ ^LLVM_DW_ATE_unsigned
+!
+
+LLVM_DW_ATE_unsigned_char
+
+ ^LLVM_DW_ATE_unsigned_char
+!
+
+LLVM_DW_ATE_unsigned_fixed
+
+ ^LLVM_DW_ATE_unsigned_fixed
+! !
+
+
+LLVMDWARFEncoding initialize!
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMDWARFLamguage.st Mon Aug 17 08:53:26 2015 +0100
@@ -0,0 +1,294 @@
+"
+ 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:#LLVMDWARFLamguage
+ instanceVariableNames:''
+ classVariableNames:'LLVM_DW_LANG_C89 LLVM_DW_LANG_C LLVM_DW_LANG_Ada83
+ LLVM_DW_LANG_C_plus_plus LLVM_DW_LANG_Cobol74
+ LLVM_DW_LANG_Cobol85 LLVM_DW_LANG_Fortran77
+ LLVM_DW_LANG_Fortran90 LLVM_DW_LANG_Pascal83 LLVM_DW_LANG_Modula2
+ LLVM_DW_LANG_Java LLVM_DW_LANG_C99 LLVM_DW_LANG_Ada95
+ LLVM_DW_LANG_Fortran95 LLVM_DW_LANG_PLI LLVM_DW_LANG_ObjC
+ LLVM_DW_LANG_ObjC_plus_plus LLVM_DW_LANG_UPC LLVM_DW_LANG_D
+ LLVM_DW_LANG_Python LLVM_DW_LANG_OpenCL LLVM_DW_LANG_Go
+ LLVM_DW_LANG_Modula3 LLVM_DW_LANG_Haskell
+ LLVM_DW_LANG_C_plus_plus_03 LLVM_DW_LANG_C_plus_plus_11
+ LLVM_DW_LANG_OCaml LLVM_DW_LANG_Rust LLVM_DW_LANG_C11
+ LLVM_DW_LANG_Swift LLVM_DW_LANG_Julia LLVM_DW_LANG_Dylan
+ LLVM_DW_LANG_C_plus_plus_14 LLVM_DW_LANG_Fortran03
+ LLVM_DW_LANG_Fortran08 LLVM_DW_LANG_Mips_Assembler
+ LLVM_DW_LANG_lo_user LLVM_DW_LANG_hi_user'
+ poolDictionaries:''
+ category:'LLVM-S-Core-Constants'
+!
+
+!LLVMDWARFLamguage 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.
+"
+! !
+
+!LLVMDWARFLamguage class methodsFor:'initialization'!
+
+initialize
+
+ LLVM_DW_LANG_C89 := 1.
+ LLVM_DW_LANG_C := 2.
+ LLVM_DW_LANG_Ada83 := 3.
+ LLVM_DW_LANG_C_plus_plus := 4.
+ LLVM_DW_LANG_Cobol74 := 5.
+ LLVM_DW_LANG_Cobol85 := 6.
+ LLVM_DW_LANG_Fortran77 := 7.
+ LLVM_DW_LANG_Fortran90 := 8.
+ LLVM_DW_LANG_Pascal83 := 9.
+ LLVM_DW_LANG_Modula2 := 10.
+ LLVM_DW_LANG_Java := 11.
+ LLVM_DW_LANG_C99 := 12.
+ LLVM_DW_LANG_Ada95 := 13.
+ LLVM_DW_LANG_Fortran95 := 14.
+ LLVM_DW_LANG_PLI := 15.
+ LLVM_DW_LANG_ObjC := 16.
+ LLVM_DW_LANG_ObjC_plus_plus := 17.
+ LLVM_DW_LANG_UPC := 18.
+ LLVM_DW_LANG_D := 19.
+ LLVM_DW_LANG_Python := 20.
+ LLVM_DW_LANG_OpenCL := 21.
+ LLVM_DW_LANG_Go := 22.
+ LLVM_DW_LANG_Modula3 := 23.
+ LLVM_DW_LANG_Haskell := 24.
+ LLVM_DW_LANG_C_plus_plus_03 := 25.
+ LLVM_DW_LANG_C_plus_plus_11 := 26.
+ LLVM_DW_LANG_OCaml := 27.
+ LLVM_DW_LANG_Rust := 28.
+ LLVM_DW_LANG_C11 := 29.
+ LLVM_DW_LANG_Swift := 30.
+ LLVM_DW_LANG_Julia := 31.
+ LLVM_DW_LANG_Dylan := 32.
+ LLVM_DW_LANG_C_plus_plus_14 := 33.
+ LLVM_DW_LANG_Fortran03 := 34.
+ LLVM_DW_LANG_Fortran08 := 35.
+ LLVM_DW_LANG_Mips_Assembler := 32769.
+ LLVM_DW_LANG_lo_user := 32768.
+ LLVM_DW_LANG_hi_user := 65535.
+! !
+
+!LLVMDWARFLamguage class methodsFor:'constants'!
+
+LLVM_DW_LANG_Ada83
+
+ ^LLVM_DW_LANG_Ada83
+!
+
+LLVM_DW_LANG_Ada95
+
+ ^LLVM_DW_LANG_Ada95
+!
+
+LLVM_DW_LANG_C
+
+ ^LLVM_DW_LANG_C
+!
+
+LLVM_DW_LANG_C11
+
+ ^LLVM_DW_LANG_C11
+!
+
+LLVM_DW_LANG_C89
+
+ ^LLVM_DW_LANG_C89
+!
+
+LLVM_DW_LANG_C99
+
+ ^LLVM_DW_LANG_C99
+!
+
+LLVM_DW_LANG_C_plus_plus
+
+ ^LLVM_DW_LANG_C_plus_plus
+!
+
+LLVM_DW_LANG_C_plus_plus_03
+
+ ^LLVM_DW_LANG_C_plus_plus_03
+!
+
+LLVM_DW_LANG_C_plus_plus_11
+
+ ^LLVM_DW_LANG_C_plus_plus_11
+!
+
+LLVM_DW_LANG_C_plus_plus_14
+
+ ^LLVM_DW_LANG_C_plus_plus_14
+!
+
+LLVM_DW_LANG_Cobol74
+
+ ^LLVM_DW_LANG_Cobol74
+!
+
+LLVM_DW_LANG_Cobol85
+
+ ^LLVM_DW_LANG_Cobol85
+!
+
+LLVM_DW_LANG_D
+
+ ^LLVM_DW_LANG_D
+!
+
+LLVM_DW_LANG_Dylan
+
+ ^LLVM_DW_LANG_Dylan
+!
+
+LLVM_DW_LANG_Fortran03
+
+ ^LLVM_DW_LANG_Fortran03
+!
+
+LLVM_DW_LANG_Fortran08
+
+ ^LLVM_DW_LANG_Fortran08
+!
+
+LLVM_DW_LANG_Fortran77
+
+ ^LLVM_DW_LANG_Fortran77
+!
+
+LLVM_DW_LANG_Fortran90
+
+ ^LLVM_DW_LANG_Fortran90
+!
+
+LLVM_DW_LANG_Fortran95
+
+ ^LLVM_DW_LANG_Fortran95
+!
+
+LLVM_DW_LANG_Go
+
+ ^LLVM_DW_LANG_Go
+!
+
+LLVM_DW_LANG_Haskell
+
+ ^LLVM_DW_LANG_Haskell
+!
+
+LLVM_DW_LANG_Java
+
+ ^LLVM_DW_LANG_Java
+!
+
+LLVM_DW_LANG_Julia
+
+ ^LLVM_DW_LANG_Julia
+!
+
+LLVM_DW_LANG_Mips_Assembler
+
+ ^LLVM_DW_LANG_Mips_Assembler
+!
+
+LLVM_DW_LANG_Modula2
+
+ ^LLVM_DW_LANG_Modula2
+!
+
+LLVM_DW_LANG_Modula3
+
+ ^LLVM_DW_LANG_Modula3
+!
+
+LLVM_DW_LANG_OCaml
+
+ ^LLVM_DW_LANG_OCaml
+!
+
+LLVM_DW_LANG_ObjC
+
+ ^LLVM_DW_LANG_ObjC
+!
+
+LLVM_DW_LANG_ObjC_plus_plus
+
+ ^LLVM_DW_LANG_ObjC_plus_plus
+!
+
+LLVM_DW_LANG_OpenCL
+
+ ^LLVM_DW_LANG_OpenCL
+!
+
+LLVM_DW_LANG_PLI
+
+ ^LLVM_DW_LANG_PLI
+!
+
+LLVM_DW_LANG_Pascal83
+
+ ^LLVM_DW_LANG_Pascal83
+!
+
+LLVM_DW_LANG_Python
+
+ ^LLVM_DW_LANG_Python
+!
+
+LLVM_DW_LANG_Rust
+
+ ^LLVM_DW_LANG_Rust
+!
+
+LLVM_DW_LANG_Swift
+
+ ^LLVM_DW_LANG_Swift
+!
+
+LLVM_DW_LANG_UPC
+
+ ^LLVM_DW_LANG_UPC
+!
+
+LLVM_DW_LANG_hi_user
+
+ ^LLVM_DW_LANG_hi_user
+!
+
+LLVM_DW_LANG_lo_user
+
+ ^LLVM_DW_LANG_lo_user
+! !
+
+
+LLVMDWARFLamguage initialize!
--- a/LLVMExamples.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMExamples.st Mon Aug 17 08:53:26 2015 +0100
@@ -18,7 +18,7 @@
TestCase subclass:#LLVMExamples
instanceVariableNames:''
classVariableNames:''
- poolDictionaries:'LLVMIntPredicate'
+ poolDictionaries:'LLVMIntPredicate LLVMDWARFEncoding LLVMDWARFLamguage'
category:'LLVM-S-Core-Examples'
!
@@ -231,19 +231,15 @@
!
example5_factorial
- "
- S simple factorial using recursive algorithm.
- No negative argument or overflow checks"
+ "A simple factorial using recursive algorithm.
+ No overflow or negative value checks"
- | module functionType function asm "Variables"
- result i "Blocks"
- entry loop loopBody exit jit externalFunction |
+ | module functionType function asm
+ "Variables" result i
+ "Blocks" entry loop loopBody exit jit externalFunction |
module := LLVMModule newWithName:testSelector.
- functionType := LLVMType function:{
- LLVMType intptr
- }
- returning:LLVMType intptr.
+ functionType := LLVMType function:{ LLVMType intptr } returning:LLVMType intptr.
function := module addFunctionNamed:'factorial' type:functionType.
asm := LLVMIRBuilder new.
entry := function entry.
@@ -253,25 +249,25 @@
"/ Generate function setup
"/
- "/ function f(v) {
- "/ var result;
- "/ var i;
- "/ result = 0;
- "/ i := v;
+ "/ 03 function f(v) {
+ "/ 04 var result;
+ "/ 05 var i;
+ "/ 06 result = 0;
+ "/ 07 i := v;
asm block:entry.
result := asm alloca:LLVMType intptr as:'result'.
i := asm alloca:LLVMType intptr as:'i'.
asm store:(function parameterAt:1) _:i.
- asm store:(function parameterAt:1) _:result.
+ asm store:(LLVMConstant sintptr: 1) _:result.
asm br:loop.
"/ Generate loop that computes the factorial
"/
- "/ while ( i > 1 ) {
- "/ result = result * i;
- "/ i = i - 1.
- "/ }
+ "/ 08 while ( i > 1 ) {
+ "/ 09 result = result * i;
+ "/ 10 i = i - 1.
+ "/ 11 }
"/
"/ Note, that unlike 'traditional' assemblers, there's no
"/ fall-through instruction, so we have to introduce a block
@@ -293,7 +289,8 @@
"/ Generate return from function
"/
- "/ return result;
+ "/ 12 return result;
+ "/ 13 }
"/
asm block:exit.
@@ -304,11 +301,14 @@
self assert:(externalFunction callWith:1) == 1.
"
- LLVMExamples example3_cond"
+ LLVMExamples run: example5_factorial_with_debug_info
+ "
+
"Created: / 10-08-2015 / 09:46:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 17-08-2015 / 07:39:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
-example5_factorial_with_overflow
+example6_factorial_with_overflow
"
Simple factorial using recursive algorithm.
This one checks for overflow, if overflow happens,
@@ -344,7 +344,7 @@
result := asm alloca:LLVMType intptr as:'result'.
i := asm alloca:LLVMType intptr as:'i'.
asm store:(function parameterAt:1) _:i.
- asm store:(function parameterAt:1) _:result.
+ asm store:(LLVMConstant sintptr: 1) _:result.
asm br:loop.
"/ Generate loop that computes the factorial
@@ -408,7 +408,163 @@
self assert:(externalFunction callWith:120) == -1.
"sly LLVMExamples example3_cond"
- "Created: / 10-08-2015 / 17:12:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 10-08-2015 / 18:58:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+
+ "Created: / 14-08-2015 / 06:46:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 17-08-2015 / 07:40:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+example7_factorial_with_debug_info
+ "A simple factorial using recursive algorithm
+ with debug info attached.
+
+
+
+ "
+
+ | module functionType function asm
+ "Variables" result i
+ "Blocks" entry loop loopBody exit
+ "Debug Info Metadata" dib diFile compilationUnitDI functionTypeDI functionDI intptrDI resultDI iDI
+ jit externalFunction |
+
+ module := LLVMModule newWithName:testSelector.
+ dib := module debugInfoBuilder.
+
+ diFile := dib createFile: Filename currentDirectory / 'factorial.lang'.
+ compilationUnitDI := dib createCompilationUnit: Filename currentDirectory / 'factorial.lang' language: LLVM_DW_LANG_lo_user + 10 producer: self class name.
+
+ functionType := LLVMType function:{ LLVMType intptr } returning:LLVMType intptr.
+ intptrDI := dib createTypeScalar: 'intptr' type: LLVMType intptr encoding: LLVM_DW_ATE_signed.
+ functionTypeDI := dib createTypeFunctionIn: compilationUnitDI
+ parameterTypes: { intptrDI }.
+ function := module addFunctionNamed:'factorial' type:functionType.
+ functionDI := dib createFunction: 'factorial' in: compilationUnitDI file: diFile line: 03 type: functionTypeDI function: function local: false definition: true optimized: false.
+ dib createParameterVariable: 'v' in: functionDI file: diFile line: 03 type: intptrDI flags: 0 index: 1.
+ asm := LLVMIRBuilder new.
+ entry := function entry.
+ loop := function addBasicBlockNamed:'loop'.
+ loopBody := function addBasicBlockNamed:'loopBody'.
+ exit := function addBasicBlockNamed:'exit'.
+
+ "/ Generate function setup
+ "/
+ "/ 03 function f(v) {
+ "/ 04 var result;
+ "/ 05 var i;
+ "/ 06 result = 0;
+ "/ 07 i := v;
+
+ asm block:entry.
+ asm line: 4 column: 3 scope: functionDI.
+ result := asm alloca:LLVMType intptr as:'result'.
+ resultDI := dib createAutomaticVariable: 'result' in: functionDI file: diFile line: 4 type: intptrDI.
+ dib insertDeclare: result variable: resultDI expression: dib createExpression location: asm location atEndOf: entry.
+
+ asm line: 5 column: 3 scope: functionDI.
+ i := asm alloca:LLVMType intptr as:'i'.
+ iDI := dib createAutomaticVariable: 'i' in: functionDI file: diFile line: 4 type: intptrDI.
+ dib insertDeclare: i variable: iDI expression: dib createExpression location: asm location atEndOf: entry.
+
+ asm line: 6 column: 3 scope: functionDI.
+ asm store:(function parameterAt:1) _:i.
+
+ asm line: 7 column: 3 scope: functionDI.
+ asm store:(LLVMConstant sintptr: 1) _:result.
+ asm br:loop.
+
+ "/ Generate loop that computes the factorial
+ "/
+ "/ 08 while ( i > 1 ) {
+ "/ 09 result = result * i;
+ "/ 10 i = i - 1.
+ "/ 11 }
+ "/
+ "/ Note, that unlike 'traditional' assemblers, there's no
+ "/ fall-through instruction, so we have to introduce a block
+ "/ loop's body which will become a target for conditional's
+ "/ then-branch.
+
+ asm block:loop.
+ asm line: 8 column: 3 scope: functionDI.
+ asm
+ if:(asm
+ icmp:(asm load:i)
+ _:(LLVMConstant sintptr:1)
+ cond:LLVMIntSGT)
+ then:loopBody
+ else:exit.
+ asm block:loopBody.
+ asm line: 9 column: 3 scope: functionDI.
+ asm store:(asm mul:(asm load:result) _:(asm load:i)) _:result.
+ asm line: 10 column: 3 scope: functionDI.
+ asm store:(asm sub:(asm load:i) _:(LLVMConstant sintptr:1)) _:i.
+ asm line: 11 column: 3 scope: functionDI.
+ asm br:loop.
+
+ "/ Generate return from function
+ "/
+ "/ 12 return result;
+ "/ 13 }
+ "/
+
+ asm block:exit.
+ asm line: 12 column: 3 scope: functionDI.
+ asm ret:(asm load:result).
+
+ dib finish.
+ self halt.
+ "
+ To generate stand-alone executable do the following:
+
+ 1) Execute following to write LLVM IR to /tmp/factorial.ll
+
+ module writeBitcodeToFile: '/tmp/factorial.bc'
+
+ 2) Compile it into an object file
+
+ llc-3.8 --filetype=obj factorial.bc
+
+ 3) Write a simple main.c to call factorial():
+
+ '/tmp/main.c' asFilename writingFileDo:[:f | f nextPutAll: 'int main(int argc, char **argv) { factorial(5); exit(0); }' ].
+
+ 4) Compile main.c and link it with factorial.o
+
+ gcc -o main main.c factorial.o
+
+ To actually debug it, first write the pseudo-code for the factorial:
+
+ '/tmp/factorial.lang' asFilename writingFileDo:[ :f|
+ f nextPutLine: ''.
+ f nextPutLine: ''.
+ f nextPutLine: 'function factorial(v) {'.
+ f nextPutLine: ' var result;'.
+ f nextPutLine: ' var i;'.
+ f nextPutLine: ' result = 0;'.
+ f nextPutLine: ' i := v;'.
+ f nextPutLine: ' while ( i > 1 ) {'.
+ f nextPutLine: ' result = result * i;'.
+ f nextPutLine: ' i = i - 1.'.
+ f nextPutLine: ' }'.
+ f nextPutLine: ' return result;'.
+ f nextPutLine: '}'.
+ ]
+
+ Then debug it using gdb:
+
+ gdb main
+ "
+
+
+ jit := LLVMExecutionEngine newForModule:module.
+ externalFunction := jit externalOfFunction:function.
+ self assert:(externalFunction callWith:5) == 120.
+ self assert:(externalFunction callWith:1) == 1.
+
+ "
+ LLVMExamples example7_factorial_with_debug_info"
+
+ "Created: / 14-08-2015 / 06:46:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified (comment): / 17-08-2015 / 08:52:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
--- a/LLVMExecutionEngine.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMExecutionEngine.st Mon Aug 17 08:53:26 2015 +0100
@@ -73,7 +73,7 @@
eePtr := ExternalBytes new: ExternalBytes sizeofPointer.
errmsgPtr := ExternalBytes new: ExternalBytes sizeofPointer.
- (LLVM CreateExecutionEngineForModule: eePtr _: module _: errmsgPtr) ~~ 0 ifTrue:[
+ (LLVM CreateExecutionEngineForModule: eePtr _: module _: errmsgPtr) ifTrue:[
| errmsg err |
errmsg := errmsgPtr pointerAt: 1.
@@ -92,7 +92,7 @@
].
"Created: / 10-07-2015 / 15:47:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 17-07-2015 / 12:31:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 14-08-2015 / 13:08:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!LLVMExecutionEngine methodsFor:'accessing'!
--- a/LLVMFunction.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMFunction.st Mon Aug 17 08:53:26 2015 +0100
@@ -16,7 +16,7 @@
"{ NameSpace: Smalltalk }"
LLVMValue subclass:#LLVMFunction
- instanceVariableNames:'numArgs'
+ instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
category:'LLVM-S-Core'
@@ -64,22 +64,23 @@
!
numArgs
- | last current |
+ "Same as #numParams.
- numArgs isNil ifTrue:[
- numArgs := 0.
-"/ current := LLVM GetFirstParam: self.
-"/ last := LLVM GetLastParam: self.
-"/ [ current ~= last ] whileTrue:[
-"/ numArgs := numArgs + 1.
-"/ current := LLVM GetNextFunction: current.
-"/ self halt.
-"/ ].
- ].
- ^ numArgs
+ Defined here as a courtesy to Smalltalk/X programmer - Smalltalk/X
+ uses #numArgs."
+
+ ^ self numParams
"Created: / 11-07-2015 / 09:42:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 11-07-2015 / 11:23:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 14-08-2015 / 12:56:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+numParams
+ "Return a number of parameters that this function takes"
+
+ ^ LLVM CountParams: self.
+
+ "Created: / 14-08-2015 / 12:54:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
parameterAt: index
--- a/LLVMGenericValue.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMGenericValue.st Mon Aug 17 08:53:26 2015 +0100
@@ -48,3 +48,10 @@
"Modified: / 08-07-2015 / 22:39:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!LLVMGenericValue class methodsFor:'documentation'!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
+! !
+
--- a/LLVMIRBuilder.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMIRBuilder.st Mon Aug 17 08:53:26 2015 +0100
@@ -69,6 +69,39 @@
^ self positionAtEnd: anLLVMBasicBlock
"Created: / 10-08-2015 / 09:03:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+line: line column: column scope: scope
+ "Sets the current location in original source (i.e., on source being
+ translated to LLVM IR). This information is used generate debug information."
+
+ ^ self line: line column: column scope: scope inlinedAt: nil
+
+ "Created: / 15-08-2015 / 21:26:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+line: line column: column scope: scope inlinedAt: inlinedScope
+ "Sets the current location in original source (i.e., on source being
+ translated to LLVM IR). This information is used generate debug information."
+
+ self assertIsIntegerUnsigned: line.
+ self assertIsIntegerUnsigned: column.
+ self assertIsMetadata: scope.
+ inlinedScope notNil ifTrue:[
+ self assertIsMetadata: inlinedScope.
+ ].
+
+ LLVMCEXT SetCurrentDebugLocation2: self _: line _: column _: scope _: inlinedScope
+
+ "Created: / 15-08-2015 / 21:26:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+location
+ "Return current location as LLVMMetadata."
+
+ ^ LLVMCEXT GetCurrentDebugLocation2: self
+
+ "Created: / 15-08-2015 / 23:52:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!LLVMIRBuilder methodsFor:'initialization & release'!
@@ -435,3 +468,10 @@
"Created: / 07-07-2015 / 22:45:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!LLVMIRBuilder class methodsFor:'documentation'!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
+! !
+
--- a/LLVMMCJITCompilerOptions.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMMCJITCompilerOptions.st Mon Aug 17 08:53:26 2015 +0100
@@ -60,7 +60,7 @@
!LLVMMCJITCompilerOptions methodsFor:'accessing'!
CodeModel
- "Returns ;; Line: 3627
+ "Returns ;; Line: 3682
(enum LLVMCodeModel
(value (LLVMCodeModelDefault) 0)
(value (LLVMCodeModelJITDefault) 1)
@@ -78,10 +78,10 @@
!
EnableFastISel
- "Returns ;; Line: 1121
+ "Returns ;; Line: 1141
(typedef
LLVMBool
- int32)"
+ bool)"
^self at:1 + 12
!
@@ -92,10 +92,10 @@
!
MCJMM
- "Returns ;; Line: 3620
+ "Returns ;; Line: 3675
(typedef
LLVMMCJITMemoryManagerRef
- (pointer-to ;; Line: 4027
+ (pointer-to ;; Line: 4082
;; Class: LLVMOpaqueMCJITMemoryManager
))"
@@ -108,10 +108,10 @@
!
NoFramePointerElim
- "Returns ;; Line: 1121
+ "Returns ;; Line: 1141
(typedef
LLVMBool
- int32)"
+ bool)"
^self at:1 + 8
!
@@ -122,8 +122,7 @@
!
OptLevel
- "Returns unsigned
- int32"
+ "Returns unsigned int"
^self longAt:1 + 0
!
--- a/LLVMMetadata.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMMetadata.st Mon Aug 17 08:53:26 2015 +0100
@@ -15,7 +15,7 @@
"{ NameSpace: Smalltalk }"
-ExternalAddress subclass:#LLVMMetadata
+LLVMObject subclass:#LLVMMetadata
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
@@ -40,3 +40,25 @@
"
! !
+!LLVMMetadata methodsFor:'converting'!
+
+asLLVMMetadata
+ ^ self
+
+ "Created: / 15-08-2015 / 06:41:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+asLLVMValue
+ ^ LLVMCEXT MetadataAsValue: self.
+
+ "Created: / 14-08-2015 / 16:35:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMMetadata methodsFor:'testing'!
+
+isLLVMMetadata
+ ^ true
+
+ "Created: / 14-08-2015 / 08:51:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/LLVMModule.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMModule.st Mon Aug 17 08:53:26 2015 +0100
@@ -54,17 +54,39 @@
^ LLVM GetDataLayout: self.
"Created: / 11-07-2015 / 06:57:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+debugInfoBuilder
+ ^ LLVMDIBuilder newForModule: self
+
+ "Created: / 13-08-2015 / 06:35:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!LLVMModule methodsFor:'adding & removing'!
+addFlag: key value: value behavior: behavior
+ self assertIsString: key.
+ self assertIsMetadata: value.
+ self assertIsIntegerUnsigned: behavior.
+
+ LLVMCEXT ModuleAddModuleFlag: self _: behavior _: key _: value
+
+ "Created: / 15-08-2015 / 06:58:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified (format): / 15-08-2015 / 22:06:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
addFunctionNamed: name type: type
+ | function |
self assertIsString: name.
self assert: type kind == LLVMFunctionTypeKind.
- ^ LLVM AddFunction: self _: name _: type.
+
+ function := LLVM AddFunction: self _: name _: type.
+ "/ TODO: Certainly a hack. must find a better way to do this.
+ function changeClassTo: LLVMFunction.
+ ^ function
"Created: / 07-07-2015 / 21:59:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 10-08-2015 / 17:07:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 14-08-2015 / 13:05:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
addGlobalNamed: name type: type value: value
@@ -104,12 +126,28 @@
"Created: / 11-07-2015 / 09:37:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+getIntrinsicNamed: name
+ | function |
+
+ function := self getIntrinsicNamed: name types: #().
+ "/ TODO: Certainly a hack. must find a better way to do this.
+ function changeClassTo: LLVMFunction.
+ ^ function
+
+ "Created: / 14-08-2015 / 14:10:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
getIntrinsicNamed: name types: types
+ | intrinsic |
self assertIsString: name.
self assertIsTypeArray: types.
- ^ LLVMCEXT GetIntrinsicByName: self _: name _: types size _: types asLLVMObjectArray.
+ intrinsic := LLVMCEXT GetIntrinsicByName: self _: name _: types size _: types asLLVMObjectArray.
+ "/ TODO: Certainly a hack. must find a better way to do this.
+ intrinsic changeClassTo: LLVMFunction.
+ ^ intrinsic
"Created: / 10-08-2015 / 17:06:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 17-08-2015 / 07:43:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!LLVMModule methodsFor:'debugging'!
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMModuleFlagBehavior.st Mon Aug 17 08:53:26 2015 +0100
@@ -0,0 +1,120 @@
+"
+ 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:#LLVMModuleFlagBehavior
+ instanceVariableNames:''
+ classVariableNames:'LLVMModuleFlagBehaviorError LLVMModuleFlagBehaviorWarning
+ LLVMModuleFlagBehaviorRequire LLVMModuleFlagBehaviorOverride
+ LLVMModuleFlagBehaviorAppend LLVMModuleFlagBehaviorAppendUnique'
+ poolDictionaries:''
+ category:'LLVM-S-Core-Constants'
+!
+
+!LLVMModuleFlagBehavior 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.
+"
+! !
+
+!LLVMModuleFlagBehavior class methodsFor:'initialization'!
+
+initialize
+
+ LLVMModuleFlagBehaviorError := 1.
+ LLVMModuleFlagBehaviorWarning := 2.
+ LLVMModuleFlagBehaviorRequire := 3.
+ LLVMModuleFlagBehaviorOverride := 4.
+ LLVMModuleFlagBehaviorAppend := 5.
+ LLVMModuleFlagBehaviorAppendUnique := 6.
+! !
+
+!LLVMModuleFlagBehavior class methodsFor:'constants'!
+
+Append
+
+ ^Append
+!
+
+AppendUnique
+
+ ^AppendUnique
+!
+
+Error
+
+ ^Error
+!
+
+LLVMModuleFlagBehaviorAppend
+
+ ^LLVMModuleFlagBehaviorAppend
+!
+
+LLVMModuleFlagBehaviorAppendUnique
+
+ ^LLVMModuleFlagBehaviorAppendUnique
+!
+
+LLVMModuleFlagBehaviorError
+
+ ^LLVMModuleFlagBehaviorError
+!
+
+LLVMModuleFlagBehaviorOverride
+
+ ^LLVMModuleFlagBehaviorOverride
+!
+
+LLVMModuleFlagBehaviorRequire
+
+ ^LLVMModuleFlagBehaviorRequire
+!
+
+LLVMModuleFlagBehaviorWarning
+
+ ^LLVMModuleFlagBehaviorWarning
+!
+
+Override
+
+ ^Override
+!
+
+Require
+
+ ^Require
+!
+
+Warning
+
+ ^Warning
+! !
+
+
+LLVMModuleFlagBehavior initialize!
--- a/LLVMObject.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMObject.st Mon Aug 17 08:53:26 2015 +0100
@@ -52,6 +52,14 @@
!LLVMObject methodsFor:'assertions'!
+assertIsBasicBlock: value
+ <resource: #skipInDebuggersWalkback>
+
+ self assert:(value isKindOf: LLVMBasicBlock) message: 'value is not an LLVM basic block'
+
+ "Created: / 15-08-2015 / 23:45:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
assertIsBasicBlockValue:value
<resource: #skipInDebuggersWalkback>
@@ -61,6 +69,14 @@
"Created: / 08-08-2015 / 02:43:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+assertIsBoolean: value
+ <resource: #skipInDebuggersWalkback>
+
+ self assert: value isBoolean message: 'value is not a boolean'.
+
+ "Created: / 13-08-2015 / 06:52:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
assertIsFunctionValue: value
<resource: #skipInDebuggersWalkback>
@@ -69,6 +85,15 @@
"Created: / 10-08-2015 / 18:55:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+assertIsInteger64Unsigned:value
+ <resource: #skipInDebuggersWalkback>
+
+ self assert: value isInteger message: 'value is not an integer'.
+ self assert: (value between: 0 and: 16rFFFFFFFFFFFFFFFF) message: 'value out of range'
+
+ "Created: / 14-08-2015 / 07:32:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
assertIsIntegerOrIntegerVectorValue:value
<resource: #skipInDebuggersWalkback>
@@ -78,22 +103,41 @@
"Modified (format): / 08-08-2015 / 02:41:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
-assertIsIntegerUnsigned: value
+assertIsIntegerUnsigned:value
+ <resource: #skipInDebuggersWalkback>
+
+ self assert: value isInteger message: 'value is not an integer'.
+ self assert: (value between: 0 and: 16rFFFFFFFF) message: 'value out of range'
+
+ "Created: / 13-08-2015 / 06:49:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+assertIsMetadata: value
<resource: #skipInDebuggersWalkback>
- self assert: value isInteger message: 'value is not an integer'.
- self assert: (value between: 0 and: 16rFFFFFFFF) message: 'value out of range'.
+ self assert: value isLLVMMetadata message: 'value is not an LLVMMetadata'.
+
+ "Created: / 14-08-2015 / 08:50:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
- "Created: / 13-08-2015 / 18:57:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+assertIsMetadataArray: values
+ <resource: #skipInDebuggersWalkback>
+
+ self assert: values isSequenceable message: 'values is not a sequenceable collection'.
+ values do:[:value |
+ self assertIsMetadata: value.
+ ].
+
+ "Created: / 14-08-2015 / 08:50:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
assertIsString:aString
<resource: #skipInDebuggersWalkback>
- self assert:aString isSingleByteString description:'string is not a valid LLVM name (twine)'
+ self assert:(aString isSymbol or:[aString isSingleByteString]) description:'string is not a valid LLVM name (twine)'
"Created: / 07-08-2015 / 18:38:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified (format): / 08-08-2015 / 02:41:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 13-08-2015 / 07:01:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
assertIsType: type
--- a/LLVMOpcode.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMOpcode.st Mon Aug 17 08:53:26 2015 +0100
@@ -27,7 +27,9 @@
LLVMFCmp LLVMPHI LLVMCall LLVMSelect LLVMUserOp1 LLVMUserOp2
LLVMVAArg LLVMExtractElement LLVMInsertElement LLVMShuffleVector
LLVMExtractValue LLVMInsertValue LLVMFence LLVMAtomicCmpXchg
- LLVMAtomicRMW LLVMResume LLVMLandingPad'
+ LLVMAtomicRMW LLVMResume LLVMLandingPad LLVMCleanupRet
+ LLVMCatchRet LLVMCatchPad LLVMTerminatePad LLVMCleanupPad
+ LLVMCatchEndPad'
poolDictionaries:''
category:'LLVM-S-Core-Constants'
!
@@ -113,6 +115,12 @@
LLVMAtomicRMW := 57.
LLVMResume := 58.
LLVMLandingPad := 59.
+ LLVMCleanupRet := 61.
+ LLVMCatchRet := 62.
+ LLVMCatchPad := 63.
+ LLVMTerminatePad := 64.
+ LLVMCleanupPad := 65.
+ LLVMCatchEndPad := 66.
! !
!LLVMOpcode class methodsFor:'constants'!
@@ -167,6 +175,31 @@
^LLVMCall
!
+LLVMCatchEndPad
+
+ ^LLVMCatchEndPad
+!
+
+LLVMCatchPad
+
+ ^LLVMCatchPad
+!
+
+LLVMCatchRet
+
+ ^LLVMCatchRet
+!
+
+LLVMCleanupPad
+
+ ^LLVMCleanupPad
+!
+
+LLVMCleanupRet
+
+ ^LLVMCleanupRet
+!
+
LLVMExtractElement
^LLVMExtractElement
@@ -362,6 +395,11 @@
^LLVMSwitch
!
+LLVMTerminatePad
+
+ ^LLVMTerminatePad
+!
+
LLVMTrunc
^LLVMTrunc
--- a/LLVMStXMethod.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMStXMethod.st Mon Aug 17 08:53:26 2015 +0100
@@ -107,10 +107,10 @@
!LLVMStXMethod methodsFor:'accessing'!
-numArgs
- ^ super numArgs - 4
+numParams
+ ^ super numParams - 4
- "Created: / 11-07-2015 / 09:42:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Created: / 14-08-2015 / 12:54:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
parameterAt: index
--- a/LLVMType.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMType.st Mon Aug 17 08:53:26 2015 +0100
@@ -249,6 +249,28 @@
!LLVMType methodsFor:'accessing'!
+alignmentInBits
+ "Return an alignment of the type in bits"
+
+ ^ self alignmentInBytes * 8
+
+ "Created: / 14-08-2015 / 09:16:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+alignmentInBytes
+ "Return an alignment of the type in bytes"
+
+ | alignmentAsValue |
+
+ alignmentAsValue := LLVM AlignOf: self.
+ self assert: alignmentAsValue isConstantValue.
+ self assert: alignmentAsValue isIntegerValue.
+ ^ LLVMCEXT ValueAsUInt64: alignmentAsValue.
+
+ "Created: / 14-08-2015 / 09:16:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 14-08-2015 / 11:38:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
kind
^ LLVM GetTypeKind: self
@@ -265,6 +287,18 @@
LLVMTypeError new signal: 'type size not known'
"Created: / 13-08-2015 / 16:25:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+sizeInBytes
+ "For integer, pointer, FP types, return the size in bytes (rounded up). For all
+ other types, throw an LLVMTypeError.
+
+ LLVMType int32 sizeInBytes -> 4
+ LLVMType int1 sizeInBytes -> 1
+ "
+ ^ (self sizeInBits // 8) + (self sizeInBits \\ 8)
+
+ "Created: / 14-08-2015 / 07:27:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!LLVMType methodsFor:'comparing'!
--- a/LLVMTypeDouble.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMTypeDouble.st Mon Aug 17 08:53:26 2015 +0100
@@ -15,7 +15,7 @@
"{ NameSpace: Smalltalk }"
-LLVMType subclass:#LLVMTypeDouble
+LLVMTypeScalar subclass:#LLVMTypeDouble
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
--- a/LLVMTypeFP128.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMTypeFP128.st Mon Aug 17 08:53:26 2015 +0100
@@ -15,7 +15,7 @@
"{ NameSpace: Smalltalk }"
-LLVMType subclass:#LLVMTypeFP128
+LLVMTypeScalar subclass:#LLVMTypeFP128
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
--- a/LLVMTypeFloat.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMTypeFloat.st Mon Aug 17 08:53:26 2015 +0100
@@ -15,7 +15,7 @@
"{ NameSpace: Smalltalk }"
-LLVMType subclass:#LLVMTypeFloat
+LLVMTypeScalar subclass:#LLVMTypeFloat
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
--- a/LLVMTypeHalt.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMTypeHalt.st Mon Aug 17 08:53:26 2015 +0100
@@ -15,7 +15,7 @@
"{ NameSpace: Smalltalk }"
-LLVMType subclass:#LLVMTypeHalt
+LLVMTypeScalar subclass:#LLVMTypeHalt
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
--- a/LLVMTypeInteger.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMTypeInteger.st Mon Aug 17 08:53:26 2015 +0100
@@ -15,7 +15,7 @@
"{ NameSpace: Smalltalk }"
-LLVMType subclass:#LLVMTypeInteger
+LLVMTypeScalar subclass:#LLVMTypeInteger
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
--- a/LLVMTypePPC_FP128.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMTypePPC_FP128.st Mon Aug 17 08:53:26 2015 +0100
@@ -15,7 +15,7 @@
"{ NameSpace: Smalltalk }"
-LLVMType subclass:#LLVMTypePPC_FP128
+LLVMTypeScalar subclass:#LLVMTypePPC_FP128
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
@@ -62,3 +62,10 @@
"Created: / 13-08-2015 / 16:52:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!LLVMTypePPC_FP128 class methodsFor:'documentation'!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMTypeScalar.st Mon Aug 17 08:53:26 2015 +0100
@@ -0,0 +1,52 @@
+"
+ 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 }"
+
+LLVMType subclass:#LLVMTypeScalar
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Types'
+!
+
+!LLVMTypeScalar 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.
+"
+! !
+
+!LLVMTypeScalar class methodsFor:'queries'!
+
+isAbstract
+ "Return if this class is an abstract class.
+ True is returned here for myself only; false for subclasses.
+ Abstract subclasses must redefine again."
+
+ ^ self == LLVMTypeScalar.
+! !
+
--- a/LLVMTypeX86_FP80.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMTypeX86_FP80.st Mon Aug 17 08:53:26 2015 +0100
@@ -15,7 +15,7 @@
"{ NameSpace: Smalltalk }"
-LLVMType subclass:#LLVMTypeX86_FP80
+LLVMTypeScalar subclass:#LLVMTypeX86_FP80
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
@@ -62,3 +62,10 @@
"Created: / 13-08-2015 / 16:52:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!LLVMTypeX86_FP80 class methodsFor:'documentation'!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
+! !
+
--- a/LLVMTypeX86_MMX.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMTypeX86_MMX.st Mon Aug 17 08:53:26 2015 +0100
@@ -15,7 +15,7 @@
"{ NameSpace: Smalltalk }"
-LLVMType subclass:#LLVMTypeX86_MMX
+LLVMTypeScalar subclass:#LLVMTypeX86_MMX
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
--- a/LLVMValue.st Mon Aug 17 09:16:53 2015 +0100
+++ b/LLVMValue.st Mon Aug 17 08:53:26 2015 +0100
@@ -77,6 +77,12 @@
"Created: / 08-08-2015 / 02:16:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+asLLVMMetadata
+ ^ LLVMCEXT ValueAsMetadata: self
+
+ "Created: / 15-08-2015 / 06:41:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
asLLVMValue
^ self
--- a/Make.proto Mon Aug 17 09:16:53 2015 +0100
+++ b/Make.proto Mon Aug 17 08:53:26 2015 +0100
@@ -139,14 +139,15 @@
$(OUTDIR)LLVMCallConv.$(O) LLVMCallConv.$(H): LLVMCallConv.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMConfig.$(O) LLVMConfig.$(H): LLVMConfig.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMConstant.$(O) LLVMConstant.$(H): LLVMConstant.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)LLVMDIBuilder.$(O) LLVMDIBuilder.$(H): LLVMDIBuilder.st $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMDLLStorageClass.$(O) LLVMDLLStorageClass.$(H): LLVMDLLStorageClass.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
+$(OUTDIR)LLVMDWARFEncoding.$(O) LLVMDWARFEncoding.$(H): LLVMDWARFEncoding.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
+$(OUTDIR)LLVMDWARFLamguage.$(O) LLVMDWARFLamguage.$(H): LLVMDWARFLamguage.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMDiagnosticSeverity.$(O) LLVMDiagnosticSeverity.$(H): LLVMDiagnosticSeverity.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMError.$(O) LLVMError.$(H): LLVMError.st $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMIntPredicate.$(O) LLVMIntPredicate.$(H): LLVMIntPredicate.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMLandingPadClauseTy.$(O) LLVMLandingPadClauseTy.$(H): LLVMLandingPadClauseTy.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMLinkage.$(O) LLVMLinkage.$(H): LLVMLinkage.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
-$(OUTDIR)LLVMMetadata.$(O) LLVMMetadata.$(H): LLVMMetadata.st $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMModuleFlagBehavior.$(O) LLVMModuleFlagBehavior.$(H): LLVMModuleFlagBehavior.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMObjectArray.$(O) LLVMObjectArray.$(H): LLVMObjectArray.st $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalBytes.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/UninterpretedBytes.$(H) $(STCHDR)
$(OUTDIR)LLVMOpcode.$(O) LLVMOpcode.$(H): LLVMOpcode.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMRealPredicate.$(O) LLVMRealPredicate.$(H): LLVMRealPredicate.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
@@ -162,12 +163,14 @@
$(OUTDIR)LLVMDiagnosticInfo.$(O) LLVMDiagnosticInfo.$(H): LLVMDiagnosticInfo.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMDisposableObject.$(O) LLVMDisposableObject.$(H): LLVMDisposableObject.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMMCJITCompilerOptions.$(O) LLVMMCJITCompilerOptions.$(H): LLVMMCJITCompilerOptions.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMMetadata.$(O) LLVMMetadata.$(H): LLVMMetadata.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMPassRegistry.$(O) LLVMPassRegistry.$(H): LLVMPassRegistry.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTargetLibraryInfo.$(O) LLVMTargetLibraryInfo.$(H): LLVMTargetLibraryInfo.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMType.$(O) LLVMType.$(H): LLVMType.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMTypeKind.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTypeMismatchError.$(O) LLVMTypeMismatchError.$(H): LLVMTypeMismatchError.st $(INCLUDE_TOP)/jv/llvm_s/LLVMError.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMTypeError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMUse.$(O) LLVMUse.$(H): LLVMUse.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMValue.$(O) LLVMValue.$(H): LLVMValue.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMDIBuilder.$(O) LLVMDIBuilder.$(H): LLVMDIBuilder.st $(INCLUDE_TOP)/jv/llvm_s/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMModuleFlagBehavior.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMExecutionEngine.$(O) LLVMExecutionEngine.$(H): LLVMExecutionEngine.st $(INCLUDE_TOP)/jv/llvm_s/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMFunction.$(O) LLVMFunction.$(H): LLVMFunction.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMValue.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMGenericValue.$(O) LLVMGenericValue.$(H): LLVMGenericValue.st $(INCLUDE_TOP)/jv/llvm_s/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -177,24 +180,25 @@
$(OUTDIR)LLVMModuleProvider.$(O) LLVMModuleProvider.$(H): LLVMModuleProvider.st $(INCLUDE_TOP)/jv/llvm_s/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMPassManager.$(O) LLVMPassManager.$(H): LLVMPassManager.st $(INCLUDE_TOP)/jv/llvm_s/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTargetData.$(O) LLVMTargetData.$(H): LLVMTargetData.st $(INCLUDE_TOP)/jv/llvm_s/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)LLVMTypeDouble.$(O) LLVMTypeDouble.$(H): LLVMTypeDouble.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)LLVMTypeFP128.$(O) LLVMTypeFP128.$(H): LLVMTypeFP128.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)LLVMTypeFloat.$(O) LLVMTypeFloat.$(H): LLVMTypeFloat.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTypeFunction.$(O) LLVMTypeFunction.$(H): LLVMTypeFunction.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)LLVMTypeHalt.$(O) LLVMTypeHalt.$(H): LLVMTypeHalt.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)LLVMTypeInteger.$(O) LLVMTypeInteger.$(H): LLVMTypeInteger.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTypeLabel.$(O) LLVMTypeLabel.$(H): LLVMTypeLabel.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTypeMetadata.$(O) LLVMTypeMetadata.$(H): LLVMTypeMetadata.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)LLVMTypePPC_FP128.$(O) LLVMTypePPC_FP128.$(H): LLVMTypePPC_FP128.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMTypeScalar.$(O) LLVMTypeScalar.$(H): LLVMTypeScalar.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTypeSequential.$(O) LLVMTypeSequential.$(H): LLVMTypeSequential.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTypeStruct.$(O) LLVMTypeStruct.$(H): LLVMTypeStruct.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTypeVoid.$(O) LLVMTypeVoid.$(H): LLVMTypeVoid.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)LLVMTypeX86_FP80.$(O) LLVMTypeX86_FP80.$(H): LLVMTypeX86_FP80.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)LLVMTypeX86_MMX.$(O) LLVMTypeX86_MMX.$(H): LLVMTypeX86_MMX.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMStXMethod.$(O) LLVMStXMethod.$(H): LLVMStXMethod.st $(INCLUDE_TOP)/jv/llvm_s/LLVMFunction.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMValue.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTypeArray.$(O) LLVMTypeArray.$(H): LLVMTypeArray.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMTypeSequential.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMTypeDouble.$(O) LLVMTypeDouble.$(H): LLVMTypeDouble.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMTypeScalar.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMTypeFP128.$(O) LLVMTypeFP128.$(H): LLVMTypeFP128.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMTypeScalar.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMTypeFloat.$(O) LLVMTypeFloat.$(H): LLVMTypeFloat.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMTypeScalar.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMTypeHalt.$(O) LLVMTypeHalt.$(H): LLVMTypeHalt.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMTypeScalar.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMTypeInteger.$(O) LLVMTypeInteger.$(H): LLVMTypeInteger.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMTypeScalar.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMTypePPC_FP128.$(O) LLVMTypePPC_FP128.$(H): LLVMTypePPC_FP128.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMTypeScalar.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTypePointer.$(O) LLVMTypePointer.$(H): LLVMTypePointer.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMTypeSequential.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTypeVector.$(O) LLVMTypeVector.$(H): LLVMTypeVector.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMTypeSequential.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMTypeX86_FP80.$(O) LLVMTypeX86_FP80.$(H): LLVMTypeX86_FP80.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMTypeScalar.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMTypeX86_MMX.$(O) LLVMTypeX86_MMX.$(H): LLVMTypeX86_MMX.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMType.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMTypeScalar.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/goodies/sunit/stx_goodies_sunit.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/stx_libbasic.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
--- a/Make.spec Mon Aug 17 09:16:53 2015 +0100
+++ b/Make.spec Mon Aug 17 08:53:26 2015 +0100
@@ -60,14 +60,15 @@
LLVMCallConv \
LLVMConfig \
LLVMConstant \
- LLVMDIBuilder \
LLVMDLLStorageClass \
+ LLVMDWARFEncoding \
+ LLVMDWARFLamguage \
LLVMDiagnosticSeverity \
LLVMError \
LLVMIntPredicate \
LLVMLandingPadClauseTy \
LLVMLinkage \
- LLVMMetadata \
+ LLVMModuleFlagBehavior \
LLVMObjectArray \
LLVMOpcode \
LLVMRealPredicate \
@@ -83,12 +84,14 @@
LLVMDiagnosticInfo \
LLVMDisposableObject \
LLVMMCJITCompilerOptions \
+ LLVMMetadata \
LLVMPassRegistry \
LLVMTargetLibraryInfo \
LLVMType \
LLVMTypeMismatchError \
LLVMUse \
LLVMValue \
+ LLVMDIBuilder \
LLVMExecutionEngine \
LLVMFunction \
LLVMGenericValue \
@@ -98,24 +101,25 @@
LLVMModuleProvider \
LLVMPassManager \
LLVMTargetData \
+ LLVMTypeFunction \
+ LLVMTypeLabel \
+ LLVMTypeMetadata \
+ LLVMTypeScalar \
+ LLVMTypeSequential \
+ LLVMTypeStruct \
+ LLVMTypeVoid \
+ LLVMStXMethod \
+ LLVMTypeArray \
LLVMTypeDouble \
LLVMTypeFP128 \
LLVMTypeFloat \
- LLVMTypeFunction \
LLVMTypeHalt \
LLVMTypeInteger \
- LLVMTypeLabel \
- LLVMTypeMetadata \
LLVMTypePPC_FP128 \
- LLVMTypeSequential \
- LLVMTypeStruct \
- LLVMTypeVoid \
+ LLVMTypePointer \
+ LLVMTypeVector \
LLVMTypeX86_FP80 \
LLVMTypeX86_MMX \
- LLVMStXMethod \
- LLVMTypeArray \
- LLVMTypePointer \
- LLVMTypeVector \
@@ -130,14 +134,15 @@
$(OUTDIR_SLASH)LLVMCallConv.$(O) \
$(OUTDIR_SLASH)LLVMConfig.$(O) \
$(OUTDIR_SLASH)LLVMConstant.$(O) \
- $(OUTDIR_SLASH)LLVMDIBuilder.$(O) \
$(OUTDIR_SLASH)LLVMDLLStorageClass.$(O) \
+ $(OUTDIR_SLASH)LLVMDWARFEncoding.$(O) \
+ $(OUTDIR_SLASH)LLVMDWARFLamguage.$(O) \
$(OUTDIR_SLASH)LLVMDiagnosticSeverity.$(O) \
$(OUTDIR_SLASH)LLVMError.$(O) \
$(OUTDIR_SLASH)LLVMIntPredicate.$(O) \
$(OUTDIR_SLASH)LLVMLandingPadClauseTy.$(O) \
$(OUTDIR_SLASH)LLVMLinkage.$(O) \
- $(OUTDIR_SLASH)LLVMMetadata.$(O) \
+ $(OUTDIR_SLASH)LLVMModuleFlagBehavior.$(O) \
$(OUTDIR_SLASH)LLVMObjectArray.$(O) \
$(OUTDIR_SLASH)LLVMOpcode.$(O) \
$(OUTDIR_SLASH)LLVMRealPredicate.$(O) \
@@ -153,12 +158,14 @@
$(OUTDIR_SLASH)LLVMDiagnosticInfo.$(O) \
$(OUTDIR_SLASH)LLVMDisposableObject.$(O) \
$(OUTDIR_SLASH)LLVMMCJITCompilerOptions.$(O) \
+ $(OUTDIR_SLASH)LLVMMetadata.$(O) \
$(OUTDIR_SLASH)LLVMPassRegistry.$(O) \
$(OUTDIR_SLASH)LLVMTargetLibraryInfo.$(O) \
$(OUTDIR_SLASH)LLVMType.$(O) \
$(OUTDIR_SLASH)LLVMTypeMismatchError.$(O) \
$(OUTDIR_SLASH)LLVMUse.$(O) \
$(OUTDIR_SLASH)LLVMValue.$(O) \
+ $(OUTDIR_SLASH)LLVMDIBuilder.$(O) \
$(OUTDIR_SLASH)LLVMExecutionEngine.$(O) \
$(OUTDIR_SLASH)LLVMFunction.$(O) \
$(OUTDIR_SLASH)LLVMGenericValue.$(O) \
@@ -168,24 +175,25 @@
$(OUTDIR_SLASH)LLVMModuleProvider.$(O) \
$(OUTDIR_SLASH)LLVMPassManager.$(O) \
$(OUTDIR_SLASH)LLVMTargetData.$(O) \
+ $(OUTDIR_SLASH)LLVMTypeFunction.$(O) \
+ $(OUTDIR_SLASH)LLVMTypeLabel.$(O) \
+ $(OUTDIR_SLASH)LLVMTypeMetadata.$(O) \
+ $(OUTDIR_SLASH)LLVMTypeScalar.$(O) \
+ $(OUTDIR_SLASH)LLVMTypeSequential.$(O) \
+ $(OUTDIR_SLASH)LLVMTypeStruct.$(O) \
+ $(OUTDIR_SLASH)LLVMTypeVoid.$(O) \
+ $(OUTDIR_SLASH)LLVMStXMethod.$(O) \
+ $(OUTDIR_SLASH)LLVMTypeArray.$(O) \
$(OUTDIR_SLASH)LLVMTypeDouble.$(O) \
$(OUTDIR_SLASH)LLVMTypeFP128.$(O) \
$(OUTDIR_SLASH)LLVMTypeFloat.$(O) \
- $(OUTDIR_SLASH)LLVMTypeFunction.$(O) \
$(OUTDIR_SLASH)LLVMTypeHalt.$(O) \
$(OUTDIR_SLASH)LLVMTypeInteger.$(O) \
- $(OUTDIR_SLASH)LLVMTypeLabel.$(O) \
- $(OUTDIR_SLASH)LLVMTypeMetadata.$(O) \
$(OUTDIR_SLASH)LLVMTypePPC_FP128.$(O) \
- $(OUTDIR_SLASH)LLVMTypeSequential.$(O) \
- $(OUTDIR_SLASH)LLVMTypeStruct.$(O) \
- $(OUTDIR_SLASH)LLVMTypeVoid.$(O) \
+ $(OUTDIR_SLASH)LLVMTypePointer.$(O) \
+ $(OUTDIR_SLASH)LLVMTypeVector.$(O) \
$(OUTDIR_SLASH)LLVMTypeX86_FP80.$(O) \
$(OUTDIR_SLASH)LLVMTypeX86_MMX.$(O) \
- $(OUTDIR_SLASH)LLVMStXMethod.$(O) \
- $(OUTDIR_SLASH)LLVMTypeArray.$(O) \
- $(OUTDIR_SLASH)LLVMTypePointer.$(O) \
- $(OUTDIR_SLASH)LLVMTypeVector.$(O) \
$(OUTDIR_SLASH)extensions.$(O) \
--- a/abbrev.stc Mon Aug 17 09:16:53 2015 +0100
+++ b/abbrev.stc Mon Aug 17 08:53:26 2015 +0100
@@ -10,14 +10,15 @@
LLVMCallConv LLVMCallConv jv:llvm_s 'LLVM-S-Core-Constants' 0
LLVMConfig LLVMConfig jv:llvm_s 'LLVM-S-Internal' 0
LLVMConstant LLVMConstant jv:llvm_s 'LLVM-S-Core' 0
-LLVMDIBuilder LLVMDIBuilder jv:llvm_s 'LLVM-S-Core' 0
LLVMDLLStorageClass LLVMDLLStorageClass jv:llvm_s 'LLVM-S-Core-Constants' 0
+LLVMDWARFEncoding LLVMDWARFEncoding jv:llvm_s 'LLVM-S-Core-Constants' 0
+LLVMDWARFLamguage LLVMDWARFLamguage jv:llvm_s 'LLVM-S-Core-Constants' 0
LLVMDiagnosticSeverity LLVMDiagnosticSeverity jv:llvm_s 'LLVM-S-Core-Constants' 0
LLVMError LLVMError jv:llvm_s 'LLVM-S-Core-Exceptions' 1
LLVMIntPredicate LLVMIntPredicate jv:llvm_s 'LLVM-S-Core-Constants' 0
LLVMLandingPadClauseTy LLVMLandingPadClauseTy jv:llvm_s 'LLVM-S-Core-Constants' 0
LLVMLinkage LLVMLinkage jv:llvm_s 'LLVM-S-Core-Constants' 0
-LLVMMetadata LLVMMetadata jv:llvm_s 'LLVM-S-Core' 0
+LLVMModuleFlagBehavior LLVMModuleFlagBehavior jv:llvm_s 'LLVM-S-Core-Constants' 0
LLVMObjectArray LLVMObjectArray jv:llvm_s 'LLVM-S-Core' 0
LLVMOpcode LLVMOpcode jv:llvm_s 'LLVM-S-Core-Constants' 0
LLVMRealPredicate LLVMRealPredicate jv:llvm_s 'LLVM-S-Core-Constants' 0
@@ -34,12 +35,14 @@
LLVMDiagnosticInfo LLVMDiagnosticInfo jv:llvm_s 'LLVM-S-Core' 0
LLVMDisposableObject LLVMDisposableObject jv:llvm_s 'LLVM-S-Internal' 0
LLVMMCJITCompilerOptions LLVMMCJITCompilerOptions jv:llvm_s 'LLVM-S-Core' 0
+LLVMMetadata LLVMMetadata jv:llvm_s 'LLVM-S-Core' 0
LLVMPassRegistry LLVMPassRegistry jv:llvm_s 'LLVM-S-Core' 0
LLVMTargetLibraryInfo LLVMTargetLibraryInfo jv:llvm_s 'LLVM-S-Core' 0
LLVMType LLVMType jv:llvm_s 'LLVM-S-Core-Types' 0
LLVMTypeMismatchError LLVMTypeMismatchError jv:llvm_s 'LLVM-S-Core-Exceptions' 1
LLVMUse LLVMUse jv:llvm_s 'LLVM-S-Core' 0
LLVMValue LLVMValue jv:llvm_s 'LLVM-S-Core' 0
+LLVMDIBuilder LLVMDIBuilder jv:llvm_s 'LLVM-S-Core' 0
LLVMExecutionEngine LLVMExecutionEngine jv:llvm_s 'LLVM-S-Core' 0
LLVMFunction LLVMFunction jv:llvm_s 'LLVM-S-Core' 0
LLVMGenericValue LLVMGenericValue jv:llvm_s 'LLVM-S-Core' 0
@@ -49,21 +52,22 @@
LLVMModuleProvider LLVMModuleProvider jv:llvm_s 'LLVM-S-Core' 0
LLVMPassManager LLVMPassManager jv:llvm_s 'LLVM-S-Core' 0
LLVMTargetData LLVMTargetData jv:llvm_s 'LLVM-S-Core' 0
+LLVMTypeFunction LLVMTypeFunction jv:llvm_s 'LLVM-S-Core-Types' 0
+LLVMTypeLabel LLVMTypeLabel jv:llvm_s 'LLVM-S-Core-Types' 0
+LLVMTypeMetadata LLVMTypeMetadata jv:llvm_s 'LLVM-S-Core-Types' 0
+LLVMTypeScalar LLVMTypeScalar jv:llvm_s 'LLVM-S-Core-Types' 0
+LLVMTypeSequential LLVMTypeSequential jv:llvm_s 'LLVM-S-Core-Types' 0
+LLVMTypeStruct LLVMTypeStruct jv:llvm_s 'LLVM-S-Core-Types' 0
+LLVMTypeVoid LLVMTypeVoid jv:llvm_s 'LLVM-S-Core-Types' 0
+LLVMStXMethod LLVMStXMethod jv:llvm_s 'LLVM-S-StX' 0
+LLVMTypeArray LLVMTypeArray jv:llvm_s 'LLVM-S-Core-Types' 0
LLVMTypeDouble LLVMTypeDouble jv:llvm_s 'LLVM-S-Core-Types' 0
LLVMTypeFP128 LLVMTypeFP128 jv:llvm_s 'LLVM-S-Core-Types' 0
LLVMTypeFloat LLVMTypeFloat jv:llvm_s 'LLVM-S-Core-Types' 0
-LLVMTypeFunction LLVMTypeFunction jv:llvm_s 'LLVM-S-Core-Types' 0
LLVMTypeHalt LLVMTypeHalt jv:llvm_s 'LLVM-S-Core-Types' 0
LLVMTypeInteger LLVMTypeInteger jv:llvm_s 'LLVM-S-Core-Types' 0
-LLVMTypeLabel LLVMTypeLabel jv:llvm_s 'LLVM-S-Core-Types' 0
-LLVMTypeMetadata LLVMTypeMetadata jv:llvm_s 'LLVM-S-Core-Types' 0
LLVMTypePPC_FP128 LLVMTypePPC_FP128 jv:llvm_s 'LLVM-S-Core-Types' 0
-LLVMTypeSequential LLVMTypeSequential jv:llvm_s 'LLVM-S-Core-Types' 0
-LLVMTypeStruct LLVMTypeStruct jv:llvm_s 'LLVM-S-Core-Types' 0
-LLVMTypeVoid LLVMTypeVoid jv:llvm_s 'LLVM-S-Core-Types' 0
+LLVMTypePointer LLVMTypePointer jv:llvm_s 'LLVM-S-Core-Types' 0
+LLVMTypeVector LLVMTypeVector jv:llvm_s 'LLVM-S-Core-Types' 0
LLVMTypeX86_FP80 LLVMTypeX86_FP80 jv:llvm_s 'LLVM-S-Core-Types' 0
LLVMTypeX86_MMX LLVMTypeX86_MMX jv:llvm_s 'LLVM-S-Core-Types' 0
-LLVMStXMethod LLVMStXMethod jv:llvm_s 'LLVM-S-StX' 0
-LLVMTypeArray LLVMTypeArray jv:llvm_s 'LLVM-S-Core-Types' 0
-LLVMTypePointer LLVMTypePointer jv:llvm_s 'LLVM-S-Core-Types' 0
-LLVMTypeVector LLVMTypeVector jv:llvm_s 'LLVM-S-Core-Types' 0
--- a/bc.mak Mon Aug 17 09:16:53 2015 +0100
+++ b/bc.mak Mon Aug 17 08:53:26 2015 +0100
@@ -81,14 +81,15 @@
$(OUTDIR)LLVMCallConv.$(O) LLVMCallConv.$(H): LLVMCallConv.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMConfig.$(O) LLVMConfig.$(H): LLVMConfig.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMConstant.$(O) LLVMConstant.$(H): LLVMConstant.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)LLVMDIBuilder.$(O) LLVMDIBuilder.$(H): LLVMDIBuilder.st $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMDLLStorageClass.$(O) LLVMDLLStorageClass.$(H): LLVMDLLStorageClass.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
+$(OUTDIR)LLVMDWARFEncoding.$(O) LLVMDWARFEncoding.$(H): LLVMDWARFEncoding.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
+$(OUTDIR)LLVMDWARFLamguage.$(O) LLVMDWARFLamguage.$(H): LLVMDWARFLamguage.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMDiagnosticSeverity.$(O) LLVMDiagnosticSeverity.$(H): LLVMDiagnosticSeverity.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMError.$(O) LLVMError.$(H): LLVMError.st $(INCLUDE_TOP)\stx\libbasic\Error.$(H) $(INCLUDE_TOP)\stx\libbasic\Exception.$(H) $(INCLUDE_TOP)\stx\libbasic\GenericException.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMIntPredicate.$(O) LLVMIntPredicate.$(H): LLVMIntPredicate.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMLandingPadClauseTy.$(O) LLVMLandingPadClauseTy.$(H): LLVMLandingPadClauseTy.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMLinkage.$(O) LLVMLinkage.$(H): LLVMLinkage.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
-$(OUTDIR)LLVMMetadata.$(O) LLVMMetadata.$(H): LLVMMetadata.st $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMModuleFlagBehavior.$(O) LLVMModuleFlagBehavior.$(H): LLVMModuleFlagBehavior.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMObjectArray.$(O) LLVMObjectArray.$(H): LLVMObjectArray.st $(INCLUDE_TOP)\stx\libbasic\ArrayedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalBytes.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\UninterpretedBytes.$(H) $(STCHDR)
$(OUTDIR)LLVMOpcode.$(O) LLVMOpcode.$(H): LLVMOpcode.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
$(OUTDIR)LLVMRealPredicate.$(O) LLVMRealPredicate.$(H): LLVMRealPredicate.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
@@ -104,12 +105,14 @@
$(OUTDIR)LLVMDiagnosticInfo.$(O) LLVMDiagnosticInfo.$(H): LLVMDiagnosticInfo.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMDisposableObject.$(O) LLVMDisposableObject.$(H): LLVMDisposableObject.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMMCJITCompilerOptions.$(O) LLVMMCJITCompilerOptions.$(H): LLVMMCJITCompilerOptions.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMMetadata.$(O) LLVMMetadata.$(H): LLVMMetadata.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMPassRegistry.$(O) LLVMPassRegistry.$(H): LLVMPassRegistry.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTargetLibraryInfo.$(O) LLVMTargetLibraryInfo.$(H): LLVMTargetLibraryInfo.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMType.$(O) LLVMType.$(H): LLVMType.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMTypeKind.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTypeMismatchError.$(O) LLVMTypeMismatchError.$(H): LLVMTypeMismatchError.st $(INCLUDE_TOP)\jv\llvm_s\LLVMError.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMTypeError.$(H) $(INCLUDE_TOP)\stx\libbasic\Error.$(H) $(INCLUDE_TOP)\stx\libbasic\Exception.$(H) $(INCLUDE_TOP)\stx\libbasic\GenericException.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMUse.$(O) LLVMUse.$(H): LLVMUse.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMValue.$(O) LLVMValue.$(H): LLVMValue.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMDIBuilder.$(O) LLVMDIBuilder.$(H): LLVMDIBuilder.st $(INCLUDE_TOP)\jv\llvm_s\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMModuleFlagBehavior.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMExecutionEngine.$(O) LLVMExecutionEngine.$(H): LLVMExecutionEngine.st $(INCLUDE_TOP)\jv\llvm_s\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMFunction.$(O) LLVMFunction.$(H): LLVMFunction.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMValue.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMGenericValue.$(O) LLVMGenericValue.$(H): LLVMGenericValue.st $(INCLUDE_TOP)\jv\llvm_s\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
@@ -119,24 +122,25 @@
$(OUTDIR)LLVMModuleProvider.$(O) LLVMModuleProvider.$(H): LLVMModuleProvider.st $(INCLUDE_TOP)\jv\llvm_s\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMPassManager.$(O) LLVMPassManager.$(H): LLVMPassManager.st $(INCLUDE_TOP)\jv\llvm_s\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTargetData.$(O) LLVMTargetData.$(H): LLVMTargetData.st $(INCLUDE_TOP)\jv\llvm_s\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)LLVMTypeDouble.$(O) LLVMTypeDouble.$(H): LLVMTypeDouble.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)LLVMTypeFP128.$(O) LLVMTypeFP128.$(H): LLVMTypeFP128.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)LLVMTypeFloat.$(O) LLVMTypeFloat.$(H): LLVMTypeFloat.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTypeFunction.$(O) LLVMTypeFunction.$(H): LLVMTypeFunction.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)LLVMTypeHalt.$(O) LLVMTypeHalt.$(H): LLVMTypeHalt.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)LLVMTypeInteger.$(O) LLVMTypeInteger.$(H): LLVMTypeInteger.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTypeLabel.$(O) LLVMTypeLabel.$(H): LLVMTypeLabel.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTypeMetadata.$(O) LLVMTypeMetadata.$(H): LLVMTypeMetadata.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)LLVMTypePPC_FP128.$(O) LLVMTypePPC_FP128.$(H): LLVMTypePPC_FP128.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMTypeScalar.$(O) LLVMTypeScalar.$(H): LLVMTypeScalar.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTypeSequential.$(O) LLVMTypeSequential.$(H): LLVMTypeSequential.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTypeStruct.$(O) LLVMTypeStruct.$(H): LLVMTypeStruct.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTypeVoid.$(O) LLVMTypeVoid.$(H): LLVMTypeVoid.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)LLVMTypeX86_FP80.$(O) LLVMTypeX86_FP80.$(H): LLVMTypeX86_FP80.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)LLVMTypeX86_MMX.$(O) LLVMTypeX86_MMX.$(H): LLVMTypeX86_MMX.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMStXMethod.$(O) LLVMStXMethod.$(H): LLVMStXMethod.st $(INCLUDE_TOP)\jv\llvm_s\LLVMFunction.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMValue.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTypeArray.$(O) LLVMTypeArray.$(H): LLVMTypeArray.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMTypeSequential.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMTypeDouble.$(O) LLVMTypeDouble.$(H): LLVMTypeDouble.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMTypeScalar.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMTypeFP128.$(O) LLVMTypeFP128.$(H): LLVMTypeFP128.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMTypeScalar.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMTypeFloat.$(O) LLVMTypeFloat.$(H): LLVMTypeFloat.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMTypeScalar.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMTypeHalt.$(O) LLVMTypeHalt.$(H): LLVMTypeHalt.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMTypeScalar.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMTypeInteger.$(O) LLVMTypeInteger.$(H): LLVMTypeInteger.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMTypeScalar.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMTypePPC_FP128.$(O) LLVMTypePPC_FP128.$(H): LLVMTypePPC_FP128.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMTypeScalar.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTypePointer.$(O) LLVMTypePointer.$(H): LLVMTypePointer.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMTypeSequential.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMTypeVector.$(O) LLVMTypeVector.$(H): LLVMTypeVector.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMTypeSequential.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMTypeX86_FP80.$(O) LLVMTypeX86_FP80.$(H): LLVMTypeX86_FP80.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMTypeScalar.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMTypeX86_MMX.$(O) LLVMTypeX86_MMX.$(H): LLVMTypeX86_MMX.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMType.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMTypeScalar.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\goodies\sunit\stx_goodies_sunit.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\stx_libbasic.$(H) $(STCHDR)
# ENDMAKEDEPEND --- do not remove this line
--- a/extensions.st Mon Aug 17 09:16:53 2015 +0100
+++ b/extensions.st Mon Aug 17 08:53:26 2015 +0100
@@ -2,6 +2,18 @@
!Object methodsFor:'converting'!
+asLLVMMetadata
+ "Return representation of the receiver as LLVMMetadata."
+
+ "Raise an error - arbitrary object cannot be represented
+ as LLVM metadata"
+ self error: 'cannot be converted to an LLVM metadata'
+
+ "Created: / 15-08-2015 / 06:43:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!Object methodsFor:'converting'!
+
asLLVMValue
"Return representation of the receiver as LLVMValue."
--- a/jv_llvm_s.st Mon Aug 17 09:16:53 2015 +0100
+++ b/jv_llvm_s.st Mon Aug 17 08:53:26 2015 +0100
@@ -135,33 +135,79 @@
Each entry in the list may be: a single class-name (symbol),
or an array-literal consisting of class name and attributes.
Attributes are: #autoload or #<os> where os is one of win32, unix,..."
-
- ^ "<className> or (<className> attributes...) in load order"
- #(
- #LLVM #LLVMAtomicOrdering #LLVMAtomicRMWBinOp #LLVMAttribute #LLVMByteOrdering #LLVMCEXT #LLVMCallConv #LLVMConfig #LLVMConstant #LLVMDLLStorageClass #LLVMDiagnosticSeverity #LLVMIntPredicate #LLVMLandingPadClauseTy #LLVMLinkage #LLVMObjectArray #LLVMOpcode #LLVMRealPredicate #LLVMThreadLocalMode #LLVMTypeKind #LLVMVerifierFailureAction #LLVMVisibility
+
+ ^ #(
+ "<className> or (<className> attributes...) in load order"
+ LLVM
+ LLVMAtomicOrdering
+ LLVMAtomicRMWBinOp
+ LLVMAttribute
+ LLVMByteOrdering
+ LLVMCEXT
+ LLVMCallConv
+ LLVMConfig
+ LLVMConstant
+ LLVMDLLStorageClass
+ LLVMDWARFEncoding
+ LLVMDWARFLamguage
+ LLVMDiagnosticSeverity
LLVMError
- #'jv_llvm_s'
- #(LLVMExamples autoload)
- #LLVMObject #LLVMBasicBlock #LLVMContext #LLVMDiagnosticInfo #LLVMDisposableObject #LLVMMCJITCompilerOptions #LLVMPassRegistry #LLVMTargetLibraryInfo #LLVMType #LLVMUse #LLVMValue #LLVMIRBuilder #LLVMExecutionEngine #LLVMFunction #LLVMGenericValue #LLVMMCJITMemoryManager #LLVMModule #LLVMModuleProvider #LLVMPassManager #LLVMTargetData #LLVMStXMethod
+ LLVMIntPredicate
+ LLVMLandingPadClauseTy
+ LLVMLinkage
+ LLVMModuleFlagBehavior
+ LLVMObjectArray
+ LLVMOpcode
+ LLVMRealPredicate
+ LLVMThreadLocalMode
+ LLVMTypeKind
+ LLVMVerifierFailureAction
+ LLVMVisibility
+ #'jv_llvm_s'
+ (LLVMExamples autoload)
+ LLVMObject
LLVMTypeError
+ LLVMBasicBlock
+ LLVMContext
+ LLVMDiagnosticInfo
+ LLVMDisposableObject
+ LLVMMCJITCompilerOptions
+ LLVMMetadata
+ LLVMPassRegistry
+ LLVMTargetLibraryInfo
+ LLVMType
LLVMTypeMismatchError
+ LLVMUse
+ LLVMValue
+ LLVMDIBuilder
+ LLVMExecutionEngine
+ LLVMFunction
+ LLVMGenericValue
+ LLVMIRBuilder
+ LLVMMCJITMemoryManager
+ LLVMModule
+ LLVMModuleProvider
+ LLVMPassManager
+ LLVMTargetData
+ LLVMTypeFunction
+ LLVMTypeLabel
+ LLVMTypeMetadata
+ LLVMTypeScalar
+ LLVMTypeSequential
+ LLVMTypeStruct
+ LLVMTypeVoid
+ LLVMStXMethod
+ LLVMTypeArray
LLVMTypeDouble
LLVMTypeFP128
LLVMTypeFloat
- LLVMTypeFunction
LLVMTypeHalt
LLVMTypeInteger
- LLVMTypeLabel
- LLVMTypeMetadata
#'LLVMTypePPC_FP128'
- LLVMTypeSequential
- LLVMTypeStruct
- LLVMTypeVoid
+ LLVMTypePointer
+ LLVMTypeVector
#'LLVMTypeX86_FP80'
#'LLVMTypeX86_MMX'
- LLVMTypeArray
- LLVMTypePointer
- LLVMTypeVector
)
!
@@ -178,6 +224,7 @@
Object isLLVMType
Object isLLVMValue
Object isLLVMFunction
+ Object asLLVMMetadata
)
! !
--- a/libInit.cc Mon Aug 17 09:16:53 2015 +0100
+++ b/libInit.cc Mon Aug 17 08:53:26 2015 +0100
@@ -36,14 +36,15 @@
_LLVMCallConv_Init(pass,__pRT__,snd);
_LLVMConfig_Init(pass,__pRT__,snd);
_LLVMConstant_Init(pass,__pRT__,snd);
-_LLVMDIBuilder_Init(pass,__pRT__,snd);
_LLVMDLLStorageClass_Init(pass,__pRT__,snd);
+_LLVMDWARFEncoding_Init(pass,__pRT__,snd);
+_LLVMDWARFLamguage_Init(pass,__pRT__,snd);
_LLVMDiagnosticSeverity_Init(pass,__pRT__,snd);
_LLVMError_Init(pass,__pRT__,snd);
_LLVMIntPredicate_Init(pass,__pRT__,snd);
_LLVMLandingPadClauseTy_Init(pass,__pRT__,snd);
_LLVMLinkage_Init(pass,__pRT__,snd);
-_LLVMMetadata_Init(pass,__pRT__,snd);
+_LLVMModuleFlagBehavior_Init(pass,__pRT__,snd);
_LLVMObjectArray_Init(pass,__pRT__,snd);
_LLVMOpcode_Init(pass,__pRT__,snd);
_LLVMRealPredicate_Init(pass,__pRT__,snd);
@@ -59,12 +60,14 @@
_LLVMDiagnosticInfo_Init(pass,__pRT__,snd);
_LLVMDisposableObject_Init(pass,__pRT__,snd);
_LLVMMCJITCompilerOptions_Init(pass,__pRT__,snd);
+_LLVMMetadata_Init(pass,__pRT__,snd);
_LLVMPassRegistry_Init(pass,__pRT__,snd);
_LLVMTargetLibraryInfo_Init(pass,__pRT__,snd);
_LLVMType_Init(pass,__pRT__,snd);
_LLVMTypeMismatchError_Init(pass,__pRT__,snd);
_LLVMUse_Init(pass,__pRT__,snd);
_LLVMValue_Init(pass,__pRT__,snd);
+_LLVMDIBuilder_Init(pass,__pRT__,snd);
_LLVMExecutionEngine_Init(pass,__pRT__,snd);
_LLVMFunction_Init(pass,__pRT__,snd);
_LLVMGenericValue_Init(pass,__pRT__,snd);
@@ -74,24 +77,25 @@
_LLVMModuleProvider_Init(pass,__pRT__,snd);
_LLVMPassManager_Init(pass,__pRT__,snd);
_LLVMTargetData_Init(pass,__pRT__,snd);
+_LLVMTypeFunction_Init(pass,__pRT__,snd);
+_LLVMTypeLabel_Init(pass,__pRT__,snd);
+_LLVMTypeMetadata_Init(pass,__pRT__,snd);
+_LLVMTypeScalar_Init(pass,__pRT__,snd);
+_LLVMTypeSequential_Init(pass,__pRT__,snd);
+_LLVMTypeStruct_Init(pass,__pRT__,snd);
+_LLVMTypeVoid_Init(pass,__pRT__,snd);
+_LLVMStXMethod_Init(pass,__pRT__,snd);
+_LLVMTypeArray_Init(pass,__pRT__,snd);
_LLVMTypeDouble_Init(pass,__pRT__,snd);
_LLVMTypeFP128_Init(pass,__pRT__,snd);
_LLVMTypeFloat_Init(pass,__pRT__,snd);
-_LLVMTypeFunction_Init(pass,__pRT__,snd);
_LLVMTypeHalt_Init(pass,__pRT__,snd);
_LLVMTypeInteger_Init(pass,__pRT__,snd);
-_LLVMTypeLabel_Init(pass,__pRT__,snd);
-_LLVMTypeMetadata_Init(pass,__pRT__,snd);
_LLVMTypePPC_137FP128_Init(pass,__pRT__,snd);
-_LLVMTypeSequential_Init(pass,__pRT__,snd);
-_LLVMTypeStruct_Init(pass,__pRT__,snd);
-_LLVMTypeVoid_Init(pass,__pRT__,snd);
+_LLVMTypePointer_Init(pass,__pRT__,snd);
+_LLVMTypeVector_Init(pass,__pRT__,snd);
_LLVMTypeX86_137FP80_Init(pass,__pRT__,snd);
_LLVMTypeX86_137MMX_Init(pass,__pRT__,snd);
-_LLVMStXMethod_Init(pass,__pRT__,snd);
-_LLVMTypeArray_Init(pass,__pRT__,snd);
-_LLVMTypePointer_Init(pass,__pRT__,snd);
-_LLVMTypeVector_Init(pass,__pRT__,snd);
_jv_137llvm_137s_extensions_Init(pass,__pRT__,snd);
__END_PACKAGE__();
--- a/tests/LLVMTypeTests.st Mon Aug 17 09:16:53 2015 +0100
+++ b/tests/LLVMTypeTests.st Mon Aug 17 08:53:26 2015 +0100
@@ -171,3 +171,10 @@
"Created: / 14-08-2015 / 06:16:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!LLVMTypeTests class methodsFor:'documentation'!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
+! !
+