LLVM type system refactored to use a subclass per kind.
This models LLVM types bit more object-oriented as type-specific methods such as
access to parameter/member types is implemented in specific classes only.
The FFI callouts still return a generic LLVMType, which later changes its class
during it's initialization (see LLVMType>>initialize).
Added some tests for types.
--- a/LLVM.st Wed Aug 12 06:45:40 2015 +0100
+++ b/LLVM.st Fri Aug 14 06:26:02 2015 +0100
@@ -359,7 +359,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildAShr" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildAShr" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -371,7 +371,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildAdd" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildAdd" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -383,7 +383,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildAddrSpaceCast" ( LLVMBuilder LLVMValue LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildAddrSpaceCast" ( LLVMIRBuilder LLVMValue LLVMType charPointer ) >
self primitiveFailed
!
@@ -394,7 +394,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildAggregateRet" ( LLVMBuilder pointer uint32 ) >
+ <cdecl: LLVMValue "LLVMBuildAggregateRet" ( LLVMIRBuilder pointer uint32 ) >
self primitiveFailed
!
@@ -405,7 +405,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildAlloca" ( LLVMBuilder LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildAlloca" ( LLVMIRBuilder LLVMType charPointer ) >
self primitiveFailed
!
@@ -417,7 +417,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildAnd" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildAnd" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -429,7 +429,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildArrayAlloca" ( LLVMBuilder LLVMType LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildArrayAlloca" ( LLVMIRBuilder LLVMType LLVMValue charPointer ) >
self primitiveFailed
!
@@ -441,7 +441,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildArrayMalloc" ( LLVMBuilder LLVMType LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildArrayMalloc" ( LLVMIRBuilder LLVMType LLVMValue charPointer ) >
self primitiveFailed
!
@@ -455,7 +455,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildAtomicRMW" ( LLVMBuilder int32 LLVMValue LLVMValue int32 int32 ) >
+ <cdecl: LLVMValue "LLVMBuildAtomicRMW" ( LLVMIRBuilder int32 LLVMValue LLVMValue int32 int32 ) >
self primitiveFailed
!
@@ -468,7 +468,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildBinOp" ( LLVMBuilder int32 LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildBinOp" ( LLVMIRBuilder int32 LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -480,7 +480,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildBitCast" ( LLVMBuilder LLVMValue LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildBitCast" ( LLVMIRBuilder LLVMValue LLVMType charPointer ) >
self primitiveFailed
!
@@ -490,7 +490,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildBr" ( LLVMBuilder LLVMBasicBlock ) >
+ <cdecl: LLVMValue "LLVMBuildBr" ( LLVMIRBuilder LLVMBasicBlock ) >
self primitiveFailed
!
@@ -503,7 +503,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildCall" ( LLVMBuilder LLVMValue pointer uint32 charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildCall" ( LLVMIRBuilder LLVMValue pointer uint32 charPointer ) >
self primitiveFailed
!
@@ -516,7 +516,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildCast" ( LLVMBuilder int32 LLVMValue LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildCast" ( LLVMIRBuilder int32 LLVMValue LLVMType charPointer ) >
self primitiveFailed
!
@@ -528,7 +528,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildCondBr" ( LLVMBuilder LLVMValue LLVMBasicBlock LLVMBasicBlock ) >
+ <cdecl: LLVMValue "LLVMBuildCondBr" ( LLVMIRBuilder LLVMValue LLVMBasicBlock LLVMBasicBlock ) >
self primitiveFailed
!
@@ -540,7 +540,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildExactSDiv" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildExactSDiv" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -552,7 +552,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildExtractElement" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildExtractElement" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -564,7 +564,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildExtractValue" ( LLVMBuilder LLVMValue uint32 charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildExtractValue" ( LLVMIRBuilder LLVMValue uint32 charPointer ) >
self primitiveFailed
!
@@ -576,7 +576,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildFAdd" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildFAdd" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -589,7 +589,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildFCmp" ( LLVMBuilder int32 LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildFCmp" ( LLVMIRBuilder int32 LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -601,7 +601,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildFDiv" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildFDiv" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -613,7 +613,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildFMul" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildFMul" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -624,7 +624,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildFNeg" ( LLVMBuilder LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildFNeg" ( LLVMIRBuilder LLVMValue charPointer ) >
self primitiveFailed
!
@@ -636,7 +636,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildFPCast" ( LLVMBuilder LLVMValue LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildFPCast" ( LLVMIRBuilder LLVMValue LLVMType charPointer ) >
self primitiveFailed
!
@@ -648,7 +648,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildFPExt" ( LLVMBuilder LLVMValue LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildFPExt" ( LLVMIRBuilder LLVMValue LLVMType charPointer ) >
self primitiveFailed
!
@@ -660,7 +660,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildFPToSI" ( LLVMBuilder LLVMValue LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildFPToSI" ( LLVMIRBuilder LLVMValue LLVMType charPointer ) >
self primitiveFailed
!
@@ -672,7 +672,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildFPToUI" ( LLVMBuilder LLVMValue LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildFPToUI" ( LLVMIRBuilder LLVMValue LLVMType charPointer ) >
self primitiveFailed
!
@@ -684,7 +684,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildFPTrunc" ( LLVMBuilder LLVMValue LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildFPTrunc" ( LLVMIRBuilder LLVMValue LLVMType charPointer ) >
self primitiveFailed
!
@@ -696,7 +696,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildFRem" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildFRem" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -708,7 +708,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildFSub" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildFSub" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -720,7 +720,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildFence" ( LLVMBuilder int32 int32 charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildFence" ( LLVMIRBuilder int32 int32 charPointer ) >
self primitiveFailed
!
@@ -730,7 +730,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildFree" ( LLVMBuilder LLVMValue ) >
+ <cdecl: LLVMValue "LLVMBuildFree" ( LLVMIRBuilder LLVMValue ) >
self primitiveFailed
!
@@ -743,7 +743,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildGEP" ( LLVMBuilder LLVMValue pointer uint32 charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildGEP" ( LLVMIRBuilder LLVMValue pointer uint32 charPointer ) >
self primitiveFailed
!
@@ -754,7 +754,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildGlobalString" ( LLVMBuilder charPointer charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildGlobalString" ( LLVMIRBuilder charPointer charPointer ) >
self primitiveFailed
!
@@ -765,7 +765,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildGlobalStringPtr" ( LLVMBuilder charPointer charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildGlobalStringPtr" ( LLVMIRBuilder charPointer charPointer ) >
self primitiveFailed
!
@@ -778,7 +778,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildICmp" ( LLVMBuilder int32 LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildICmp" ( LLVMIRBuilder int32 LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -791,7 +791,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildInBoundsGEP" ( LLVMBuilder LLVMValue pointer uint32 charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildInBoundsGEP" ( LLVMIRBuilder LLVMValue pointer uint32 charPointer ) >
self primitiveFailed
!
@@ -802,7 +802,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildIndirectBr" ( LLVMBuilder LLVMValue uint32 ) >
+ <cdecl: LLVMValue "LLVMBuildIndirectBr" ( LLVMIRBuilder LLVMValue uint32 ) >
self primitiveFailed
!
@@ -815,7 +815,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildInsertElement" ( LLVMBuilder LLVMValue LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildInsertElement" ( LLVMIRBuilder LLVMValue LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -828,7 +828,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildInsertValue" ( LLVMBuilder LLVMValue LLVMValue uint32 charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildInsertValue" ( LLVMIRBuilder LLVMValue LLVMValue uint32 charPointer ) >
self primitiveFailed
!
@@ -840,7 +840,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildIntCast" ( LLVMBuilder LLVMValue LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildIntCast" ( LLVMIRBuilder LLVMValue LLVMType charPointer ) >
self primitiveFailed
!
@@ -852,7 +852,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildIntToPtr" ( LLVMBuilder LLVMValue LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildIntToPtr" ( LLVMIRBuilder LLVMValue LLVMType charPointer ) >
self primitiveFailed
!
@@ -867,7 +867,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildInvoke" ( LLVMBuilder LLVMValue pointer uint32 LLVMBasicBlock LLVMBasicBlock charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildInvoke" ( LLVMIRBuilder LLVMValue pointer uint32 LLVMBasicBlock LLVMBasicBlock charPointer ) >
self primitiveFailed
!
@@ -878,7 +878,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildIsNotNull" ( LLVMBuilder LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildIsNotNull" ( LLVMIRBuilder LLVMValue charPointer ) >
self primitiveFailed
!
@@ -889,7 +889,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildIsNull" ( LLVMBuilder LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildIsNull" ( LLVMIRBuilder LLVMValue charPointer ) >
self primitiveFailed
!
@@ -901,7 +901,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildLShr" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildLShr" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -913,7 +913,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildLandingPad" ( LLVMBuilder LLVMType uint32 charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildLandingPad" ( LLVMIRBuilder LLVMType uint32 charPointer ) >
self primitiveFailed
!
@@ -924,7 +924,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildLoad" ( LLVMBuilder LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildLoad" ( LLVMIRBuilder LLVMValue charPointer ) >
self primitiveFailed
!
@@ -935,7 +935,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildMalloc" ( LLVMBuilder LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildMalloc" ( LLVMIRBuilder LLVMType charPointer ) >
self primitiveFailed
!
@@ -947,7 +947,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildMul" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildMul" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -959,7 +959,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildNSWAdd" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildNSWAdd" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -971,7 +971,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildNSWMul" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildNSWMul" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -982,7 +982,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildNSWNeg" ( LLVMBuilder LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildNSWNeg" ( LLVMIRBuilder LLVMValue charPointer ) >
self primitiveFailed
!
@@ -994,7 +994,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildNSWSub" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildNSWSub" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -1006,7 +1006,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildNUWAdd" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildNUWAdd" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -1018,7 +1018,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildNUWMul" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildNUWMul" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -1029,7 +1029,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildNUWNeg" ( LLVMBuilder LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildNUWNeg" ( LLVMIRBuilder LLVMValue charPointer ) >
self primitiveFailed
!
@@ -1041,7 +1041,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildNUWSub" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildNUWSub" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -1052,7 +1052,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildNeg" ( LLVMBuilder LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildNeg" ( LLVMIRBuilder LLVMValue charPointer ) >
self primitiveFailed
!
@@ -1063,7 +1063,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildNot" ( LLVMBuilder LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildNot" ( LLVMIRBuilder LLVMValue charPointer ) >
self primitiveFailed
!
@@ -1075,7 +1075,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildOr" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildOr" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -1086,7 +1086,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildPhi" ( LLVMBuilder LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildPhi" ( LLVMIRBuilder LLVMType charPointer ) >
self primitiveFailed
!
@@ -1098,7 +1098,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildPointerCast" ( LLVMBuilder LLVMValue LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildPointerCast" ( LLVMIRBuilder LLVMValue LLVMType charPointer ) >
self primitiveFailed
!
@@ -1110,7 +1110,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildPtrDiff" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildPtrDiff" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -1122,7 +1122,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildPtrToInt" ( LLVMBuilder LLVMValue LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildPtrToInt" ( LLVMIRBuilder LLVMValue LLVMType charPointer ) >
self primitiveFailed
!
@@ -1132,7 +1132,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildResume" ( LLVMBuilder LLVMValue ) >
+ <cdecl: LLVMValue "LLVMBuildResume" ( LLVMIRBuilder LLVMValue ) >
self primitiveFailed
!
@@ -1142,7 +1142,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildRet" ( LLVMBuilder LLVMValue ) >
+ <cdecl: LLVMValue "LLVMBuildRet" ( LLVMIRBuilder LLVMValue ) >
self primitiveFailed
!
@@ -1151,7 +1151,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildRetVoid" ( LLVMBuilder ) >
+ <cdecl: LLVMValue "LLVMBuildRetVoid" ( LLVMIRBuilder ) >
self primitiveFailed
!
@@ -1163,7 +1163,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildSDiv" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildSDiv" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -1175,7 +1175,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildSExt" ( LLVMBuilder LLVMValue LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildSExt" ( LLVMIRBuilder LLVMValue LLVMType charPointer ) >
self primitiveFailed
!
@@ -1187,7 +1187,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildSExtOrBitCast" ( LLVMBuilder LLVMValue LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildSExtOrBitCast" ( LLVMIRBuilder LLVMValue LLVMType charPointer ) >
self primitiveFailed
!
@@ -1199,7 +1199,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildSIToFP" ( LLVMBuilder LLVMValue LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildSIToFP" ( LLVMIRBuilder LLVMValue LLVMType charPointer ) >
self primitiveFailed
!
@@ -1211,7 +1211,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildSRem" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildSRem" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -1224,7 +1224,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildSelect" ( LLVMBuilder LLVMValue LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildSelect" ( LLVMIRBuilder LLVMValue LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -1236,7 +1236,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildShl" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildShl" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -1249,7 +1249,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildShuffleVector" ( LLVMBuilder LLVMValue LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildShuffleVector" ( LLVMIRBuilder LLVMValue LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -1260,7 +1260,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildStore" ( LLVMBuilder LLVMValue LLVMValue ) >
+ <cdecl: LLVMValue "LLVMBuildStore" ( LLVMIRBuilder LLVMValue LLVMValue ) >
self primitiveFailed
!
@@ -1272,7 +1272,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildStructGEP" ( LLVMBuilder LLVMValue uint32 charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildStructGEP" ( LLVMIRBuilder LLVMValue uint32 charPointer ) >
self primitiveFailed
!
@@ -1284,7 +1284,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildSub" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildSub" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -1296,7 +1296,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildSwitch" ( LLVMBuilder LLVMValue LLVMBasicBlock uint32 ) >
+ <cdecl: LLVMValue "LLVMBuildSwitch" ( LLVMIRBuilder LLVMValue LLVMBasicBlock uint32 ) >
self primitiveFailed
!
@@ -1308,7 +1308,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildTrunc" ( LLVMBuilder LLVMValue LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildTrunc" ( LLVMIRBuilder LLVMValue LLVMType charPointer ) >
self primitiveFailed
!
@@ -1320,7 +1320,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildTruncOrBitCast" ( LLVMBuilder LLVMValue LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildTruncOrBitCast" ( LLVMIRBuilder LLVMValue LLVMType charPointer ) >
self primitiveFailed
!
@@ -1332,7 +1332,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildUDiv" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildUDiv" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -1344,7 +1344,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildUIToFP" ( LLVMBuilder LLVMValue LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildUIToFP" ( LLVMIRBuilder LLVMValue LLVMType charPointer ) >
self primitiveFailed
!
@@ -1356,7 +1356,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildURem" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildURem" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -1365,7 +1365,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildUnreachable" ( LLVMBuilder ) >
+ <cdecl: LLVMValue "LLVMBuildUnreachable" ( LLVMIRBuilder ) >
self primitiveFailed
!
@@ -1377,7 +1377,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildVAArg" ( LLVMBuilder LLVMValue LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildVAArg" ( LLVMIRBuilder LLVMValue LLVMType charPointer ) >
self primitiveFailed
!
@@ -1389,7 +1389,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildXor" ( LLVMBuilder LLVMValue LLVMValue charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildXor" ( LLVMIRBuilder LLVMValue LLVMValue charPointer ) >
self primitiveFailed
!
@@ -1401,7 +1401,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildZExt" ( LLVMBuilder LLVMValue LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildZExt" ( LLVMIRBuilder LLVMValue LLVMType charPointer ) >
self primitiveFailed
!
@@ -1413,7 +1413,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMBuildZExtOrBitCast" ( LLVMBuilder LLVMValue LLVMType charPointer ) >
+ <cdecl: LLVMValue "LLVMBuildZExtOrBitCast" ( LLVMIRBuilder LLVMValue LLVMType charPointer ) >
self primitiveFailed
!
@@ -1441,7 +1441,7 @@
@return: void
"
- <cdecl: void "LLVMClearInsertionPosition" ( LLVMBuilder ) >
+ <cdecl: void "LLVMClearInsertionPosition" ( LLVMIRBuilder ) >
self primitiveFailed
!
@@ -2371,7 +2371,7 @@
"@return: LLVMBuilderRef
"
- <cdecl: LLVMBuilder "LLVMCreateBuilder" ( ) >
+ <cdecl: LLVMIRBuilder "LLVMCreateBuilder" ( ) >
self primitiveFailed
!
@@ -2380,7 +2380,7 @@
@return: LLVMBuilderRef
"
- <cdecl: LLVMBuilder "LLVMCreateBuilderInContext" ( LLVMContext ) >
+ <cdecl: LLVMIRBuilder "LLVMCreateBuilderInContext" ( LLVMContext ) >
self primitiveFailed
!
@@ -2637,7 +2637,7 @@
@return: void
"
- <cdecl: void "LLVMDisposeBuilder" ( LLVMBuilder ) >
+ <cdecl: void "LLVMDisposeBuilder" ( LLVMIRBuilder ) >
self primitiveFailed
!
@@ -3007,7 +3007,7 @@
@return: LLVMValueRef
"
- <cdecl: LLVMValue "LLVMGetCurrentDebugLocation" ( LLVMBuilder ) >
+ <cdecl: LLVMValue "LLVMGetCurrentDebugLocation" ( LLVMIRBuilder ) >
self primitiveFailed
!
@@ -3273,7 +3273,7 @@
@return: LLVMBasicBlockRef
"
- <cdecl: LLVMBasicBlock "LLVMGetInsertBlock" ( LLVMBuilder ) >
+ <cdecl: LLVMBasicBlock "LLVMGetInsertBlock" ( LLVMIRBuilder ) >
self primitiveFailed
!
@@ -4056,7 +4056,7 @@
@return: void
"
- <cdecl: void "LLVMInsertIntoBuilder" ( LLVMBuilder LLVMValue ) >
+ <cdecl: void "LLVMInsertIntoBuilder" ( LLVMIRBuilder LLVMValue ) >
self primitiveFailed
!
@@ -4067,7 +4067,7 @@
@return: void
"
- <cdecl: void "LLVMInsertIntoBuilderWithName" ( LLVMBuilder LLVMValue charPointer ) >
+ <cdecl: void "LLVMInsertIntoBuilderWithName" ( LLVMIRBuilder LLVMValue charPointer ) >
self primitiveFailed
!
@@ -4993,8 +4993,10 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMIsOpaqueStruct" ( LLVMType ) >
- self primitiveFailed
+ <cdecl: bool "LLVMIsOpaqueStruct" ( LLVMType ) >
+ self primitiveFailed
+
+ "Modified: / 14-08-2015 / 06:11:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
IsPackedStruct: StructTy
@@ -5002,8 +5004,10 @@
@return: LLVMBool
"
- <cdecl: int32 "LLVMIsPackedStruct" ( LLVMType ) >
- self primitiveFailed
+ <cdecl: bool "LLVMIsPackedStruct" ( LLVMType ) >
+ self primitiveFailed
+
+ "Modified: / 14-08-2015 / 06:11:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
IsTailCall: CallInst
@@ -5213,7 +5217,7 @@
@return: void
"
- <cdecl: void "LLVMPositionBuilder" ( LLVMBuilder LLVMBasicBlock LLVMValue ) >
+ <cdecl: void "LLVMPositionBuilder" ( LLVMIRBuilder LLVMBasicBlock LLVMValue ) >
self primitiveFailed
!
@@ -5223,7 +5227,7 @@
@return: void
"
- <cdecl: void "LLVMPositionBuilderAtEnd" ( LLVMBuilder LLVMBasicBlock ) >
+ <cdecl: void "LLVMPositionBuilderAtEnd" ( LLVMIRBuilder LLVMBasicBlock ) >
self primitiveFailed
!
@@ -5233,7 +5237,7 @@
@return: void
"
- <cdecl: void "LLVMPositionBuilderBefore" ( LLVMBuilder LLVMValue ) >
+ <cdecl: void "LLVMPositionBuilderBefore" ( LLVMIRBuilder LLVMValue ) >
self primitiveFailed
!
@@ -5492,7 +5496,7 @@
@return: void
"
- <cdecl: void "LLVMSetCurrentDebugLocation" ( LLVMBuilder LLVMValue ) >
+ <cdecl: void "LLVMSetCurrentDebugLocation" ( LLVMIRBuilder LLVMValue ) >
self primitiveFailed
!
@@ -5572,7 +5576,7 @@
@return: void
"
- <cdecl: void "LLVMSetInstDebugLocation" ( LLVMBuilder LLVMValue ) >
+ <cdecl: void "LLVMSetInstDebugLocation" ( LLVMIRBuilder LLVMValue ) >
self primitiveFailed
!
--- a/LLVMDisposableObject.st Wed Aug 12 06:45:40 2015 +0100
+++ b/LLVMDisposableObject.st Fri Aug 14 06:26:02 2015 +0100
@@ -40,6 +40,16 @@
"
! !
+!LLVMDisposableObject 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 == LLVMDisposableObject.
+! !
+
!LLVMDisposableObject methodsFor:'initialization & release'!
dispose
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMError.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,42 @@
+"
+ 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 }"
+
+Error subclass:#LLVMError
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Exceptions'
+!
+
+!LLVMError 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.
+"
+! !
+
--- a/LLVMObject.st Wed Aug 12 06:45:40 2015 +0100
+++ b/LLVMObject.st Fri Aug 14 06:26:02 2015 +0100
@@ -40,6 +40,16 @@
"
! !
+!LLVMObject 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 == LLVMObject.
+! !
+
!LLVMObject methodsFor:'assertions'!
assertIsBasicBlockValue:value
@@ -68,6 +78,15 @@
"Modified (format): / 08-08-2015 / 02:41:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+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 / 18:57:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
assertIsString:aString
<resource: #skipInDebuggersWalkback>
--- a/LLVMObjectArray.st Wed Aug 12 06:45:40 2015 +0100
+++ b/LLVMObjectArray.st Fri Aug 14 06:26:02 2015 +0100
@@ -102,14 +102,15 @@
at: index
ExternalAddress pointerSize == 8 ifTrue:[
- ^ LLVMType newAddress: (self longLongAt: ((index - 1) * 8) + 1).
+ ^ self longLongAt: ((index - 1) * 8) + 1.
].
ExternalAddress pointerSize == 4 ifTrue:[
- ^ LLVMType newAddress: (self longLongAt: ((index - 1) * 4) + 1).
+ ^ self longLongAt: ((index - 1) * 4) + 1.
].
self error:'Funny pointerSize'
"Created: / 07-07-2015 / 21:47:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 13-08-2015 / 17:15:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
at: index put: type
--- a/LLVMType.st Wed Aug 12 06:45:40 2015 +0100
+++ b/LLVMType.st Fri Aug 14 06:26:02 2015 +0100
@@ -17,9 +17,10 @@
LLVMObject subclass:#LLVMType
instanceVariableNames:''
- classVariableNames:'Int1 Int16 Int32 Int64 IntPtr'
+ classVariableNames:'Int1 Int8 Int16 Int32 Int64 IntPtr Void Half Float Double X86FP80
+ FP128 PPCFP128 X86MMX KindToClassMapping'
poolDictionaries:'LLVMTypeKind'
- category:'LLVM-S-Core'
+ category:'LLVM-S-Core-Types'
!
!LLVMType class methodsFor:'documentation'!
@@ -40,6 +41,53 @@
"
! !
+!LLVMType class methodsFor:'initialization'!
+
+initialize
+ "Invoked at system start or when the class is dynamically loaded."
+
+ KindToClassMapping := Dictionary withKeysAndValues: {
+ LLVMHalfTypeKind . LLVMTypeHalt .
+ LLVMFloatTypeKind . LLVMTypeFloat .
+ LLVMDoubleTypeKind . LLVMTypeDouble .
+ LLVMX86_FP80TypeKind . LLVMTypeX86_FP80 .
+ LLVMFP128TypeKind . LLVMTypeFP128.
+ LLVMPPC_FP128TypeKind . LLVMTypePPC_FP128 .
+ LLVMIntegerTypeKind . LLVMTypeInteger .
+ LLVMVectorTypeKind . LLVMTypeVector .
+ LLVMArrayTypeKind . LLVMTypeArray .
+ LLVMStructTypeKind . LLVMTypeStruct .
+ LLVMPointerTypeKind . LLVMTypePointer .
+ LLVMFunctionTypeKind . LLVMTypeFunction .
+ LLVMMetadataTypeKind . LLVMTypeMetadata .
+ LLVMVoidTypeKind . LLVMTypeVoid .
+ LLVMLabelTypeKind . LLVMTypeLabel .
+ LLVMX86_MMXTypeKind . LLVMTypeX86_MMX .
+ }
+
+ "Modified: / 13-08-2015 / 17:00:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMType class methodsFor:'instance creation'!
+
+newAddress:addr
+ ^ (super newAddress: addr)
+ initialize;
+ yourself
+
+ "Created: / 13-08-2015 / 17:14:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMType 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 == LLVMType.
+! !
+
!LLVMType class methodsFor:'types - C'!
char
@@ -48,12 +96,70 @@
"Created: / 04-08-2015 / 19:32:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+void
+ Void isNil ifTrue:[ Void := LLVM VoidType ].
+ ^ Void
+
+ "Created: / 13-08-2015 / 17:20:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
wchar
^ self int16
"Created: / 04-08-2015 / 19:32:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!LLVMType class methodsFor:'types - floating points'!
+
+double
+ Double isNil ifTrue:[ Double := LLVM DoubleType ].
+ ^ Double
+
+ "Created: / 13-08-2015 / 17:24:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+float
+ Float isNil ifTrue:[ Float := LLVM FloatType ].
+ ^ Float
+
+ "Created: / 13-08-2015 / 17:24:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+fp128
+ FP128 isNil ifTrue:[ FP128 := LLVM FP128Type ].
+ ^ FP128
+
+ "Created: / 13-08-2015 / 17:26:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+half
+ Half isNil ifTrue:[ Half := LLVM HalfType ].
+ ^ Half
+
+ "Created: / 13-08-2015 / 17:24:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+ppcfp128
+ PPCFP128 isNil ifTrue:[ PPCFP128 := LLVM PPCFP128Type ].
+ ^ PPCFP128
+
+ "Created: / 13-08-2015 / 17:26:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+x86fp80
+ X86FP80 isNil ifTrue:[ X86FP80 := LLVM X86FP80Type ].
+ ^ X86FP80
+
+ "Created: / 13-08-2015 / 17:25:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+x86mmx
+ X86MMX isNil ifTrue:[ X86MMX := LLVM X86MMXType ].
+ ^ X86MMX
+
+ "Created: / 13-08-2015 / 17:26:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!LLVMType class methodsFor:'types - functions'!
function: argumentTypes returning: returnType
@@ -72,46 +178,72 @@
!LLVMType class methodsFor:'types - integers'!
int1
- Int1 isNil ifTrue:[
- Int1 := LLVM Int1Type
- ].
+ Int1 isNil ifTrue:[ Int1 := LLVM Int1Type ].
^ Int1
"Created: / 07-07-2015 / 21:21:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 08-08-2015 / 04:23:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified (format): / 13-08-2015 / 17:21:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
int16
- ^ LLVM Int16Type
+ Int16 isNil ifTrue:[ Int16 := LLVM Int16Type ].
+ ^ Int16
"Created: / 07-07-2015 / 21:21:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 13-08-2015 / 18:48:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
int32
- ^ LLVM Int32Type
+ Int32 isNil ifTrue:[ Int32 := LLVM Int32Type ].
+ ^ Int32
"Created: / 07-07-2015 / 21:21:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 13-08-2015 / 17:22:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
int64
- ^ LLVM Int64Type
+ Int64 isNil ifTrue:[ Int64 := LLVM Int64Type ].
+ ^ Int64
"Created: / 07-07-2015 / 21:21:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 13-08-2015 / 17:22:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
int8
- ^ LLVM Int8Type
+ Int8 isNil ifTrue:[ Int8 := LLVM Int8Type ].
+ ^ Int8
"Created: / 07-07-2015 / 21:21:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 13-08-2015 / 18:47:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
intptr
- IntPtr isNil ifTrue:[
- IntPtr := LLVM IntPtrType: LLVMTargetData new.
- ].
+ IntPtr isNil ifTrue:[ IntPtr := LLVM IntPtrType: LLVMTargetData new ].
^ IntPtr
"Created: / 11-07-2015 / 07:05:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified (format): / 13-08-2015 / 17:22:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMType class methodsFor:'types - structures'!
+
+struct: memberTypes
+ ^ self struct: memberTypes packed: false
+
+ "Created: / 13-08-2015 / 19:15:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+struct: memberTypes packed: packed
+
+ self assert: memberTypes isSequenceable message: '`memberTypes` parameter is not an array of types'.
+ self assert: (memberTypes allSatisfy:[:e|e isLLVMType]) message: 'element of a `memberTypes` parameter is not an LLVM type'.
+ self assert: packed isBoolean message: '`packed` parameter is not a boolean'.
+
+ ^ LLVM StructType: memberTypes asLLVMObjectArray _: memberTypes size _: (packed ifTrue:[ 1 ] ifFalse:[ 0 ])
+
+ "Created: / 13-08-2015 / 19:15:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 14-08-2015 / 05:49:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!LLVMType methodsFor:'accessing'!
@@ -120,6 +252,18 @@
^ LLVM GetTypeKind: self
"Created: / 07-07-2015 / 21:59:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+sizeInBits
+ "For integer, pointer, FP types, return the size in bits. For all
+ other types, throw an LLVMTypeError.
+
+ LLVMType int32 sizeInBits -> 32
+ LLVMType int1 sizeInBits -> 1
+ "
+ LLVMTypeError new signal: 'type size not known'
+
+ "Created: / 13-08-2015 / 16:25:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!LLVMType methodsFor:'comparing'!
@@ -138,6 +282,16 @@
!LLVMType methodsFor:'converting'!
+array: numberOfElements
+ "Create a fixed-size array whose elements are of type of receiver
+ `LLVMType int8 array: 13` returns `[ 13 x i8 ]`"
+
+ self assertIsIntegerUnsigned: numberOfElements.
+ ^ LLVM ArrayType: self _: numberOfElements
+
+ "Created: / 13-08-2015 / 18:57:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
pointer
"Return a pointer to the type represented by the receiver.
`LLVMType int32 pointer` returns int32_t*"
@@ -145,6 +299,15 @@
^ LLVM PointerType: self _: "AddressSpace"0
"Created: / 04-08-2015 / 19:31:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+vector: numberOfElements
+ "Create a fixed-size vector whose elements are of type of receiver."
+
+ self assertIsIntegerUnsigned: numberOfElements.
+ ^ LLVM VectorType: self _: numberOfElements
+
+ "Created: / 13-08-2015 / 18:59:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!LLVMType methodsFor:'debugging-dumping'!
@@ -216,12 +379,60 @@
"Modified: / 08-08-2015 / 04:21:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!LLVMType methodsFor:'initialization'!
+
+initialize
+ self class == LLVMType ifTrue:[
+ self changeClassTo: (KindToClassMapping at: self kind)
+ ].
+
+ "Created: / 13-08-2015 / 16:53:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 13-08-2015 / 18:43:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!LLVMType methodsFor:'testing'!
+isArrayType
+ ^ false
+
+ "Created: / 13-08-2015 / 16:19:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isDoubleType
+ ^ false
+
+ "Created: / 13-08-2015 / 16:14:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isFP128Type
+ ^ false
+
+ "Created: / 13-08-2015 / 16:15:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isFloatType
+ ^ false
+
+ "Created: / 13-08-2015 / 16:14:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isFunctionType
+ ^ false
+
+ "Created: / 13-08-2015 / 16:16:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isHalfType
+ ^ false
+
+ "Created: / 13-08-2015 / 16:14:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
isIntegerType
- ^ self kind == LLVMIntegerTypeKind
+ ^ false
"Created: / 11-07-2015 / 14:56:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 13-08-2015 / 16:49:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
isLLVMType
@@ -232,10 +443,59 @@
"Created: / 08-08-2015 / 02:46:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+isLabelType
+ ^ false
+
+ "Created: / 13-08-2015 / 16:16:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isMetadataType
+ ^ false
+
+ "Created: / 13-08-2015 / 16:20:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isPPC_FP128Type
+ ^ false
+
+ "Created: / 13-08-2015 / 16:15:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isPointerType
+ ^ false
+
+ "Created: / 13-08-2015 / 16:19:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isStructType
+ ^ false
+
+ "Created: / 13-08-2015 / 16:19:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
isVectorType
- ^ self kind == LLVMVectorTypeKind
+ ^ false
"Created: / 11-07-2015 / 14:56:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 13-08-2015 / 16:50:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isVoidType
+ ^false
+
+ "Created: / 13-08-2015 / 16:13:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isX86_FP80Type
+ ^ false
+
+ "Created: / 13-08-2015 / 16:14:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isX86_MMXType
+ ^ false
+
+ "Created: / 13-08-2015 / 16:20:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!LLVMType class methodsFor:'documentation'!
@@ -245,3 +505,5 @@
^ '$Changeset: <not expanded> $'
! !
+
+LLVMType initialize!
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMTypeArray.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,59 @@
+"
+ 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 }"
+
+LLVMTypeSequential subclass:#LLVMTypeArray
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Types'
+!
+
+!LLVMTypeArray 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.
+"
+! !
+
+!LLVMTypeArray methodsFor:'accessing'!
+
+sizeInElements
+ "Return the number of elements"
+ ^ LLVM GetArrayLength: self
+
+ "Created: / 13-08-2015 / 19:00:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMTypeArray methodsFor:'testing'!
+
+isArrayType
+ ^ true
+
+ "Created: / 13-08-2015 / 16:50:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMTypeDouble.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,64 @@
+"
+ 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:#LLVMTypeDouble
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Types'
+!
+
+!LLVMTypeDouble 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.
+"
+! !
+
+!LLVMTypeDouble methodsFor:'accessing'!
+
+sizeInBits
+ "For integer, pointer, FP types, return the size in bits. For all
+ other types, throw an LLVMTypeError.
+
+ LLVMType int32 sizeInBits -> 32
+ LLVMType int1 sizeInBits -> 1
+ "
+ ^ 64
+
+ "Created: / 13-08-2015 / 17:02:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMTypeDouble methodsFor:'testing'!
+
+isDoubleType
+ ^ true
+
+ "Created: / 13-08-2015 / 16:50:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMTypeError.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,42 @@
+"
+ 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 }"
+
+LLVMError subclass:#LLVMTypeError
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Exceptions'
+!
+
+!LLVMTypeError 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.
+"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMTypeFP128.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,64 @@
+"
+ 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:#LLVMTypeFP128
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Types'
+!
+
+!LLVMTypeFP128 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.
+"
+! !
+
+!LLVMTypeFP128 methodsFor:'accessing'!
+
+sizeInBits
+ "For integer, pointer, FP types, return the size in bits. For all
+ other types, throw an LLVMTypeError.
+
+ LLVMType int32 sizeInBits -> 32
+ LLVMType int1 sizeInBits -> 1
+ "
+ ^ 128
+
+ "Created: / 13-08-2015 / 17:02:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMTypeFP128 methodsFor:'testing'!
+
+isFP128Type
+ ^ true
+
+ "Created: / 13-08-2015 / 16:51:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMTypeFloat.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,64 @@
+"
+ 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:#LLVMTypeFloat
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Types'
+!
+
+!LLVMTypeFloat 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.
+"
+! !
+
+!LLVMTypeFloat methodsFor:'accessing'!
+
+sizeInBits
+ "For integer, pointer, FP types, return the size in bits. For all
+ other types, throw an LLVMTypeError.
+
+ LLVMType int32 sizeInBits -> 32
+ LLVMType int1 sizeInBits -> 1
+ "
+ ^ 32
+
+ "Created: / 13-08-2015 / 17:02:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMTypeFloat methodsFor:'testing'!
+
+isFloatType
+ ^ true
+
+ "Created: / 13-08-2015 / 16:51:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMTypeFunction.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,113 @@
+"
+ 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:#LLVMTypeFunction
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Types'
+!
+
+!LLVMTypeFunction 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.
+"
+! !
+
+!LLVMTypeFunction methodsFor:'accessing'!
+
+numArgs
+ "Return a number of arguments this function takes (excluding variadic, if any)
+
+ Same as numParams, defined here to match Smalltalk/X naming which uses #numArgs"
+
+ ^ self numArgs
+
+ "Created: / 13-08-2015 / 17:06:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+numParams
+ "Return a number of arguments this function takes (excluding variadic, if any)"
+
+ ^ LLVM CountParamTypes: self.
+
+ "Created: / 13-08-2015 / 17:07:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+parameterTypeAt: index
+ | numParams parameterTypePointers |
+
+ numParams := self numParams.
+ (index between: 1 and: numParams) ifTrue:[
+ parameterTypePointers := LLVMObjectArray new: numParams.
+ LLVM GetParamTypes: self _: parameterTypePointers.
+ ^ (LLVMType newAddress: (parameterTypePointers at: index))
+ ].
+ LLVMTypeError new signal: 'index out of bounds'
+
+ "Created: / 13-08-2015 / 17:16:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 14-08-2015 / 06:15:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+parameterTypes
+ | numParams parameterTypePointers parameterTypes |
+
+ numParams := self numParams.
+ numParams == 0 ifTrue:[ ^ #() ].
+ parameterTypePointers := LLVMObjectArray new: numParams.
+ parameterTypes := Array new: numParams.
+ LLVM GetParamTypes: self _: parameterTypePointers.
+ 1 to: numParams do:[:i | parameterTypes at: i put: (LLVMType newAddress: (parameterTypePointers at: i)) ].
+ ^ parameterTypes
+
+ "Created: / 13-08-2015 / 17:16:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+returnType
+ ^ LLVM GetReturnType: self.
+
+ "Created: / 13-08-2015 / 17:11:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMTypeFunction methodsFor:'testing'!
+
+isFunctionType
+ ^ true
+
+ "Created: / 13-08-2015 / 16:51:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isVarArg
+ "Return true if the function type designates a variadic function"
+
+ ^ LLVM IsFunctionVarArg: self
+
+ "Created: / 13-08-2015 / 17:05:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMTypeHalt.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,64 @@
+"
+ 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:#LLVMTypeHalt
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Types'
+!
+
+!LLVMTypeHalt 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.
+"
+! !
+
+!LLVMTypeHalt methodsFor:'accessing'!
+
+sizeInBits
+ "For integer, pointer, FP types, return the size in bits. For all
+ other types, throw an LLVMTypeError.
+
+ LLVMType int32 sizeInBits -> 32
+ LLVMType int1 sizeInBits -> 1
+ "
+ ^ 16
+
+ "Created: / 13-08-2015 / 17:02:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMTypeHalt methodsFor:'testing'!
+
+isHalfType
+ ^ true
+
+ "Created: / 13-08-2015 / 16:51:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMTypeInteger.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,64 @@
+"
+ 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:#LLVMTypeInteger
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Types'
+!
+
+!LLVMTypeInteger 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.
+"
+! !
+
+!LLVMTypeInteger methodsFor:'accessing'!
+
+sizeInBits
+ "For integer, pointer, FP types, return the size in bits. For all
+ other types, throw an LLVMTypeError.
+
+ LLVMType int32 sizeInBits -> 32
+ LLVMType int1 sizeInBits -> 1
+ "
+ ^ LLVM GetIntTypeWidth: self
+
+ "Created: / 13-08-2015 / 17:03:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMTypeInteger methodsFor:'testing'!
+
+isIntegerType
+ ^ true
+
+ "Created: / 13-08-2015 / 16:51:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMTypeLabel.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,50 @@
+"
+ 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:#LLVMTypeLabel
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Types'
+!
+
+!LLVMTypeLabel 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.
+"
+! !
+
+!LLVMTypeLabel methodsFor:'testing'!
+
+isLabelType
+ ^ true
+
+ "Created: / 13-08-2015 / 16:52:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMTypeMetadata.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,50 @@
+"
+ 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:#LLVMTypeMetadata
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Types'
+!
+
+!LLVMTypeMetadata 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.
+"
+! !
+
+!LLVMTypeMetadata methodsFor:'testing'!
+
+isMetadataType
+ ^ true
+
+ "Created: / 13-08-2015 / 16:52:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMTypeMismatchError.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,42 @@
+"
+ 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 }"
+
+LLVMTypeError subclass:#LLVMTypeMismatchError
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Exceptions'
+!
+
+!LLVMTypeMismatchError 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.
+"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMTypePPC_FP128.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,64 @@
+"
+ 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:#LLVMTypePPC_FP128
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Types'
+!
+
+!LLVMTypePPC_FP128 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.
+"
+! !
+
+!LLVMTypePPC_FP128 methodsFor:'accessing'!
+
+sizeInBits
+ "For integer, pointer, FP types, return the size in bits. For all
+ other types, throw an LLVMTypeError.
+
+ LLVMType int32 sizeInBits -> 32
+ LLVMType int1 sizeInBits -> 1
+ "
+ ^ 128
+
+ "Created: / 13-08-2015 / 17:03:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMTypePPC_FP128 methodsFor:'testing'!
+
+isPPC_FP128Type
+ ^ true
+
+ "Created: / 13-08-2015 / 16:52:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMTypePointer.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,64 @@
+"
+ 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 }"
+
+LLVMTypeSequential subclass:#LLVMTypePointer
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Types'
+!
+
+!LLVMTypePointer 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.
+"
+! !
+
+!LLVMTypePointer methodsFor:'accessing'!
+
+sizeInBits
+ "For integer, pointer, FP types, return the size in bits. For all
+ other types, throw an LLVMTypeError.
+
+ LLVMType int32 sizeInBits -> 32
+ LLVMType int1 sizeInBits -> 1
+ "
+ ^ LLVM GetIntTypeWidth: self
+
+ "Created: / 13-08-2015 / 17:03:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMTypePointer methodsFor:'testing'!
+
+isPointerType
+ ^ true
+
+ "Created: / 13-08-2015 / 17:00:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMTypeSequential.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,62 @@
+"
+ 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:#LLVMTypeSequential
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Types'
+!
+
+!LLVMTypeSequential 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.
+"
+! !
+
+!LLVMTypeSequential 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 == LLVMTypeSequential.
+! !
+
+!LLVMTypeSequential methodsFor:'accessing'!
+
+elementType
+ "Return the array/vector element type or the type a pointer points to"
+
+ ^ LLVM GetElementType: self
+
+ "Created: / 13-08-2015 / 19:02:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMTypeStruct.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,106 @@
+"
+ 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:#LLVMTypeStruct
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Types'
+!
+
+!LLVMTypeStruct 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.
+"
+! !
+
+!LLVMTypeStruct methodsFor:'accessing'!
+
+elementTypeAt: n
+ "Return types of `n`th member of the structure. Index starts at 1 as
+ customary in Smalltalk.
+
+ Uses term `element` instead of `member` to be in sync
+ with LLVM naming."
+
+ (n between: 1 and: self numElements) ifTrue:[
+ ^ LLVM StructGetTypeAtIndex: self _: n - 1.
+ ].
+ LLVMTypeError new signal: 'index out of bounds'.
+
+ "Created: / 14-08-2015 / 05:56:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+elementTypes
+ "Return types of members of this structure.
+
+ Uses term `element` instead of `member` to be in sync
+ with LLVM naming."
+
+ | numElements elementTypePointers elementTypes |
+
+ numElements := self numElements.
+ numElements == 0 ifTrue:[ ^ #() ].
+ elementTypePointers := LLVMObjectArray new: numElements.
+ elementTypes := Array new: numElements.
+ LLVM GetStructElementTypes: self _: elementTypePointers.
+ 1 to: numElements do:[:i | elementTypes at: i put: (LLVMType newAddress: (elementTypePointers at: i)) ].
+ ^ elementTypes
+
+ "Created: / 14-08-2015 / 05:54:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+numElements
+ "Return a number of members of this structure"
+
+ ^ LLVM CountStructElementTypes: self
+
+ "Created: / 14-08-2015 / 05:53:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMTypeStruct methodsFor:'testing'!
+
+isOpaque
+ ^ LLVM IsOpaqueStruct: self
+
+ "Created: / 14-08-2015 / 06:11:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isPacked
+ ^ LLVM IsPackedStruct: self
+
+ "Created: / 14-08-2015 / 06:11:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isStructType
+ ^ true
+
+ "Created: / 13-08-2015 / 16:52:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMTypeVector.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,66 @@
+"
+ 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 }"
+
+LLVMTypeSequential subclass:#LLVMTypeVector
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Types'
+!
+
+!LLVMTypeVector 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.
+"
+! !
+
+!LLVMTypeVector methodsFor:'accessing'!
+
+sizeInElements
+ "Return the number of elements"
+ ^ LLVM GetVectorSize: self
+
+ "Created: / 13-08-2015 / 19:00:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMTypeVector methodsFor:'testing'!
+
+isVectorType
+ ^ true
+
+ "Created: / 13-08-2015 / 16:52:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMTypeVector class methodsFor:'documentation'!
+
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMTypeVoid.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,50 @@
+"
+ 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:#LLVMTypeVoid
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Types'
+!
+
+!LLVMTypeVoid 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.
+"
+! !
+
+!LLVMTypeVoid methodsFor:'testing'!
+
+isVoidType
+ ^true
+
+ "Created: / 13-08-2015 / 16:52:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMTypeX86_FP80.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,64 @@
+"
+ 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:#LLVMTypeX86_FP80
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Types'
+!
+
+!LLVMTypeX86_FP80 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.
+"
+! !
+
+!LLVMTypeX86_FP80 methodsFor:'accessing'!
+
+sizeInBits
+ "For integer, pointer, FP types, return the size in bits. For all
+ other types, throw an LLVMTypeError.
+
+ LLVMType int32 sizeInBits -> 32
+ LLVMType int1 sizeInBits -> 1
+ "
+ ^ 80
+
+ "Created: / 13-08-2015 / 17:03:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMTypeX86_FP80 methodsFor:'testing'!
+
+isX86_FP80Type
+ ^ true
+
+ "Created: / 13-08-2015 / 16:52:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LLVMTypeX86_MMX.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,50 @@
+"
+ 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:#LLVMTypeX86_MMX
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Types'
+!
+
+!LLVMTypeX86_MMX 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.
+"
+! !
+
+!LLVMTypeX86_MMX methodsFor:'testing'!
+
+isX86_MMXType
+ ^ true
+
+ "Created: / 13-08-2015 / 16:52:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/Make.proto Wed Aug 12 06:45:40 2015 +0100
+++ b/Make.proto Fri Aug 14 06:26:02 2015 +0100
@@ -141,6 +141,7 @@
$(OUTDIR)LLVMConstant.$(O) LLVMConstant.$(H): LLVMConstant.st $(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)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)
@@ -153,6 +154,7 @@
$(OUTDIR)LLVMVisibility.$(O) LLVMVisibility.$(H): LLVMVisibility.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
$(OUTDIR)jv_llvm_s.$(O) jv_llvm_s.$(H): jv_llvm_s.st $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(STCHDR)
$(OUTDIR)LLVMObject.$(O) LLVMObject.$(H): LLVMObject.st $(INCLUDE_TOP)/jv/llvm_s/LLVMTypeKind.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMTypeError.$(O) LLVMTypeError.$(H): LLVMTypeError.st $(INCLUDE_TOP)/jv/llvm_s/LLVMError.$(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)LLVMBasicBlock.$(O) LLVMBasicBlock.$(H): LLVMBasicBlock.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)LLVMContext.$(O) LLVMContext.$(H): LLVMContext.st $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(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)
@@ -161,6 +163,7 @@
$(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)LLVMBuilder.$(O) LLVMBuilder.$(H): LLVMBuilder.st $(INCLUDE_TOP)/jv/llvm_s/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMIntPredicate.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMObject.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMRealPredicate.$(H) $(INCLUDE_TOP)/jv/llvm_s/LLVMTypeKind.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -172,7 +175,24 @@
$(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)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)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)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 Wed Aug 12 06:45:40 2015 +0100
+++ b/Make.spec Fri Aug 14 06:26:02 2015 +0100
@@ -62,6 +62,7 @@
LLVMConstant \
LLVMDLLStorageClass \
LLVMDiagnosticSeverity \
+ LLVMError \
LLVMIntPredicate \
LLVMLandingPadClauseTy \
LLVMLinkage \
@@ -74,6 +75,7 @@
LLVMVisibility \
jv_llvm_s \
LLVMObject \
+ LLVMTypeError \
LLVMBasicBlock \
LLVMContext \
LLVMDiagnosticInfo \
@@ -82,6 +84,7 @@
LLVMPassRegistry \
LLVMTargetLibraryInfo \
LLVMType \
+ LLVMTypeMismatchError \
LLVMUse \
LLVMValue \
LLVMBuilder \
@@ -93,7 +96,24 @@
LLVMModuleProvider \
LLVMPassManager \
LLVMTargetData \
+ LLVMTypeDouble \
+ LLVMTypeFP128 \
+ LLVMTypeFloat \
+ LLVMTypeFunction \
+ LLVMTypeHalt \
+ LLVMTypeInteger \
+ LLVMTypeLabel \
+ LLVMTypeMetadata \
+ LLVMTypePPC_FP128 \
+ LLVMTypeSequential \
+ LLVMTypeStruct \
+ LLVMTypeVoid \
+ LLVMTypeX86_FP80 \
+ LLVMTypeX86_MMX \
LLVMStXMethod \
+ LLVMTypeArray \
+ LLVMTypePointer \
+ LLVMTypeVector \
@@ -110,6 +130,7 @@
$(OUTDIR_SLASH)LLVMConstant.$(O) \
$(OUTDIR_SLASH)LLVMDLLStorageClass.$(O) \
$(OUTDIR_SLASH)LLVMDiagnosticSeverity.$(O) \
+ $(OUTDIR_SLASH)LLVMError.$(O) \
$(OUTDIR_SLASH)LLVMIntPredicate.$(O) \
$(OUTDIR_SLASH)LLVMLandingPadClauseTy.$(O) \
$(OUTDIR_SLASH)LLVMLinkage.$(O) \
@@ -122,6 +143,7 @@
$(OUTDIR_SLASH)LLVMVisibility.$(O) \
$(OUTDIR_SLASH)jv_llvm_s.$(O) \
$(OUTDIR_SLASH)LLVMObject.$(O) \
+ $(OUTDIR_SLASH)LLVMTypeError.$(O) \
$(OUTDIR_SLASH)LLVMBasicBlock.$(O) \
$(OUTDIR_SLASH)LLVMContext.$(O) \
$(OUTDIR_SLASH)LLVMDiagnosticInfo.$(O) \
@@ -130,6 +152,7 @@
$(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)LLVMBuilder.$(O) \
@@ -141,7 +164,24 @@
$(OUTDIR_SLASH)LLVMModuleProvider.$(O) \
$(OUTDIR_SLASH)LLVMPassManager.$(O) \
$(OUTDIR_SLASH)LLVMTargetData.$(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)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 Wed Aug 12 06:45:40 2015 +0100
+++ b/abbrev.stc Fri Aug 14 06:26:02 2015 +0100
@@ -12,6 +12,7 @@
LLVMConstant LLVMConstant jv:llvm_s 'LLVM-S-Core' 0
LLVMDLLStorageClass LLVMDLLStorageClass 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
@@ -25,6 +26,7 @@
jv_llvm_s jv_llvm_s jv:llvm_s '* Projects & Packages *' 3
LLVMExamples LLVMExamples jv:llvm_s 'LLVM-S-Core-Examples' 1
LLVMObject LLVMObject jv:llvm_s 'LLVM-S-Internal' 0
+LLVMTypeError LLVMTypeError jv:llvm_s 'LLVM-S-Core-Exceptions' 1
LLVMBasicBlock LLVMBasicBlock jv:llvm_s 'LLVM-S-Core' 0
LLVMContext LLVMContext jv:llvm_s 'LLVM-S-Core' 0
LLVMDiagnosticInfo LLVMDiagnosticInfo jv:llvm_s 'LLVM-S-Core' 0
@@ -32,7 +34,8 @@
LLVMMCJITCompilerOptions LLVMMCJITCompilerOptions 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' 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
LLVMBuilder LLVMBuilder jv:llvm_s 'LLVM-S-Core' 0
@@ -44,4 +47,21 @@
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
+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
+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 Wed Aug 12 06:45:40 2015 +0100
+++ b/bc.mak Fri Aug 14 06:26:02 2015 +0100
@@ -83,6 +83,7 @@
$(OUTDIR)LLVMConstant.$(O) LLVMConstant.$(H): LLVMConstant.st $(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)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)
@@ -95,6 +96,7 @@
$(OUTDIR)LLVMVisibility.$(O) LLVMVisibility.$(H): LLVMVisibility.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
$(OUTDIR)jv_llvm_s.$(O) jv_llvm_s.$(H): jv_llvm_s.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR)
$(OUTDIR)LLVMObject.$(O) LLVMObject.$(H): LLVMObject.st $(INCLUDE_TOP)\jv\llvm_s\LLVMTypeKind.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)LLVMTypeError.$(O) LLVMTypeError.$(H): LLVMTypeError.st $(INCLUDE_TOP)\jv\llvm_s\LLVMError.$(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)LLVMBasicBlock.$(O) LLVMBasicBlock.$(H): LLVMBasicBlock.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)LLVMContext.$(O) LLVMContext.$(H): LLVMContext.st $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(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)
@@ -103,6 +105,7 @@
$(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)LLVMBuilder.$(O) LLVMBuilder.$(H): LLVMBuilder.st $(INCLUDE_TOP)\jv\llvm_s\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMIntPredicate.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMObject.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMRealPredicate.$(H) $(INCLUDE_TOP)\jv\llvm_s\LLVMTypeKind.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
@@ -114,7 +117,24 @@
$(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)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)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)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/jv_llvm_s.st Wed Aug 12 06:45:40 2015 +0100
+++ b/jv_llvm_s.st Fri Aug 14 06:26:02 2015 +0100
@@ -149,6 +149,7 @@
LLVMConstant
LLVMDLLStorageClass
LLVMDiagnosticSeverity
+ LLVMError
LLVMIntPredicate
LLVMLandingPadClauseTy
LLVMLinkage
@@ -162,6 +163,7 @@
#'jv_llvm_s'
(LLVMExamples autoload)
LLVMObject
+ LLVMTypeError
LLVMBasicBlock
LLVMContext
LLVMDiagnosticInfo
@@ -170,6 +172,7 @@
LLVMPassRegistry
LLVMTargetLibraryInfo
LLVMType
+ LLVMTypeMismatchError
LLVMUse
LLVMValue
LLVMBuilder
@@ -181,7 +184,24 @@
LLVMModuleProvider
LLVMPassManager
LLVMTargetData
+ LLVMTypeDouble
+ LLVMTypeFP128
+ LLVMTypeFloat
+ LLVMTypeFunction
+ LLVMTypeHalt
+ LLVMTypeInteger
+ LLVMTypeLabel
+ LLVMTypeMetadata
+ #'LLVMTypePPC_FP128'
+ LLVMTypeSequential
+ LLVMTypeStruct
+ LLVMTypeVoid
+ #'LLVMTypeX86_FP80'
+ #'LLVMTypeX86_MMX'
LLVMStXMethod
+ LLVMTypeArray
+ LLVMTypePointer
+ LLVMTypeVector
)
!
--- a/libInit.cc Wed Aug 12 06:45:40 2015 +0100
+++ b/libInit.cc Fri Aug 14 06:26:02 2015 +0100
@@ -38,6 +38,7 @@
_LLVMConstant_Init(pass,__pRT__,snd);
_LLVMDLLStorageClass_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);
@@ -50,6 +51,7 @@
_LLVMVisibility_Init(pass,__pRT__,snd);
_jv_137llvm_137s_Init(pass,__pRT__,snd);
_LLVMObject_Init(pass,__pRT__,snd);
+_LLVMTypeError_Init(pass,__pRT__,snd);
_LLVMBasicBlock_Init(pass,__pRT__,snd);
_LLVMContext_Init(pass,__pRT__,snd);
_LLVMDiagnosticInfo_Init(pass,__pRT__,snd);
@@ -58,6 +60,7 @@
_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);
_LLVMBuilder_Init(pass,__pRT__,snd);
@@ -69,7 +72,24 @@
_LLVMModuleProvider_Init(pass,__pRT__,snd);
_LLVMPassManager_Init(pass,__pRT__,snd);
_LLVMTargetData_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);
+_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__();
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/LLVMTypeTests.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,173 @@
+"
+ 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/tests' }"
+
+"{ NameSpace: Smalltalk }"
+
+TestCase subclass:#LLVMTypeTests
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'LLVM-S-Core-Types-Tests'
+!
+
+!LLVMTypeTests 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.
+"
+! !
+
+!LLVMTypeTests methodsFor:'tests - function types'!
+
+test_function_01
+ | ftype |
+
+ ftype := LLVMType function: { } returning: LLVMType void.
+
+ self assert: ftype isFunctionType.
+ self assert: ftype returnType isVoidType.
+ self assert: ftype numParams == 0.
+ self assert: ftype parameterTypes = #().
+
+ ftype := LLVMType function: { LLVMType intptr } returning: LLVMType void.
+
+ self assert: ftype isFunctionType.
+ self assert: ftype returnType isVoidType.
+ self assert: ftype numParams == 1.
+ self assert: ftype parameterTypes = { LLVMType intptr }.
+
+ ftype := LLVMType function: { LLVMType intptr . LLVMType intptr pointer } returning: LLVMType half.
+
+ self assert: ftype isFunctionType.
+ self assert: ftype returnType isHalfType.
+ self assert: ftype numParams == 2.
+ self assert: ftype parameterTypes = { LLVMType intptr . LLVMType intptr pointer }
+
+ "Created: / 13-08-2015 / 18:38:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMTypeTests methodsFor:'tests - other'!
+
+test_sizeInBits_01
+
+ self assert: LLVMType int1 sizeInBits == 1.
+ self assert: LLVMType int8 sizeInBits == 8.
+ self assert: LLVMType int16 sizeInBits == 16.
+ self assert: LLVMType int32 sizeInBits == 32.
+ self assert: LLVMType int64 sizeInBits == 64.
+
+ self assert: LLVMType half sizeInBits == 16.
+ self assert: LLVMType float sizeInBits == 32.
+ self assert: LLVMType double sizeInBits == 64.
+ self assert: LLVMType x86fp80 sizeInBits == 80.
+ self assert: LLVMType fp128 sizeInBits == 128.
+
+ "Created: / 13-08-2015 / 18:46:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMTypeTests methodsFor:'tests - sequential types'!
+
+test_array_01
+ | type ptype |
+
+ type := LLVMType int8.
+ ptype := type array:13.
+
+ self assert: ptype isArrayType.
+ self assert: ptype elementType = type.
+ self assert: ptype sizeInElements = 13.
+
+ type := LLVMType x86mmx.
+ ptype := type array: 13.
+
+ self assert: ptype isArrayType.
+ self assert: ptype elementType = type.
+ self assert: ptype sizeInElements = 13.
+
+ "Created: / 13-08-2015 / 19:08:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_pointer_01
+ | type ptype |
+
+ type := LLVMType int8.
+ ptype := type pointer.
+
+ self assert: ptype isPointerType.
+ self assert: ptype elementType = type.
+
+ type := LLVMType x86mmx.
+ ptype := type pointer.
+
+ self assert: ptype isPointerType.
+ self assert: ptype elementType = type
+
+ "Created: / 13-08-2015 / 19:03:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_vector_01
+ | type ptype |
+
+ type := LLVMType int8.
+ ptype := type vector:13.
+
+ self assert: ptype isVectorType.
+ self assert: ptype elementType = type.
+ self assert: ptype sizeInElements = 13.
+
+ type := LLVMType x86mmx.
+ ptype := type vector: 13.
+
+ self assert: ptype isVectorType.
+ self assert: ptype elementType = type.
+ self assert: ptype sizeInElements = 13.
+
+ "Created: / 13-08-2015 / 19:09:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!LLVMTypeTests methodsFor:'tests - struct'!
+
+test_struct_01
+ | struct |
+
+ struct := LLVMType struct: { LLVMType int8 . LLVMType char pointer }.
+
+ self assert: struct isStructType.
+ self deny: struct isPacked.
+ self deny: struct isPacked.
+ self assert: struct numElements == 2.
+ self assert: struct elementTypes = { LLVMType int8 . LLVMType char pointer }.
+ self assert: (struct elementTypeAt: 1) = LLVMType int8.
+ self assert: (struct elementTypeAt: 2) = LLVMType char pointer .
+
+ self should: [ struct elementTypeAt: 0 ] raise: LLVMTypeError.
+ self should: [ struct elementTypeAt: 3 ] raise: LLVMTypeError.
+
+ self assert: struct pointer elementType = struct
+
+ "Created: / 14-08-2015 / 06:16:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/Make.proto Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,132 @@
+# $Header$
+#
+# DO NOT EDIT
+# automagically generated from the projectDefinition: jv_llvm_s_tests.
+#
+# Warning: once you modify this file, do not rerun
+# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
+#
+# The Makefile as generated by this Make.proto supports the following targets:
+# make - compile all st-files to a classLib
+# make clean - clean all temp files
+# make clobber - clean all
+#
+# This file contains definitions for Unix based platforms.
+# It shares common definitions with the win32-make in Make.spec.
+
+#
+# position (of this package) in directory hierarchy:
+# (must point to ST/X top directory, for tools and includes)
+TOP=../../../stx
+INCLUDE_TOP=$(TOP)/..
+
+# subdirectories where targets are to be made:
+SUBDIRS=
+
+
+# subdirectories where Makefiles are to be made:
+# (only define if different from SUBDIRS)
+# ALLSUBDIRS=
+
+REQUIRED_SUPPORT_DIRS=
+
+# if your embedded C code requires any system includes,
+# add the path(es) here:,
+# ********** OPTIONAL: MODIFY the next lines ***
+# LOCALINCLUDES=-Ifoo -Ibar
+LOCALINCLUDES= -I$(INCLUDE_TOP)/jv/llvm_s -I$(INCLUDE_TOP)/stx/goodies/sunit -I$(INCLUDE_TOP)/stx/libbasic
+
+
+# if you need any additional defines for embedded C code,
+# add them here:,
+# ********** OPTIONAL: MODIFY the next lines ***
+# LOCALDEFINES=-Dfoo -Dbar -DDEBUG
+LOCALDEFINES=
+
+LIBNAME=libjv_llvm_s_tests
+STCLOCALOPT='-package=$(PACKAGE)' -I. $(LOCALINCLUDES) $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) -headerDir=. -varPrefix=$(LIBNAME)
+
+
+# ********** OPTIONAL: MODIFY the next line ***
+# additional C-libraries that should be pre-linked with the class-objects
+LD_OBJ_LIBS=
+LOCAL_SHARED_LIBS=
+
+
+# ********** OPTIONAL: MODIFY the next line ***
+# additional C targets or libraries should be added below
+LOCAL_EXTRA_TARGETS=
+
+OBJS= $(COMMON_OBJS) $(UNIX_OBJS)
+
+
+
+all:: preMake classLibRule postMake
+
+pre_objs::
+
+
+
+
+
+
+# Enforce recompilation of package definition class if Mercurial working
+# copy state changes. Together with --guessVersion it ensures that package
+# definition class always contains correct binary revision string.
+ifneq (**NOHG**, $(shell hg root 2> /dev/null || echo -n '**NOHG**'))
+jv_llvm_s_tests.$(O): $(shell hg root)/.hg/dirstate
+endif
+
+
+
+
+# run default testsuite for this package
+test: $(TOP)/goodies/builder/reports
+ $(MAKE) -C $(TOP)/goodies/builder/reports -f Makefile.init
+ $(TOP)/goodies/builder/reports/report-runner.sh -D . -r Builder::TestReport -p $(PACKAGE)
+
+
+
+# add more install actions here
+install::
+
+# add more install actions for aux-files (resources) here
+installAux::
+
+# add more preMake actions here
+preMake::
+
+# add more postMake actions here
+postMake:: cleanjunk
+
+# build all mandatory prerequisite packages (containing superclasses) for this package
+prereq:
+ cd $(TOP)/libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+ cd $(TOP)/libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+ cd $(TOP)/libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+ cd $(TOP)/libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+ cd $(TOP)/goodies/sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+
+
+
+# build all packages containing referenced classes for this package
+# they are not needed to compile the package (but later, to load it)
+references:
+
+
+cleanjunk::
+ -rm -f *.s *.s2
+
+clean::
+ -rm -f *.o *.H
+
+clobber:: clean
+ -rm -f *.so *.dll
+
+
+# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
+$(OUTDIR)LLVMTypeTests.$(O) LLVMTypeTests.$(H): LLVMTypeTests.st $(INCLUDE_TOP)/stx/goodies/sunit/TestAsserter.$(H) $(INCLUDE_TOP)/stx/goodies/sunit/TestCase.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)jv_llvm_s_tests.$(O) jv_llvm_s_tests.$(H): jv_llvm_s_tests.st $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(STCHDR)
+
+# ENDMAKEDEPEND --- do not remove this line
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/Make.spec Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,65 @@
+# $Header$
+#
+# DO NOT EDIT
+# automagically generated from the projectDefinition: jv_llvm_s_tests.
+#
+# Warning: once you modify this file, do not rerun
+# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
+#
+# This file contains specifications which are common to all platforms.
+#
+
+# Do NOT CHANGE THESE DEFINITIONS
+# (otherwise, ST/X will have a hard time to find out the packages location from its packageID,
+# to find the source code of a class and to find the library for a package)
+MODULE=jv
+MODULE_DIR=llvm_s/tests
+PACKAGE=$(MODULE):$(MODULE_DIR)
+
+
+# Argument(s) to the stc compiler (stc --usage).
+# -headerDir=. : create header files locally
+# (if removed, they will be created as common
+# -Pxxx : defines the package
+# -Zxxx : a prefix for variables within the classLib
+# -Dxxx : defines passed to to CC for inline C-code
+# -Ixxx : include path passed to CC for inline C-code
+# +optspace : optimized for space
+# +optspace2 : optimized more for space
+# +optspace3 : optimized even more for space
+# +optinline : generate inline code for some ST constructs
+# +inlineNew : additionally inline new
+# +inlineMath : additionally inline some floatPnt math stuff
+#
+# ********** OPTIONAL: MODIFY the next line(s) ***
+# STCLOCALOPTIMIZATIONS=+optinline +inlineNew
+# STCLOCALOPTIMIZATIONS=+optspace3
+STCLOCALOPTIMIZATIONS=+optspace3
+
+
+# Argument(s) to the stc compiler (stc --usage).
+# -warn : no warnings
+# -warnNonStandard : no warnings about ST/X extensions
+# -warnEOLComments : no warnings about EOL comment extension
+# -warnPrivacy : no warnings about privateClass extension
+# -warnUnused : no warnings about unused variables
+#
+# ********** OPTIONAL: MODIFY the next line(s) ***
+# STCWARNINGS=-warn
+# STCWARNINGS=-warnNonStandard
+# STCWARNINGS=-warnEOLComments
+STCWARNINGS=-warnNonStandard
+
+COMMON_CLASSES= \
+ LLVMTypeTests \
+ jv_llvm_s_tests \
+
+
+
+
+COMMON_OBJS= \
+ $(OUTDIR_SLASH)LLVMTypeTests.$(O) \
+ $(OUTDIR_SLASH)jv_llvm_s_tests.$(O) \
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/Makefile.init Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,27 @@
+#
+# DO NOT EDIT
+#
+# make uses this file (Makefile) only, if there is no
+# file named "makefile" (lower-case m) in the same directory.
+# My only task is to generate the real makefile and call make again.
+# Thereafter, I am no longer used and needed.
+#
+# MACOSX caveat:
+# as filenames are not case sensitive (in a default setup),
+# we cannot use the above trick. Therefore, this file is now named
+# "Makefile.init", and you have to execute "make -f Makefile.init" to
+# get the initial makefile. This is now also done by the toplevel CONFIG
+# script.
+
+.PHONY: run
+
+run: makefile
+ $(MAKE) -f makefile
+
+#only needed for the definition of $(TOP)
+include Make.proto
+
+makefile: mf
+
+mf:
+ $(TOP)/rules/stmkmf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/abbrev.stc Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,5 @@
+# automagically generated by the project definition
+# this file is needed for stc to be able to compile modules independently.
+# it provides information about a classes filename, category and especially namespace.
+LLVMTypeTests LLVMTypeTests jv:llvm_s/tests 'LLVM-S-Core-Types-Tests' 1
+jv_llvm_s_tests jv_llvm_s_tests jv:llvm_s/tests '* Projects & Packages *' 3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/bc.mak Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,87 @@
+# $Header$
+#
+# DO NOT EDIT
+# automagically generated from the projectDefinition: jv_llvm_s_tests.
+#
+# Warning: once you modify this file, do not rerun
+# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
+#
+# Notice, that the name bc.mak is historical (from times, when only borland c was supported).
+# This file contains make rules for the win32 platform using either borland-bcc or visual-c.
+# It shares common definitions with the unix-make in Make.spec.
+# The bc.mak supports the following targets:
+# bmake - compile all st-files to a classLib (dll)
+# bmake clean - clean all temp files
+# bmake clobber - clean all
+#
+# Historic Note:
+# this used to contain only rules to make with borland
+# (called via bmake, by "make.exe -f bc.mak")
+# this has changed; it is now also possible to build using microsoft visual c
+# (called via vcmake, by "make.exe -f bc.mak -DUSEVC")
+#
+TOP=..\..\..\stx
+INCLUDE_TOP=$(TOP)\..
+
+
+
+!INCLUDE $(TOP)\rules\stdHeader_bc
+
+!INCLUDE Make.spec
+
+LIBNAME=libjv_llvm_s_tests
+MODULE_PATH=llvm_s\tests
+RESFILES=tests.$(RES)
+
+
+
+LOCALINCLUDES= -I$(INCLUDE_TOP)\jv\llvm_s -I$(INCLUDE_TOP)\stx\goodies\sunit -I$(INCLUDE_TOP)\stx\libbasic
+LOCALDEFINES=
+
+STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES) -varPrefix=$(LIBNAME)
+LOCALLIBS=
+
+OBJS= $(COMMON_OBJS) $(WIN32_OBJS)
+
+ALL:: classLibRule
+
+classLibRule: $(OUTDIR) $(OUTDIR)$(LIBNAME).dll
+
+!INCLUDE $(TOP)\rules\stdRules_bc
+
+# build all mandatory prerequisite packages (containing superclasses) for this package
+prereq:
+ pushd ..\..\..\stx\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+ pushd ..\..\..\stx\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+ pushd ..\..\..\stx\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+ pushd ..\..\..\stx\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+ pushd ..\..\..\stx\goodies\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+
+
+
+
+
+
+
+test: $(TOP)\goodies\builder\reports\NUL
+ pushd $(TOP)\goodies\builder\reports & $(MAKE_BAT)
+ $(TOP)\goodies\builder\reports\report-runner.bat -D . -r Builder::TestReport -p $(PACKAGE)
+
+clean::
+ del *.$(CSUFFIX)
+
+
+# BEGINMAKEDEPEND --- do not remove this line; make depend needs it
+$(OUTDIR)LLVMTypeTests.$(O) LLVMTypeTests.$(H): LLVMTypeTests.st $(INCLUDE_TOP)\stx\goodies\sunit\TestAsserter.$(H) $(INCLUDE_TOP)\stx\goodies\sunit\TestCase.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)jv_llvm_s_tests.$(O) jv_llvm_s_tests.$(H): jv_llvm_s_tests.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(STCHDR)
+
+# ENDMAKEDEPEND --- do not remove this line
+
+# **Must be at end**
+
+# Enforce recompilation of package definition class if Mercurial working
+# copy state changes. Together with --guessVersion it ensures that package
+# definition class always contains correct binary revision string.
+!IFDEF HGROOT
+$(OUTDIR)jv_llvm_s_tests.$(O): $(HGROOT)\.hg\dirstate
+!ENDIF
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/bmake.bat Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,10 @@
+@REM -------
+@REM make using Borland bcc32
+@REM type bmake, and wait...
+@REM do not edit - automatically generated from ProjectDefinition
+@REM -------
+@SET DEFINES=
+
+make.exe -N -f bc.mak %DEFINES% %*
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/jv_llvm_s_tests.st Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,121 @@
+"{ Package: 'jv:llvm_s/tests' }"
+
+"{ NameSpace: Smalltalk }"
+
+LibraryDefinition subclass:#jv_llvm_s_tests
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'* Projects & Packages *'
+!
+
+
+!jv_llvm_s_tests class methodsFor:'description'!
+
+excludedFromPreRequisites
+ "list packages which are to be explicitely excluded from the automatic constructed
+ prerequisites list. If empty, everything that is found along the inheritance of any of
+ my classes is considered to be a prerequisite package."
+
+ ^ #(
+ )
+!
+
+mandatoryPreRequisites
+ "list packages which are mandatory as a prerequisite.
+ This are packages containing superclasses of my classes and classes which
+ are extended by myself.
+ They are mandatory, because we need these packages as a prerequisite for loading and compiling.
+ This method is generated automatically,
+ by searching along the inheritance chain of all of my classes."
+
+ ^ #(
+ #'stx:goodies/sunit' "TestAsserter - superclass of LLVMTypeTests"
+ #'stx:libbasic' "LibraryDefinition - superclass of jv_llvm_s_tests"
+ )
+!
+
+referencedPreRequisites
+ "list packages which are a prerequisite, because they contain
+ classes which are referenced by my classes.
+ We do not need these packages as a prerequisite for compiling or loading,
+ however, a class from it may be referenced during execution and having it
+ unloaded then may lead to a runtime doesNotUnderstand error, unless the caller
+ includes explicit checks for the package being present.
+ This method is generated automatically,
+ by searching all classes (and their packages) which are referenced by my classes."
+
+ ^ #(
+ #'jv:llvm_s' "LLVMType - referenced by LLVMTypeTests>>test_array_01"
+ )
+!
+
+subProjects
+ "list packages which are known as subprojects.
+ The generated makefile will enter those and make there as well.
+ However: they are not forced to be loaded when a package is loaded;
+ for those, redefine requiredPrerequisites."
+
+ ^ #(
+ )
+! !
+
+!jv_llvm_s_tests class methodsFor:'description - contents'!
+
+classNamesAndAttributes
+ "lists the classes which are to be included in the project.
+ 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"
+ LLVMTypeTests
+ #'jv_llvm_s_tests'
+ )
+!
+
+extensionMethodNames
+ "list class/selector pairs of extensions.
+ A correponding method with real names must be present in my concrete subclasses"
+
+ ^ #(
+ )
+! !
+
+!jv_llvm_s_tests class methodsFor:'description - project information'!
+
+companyName
+ "Returns a company string which will appear in <lib>.rc.
+ Under win32, this is placed into the dlls file-info"
+
+ ^ 'My Company'
+!
+
+description
+ "Returns a description string which will appear in nt.def / bc.def"
+
+ ^ 'Class Library'
+!
+
+legalCopyright
+ "Returns a copyright string which will appear in <lib>.rc.
+ Under win32, this is placed into the dlls file-info"
+
+ ^ 'My CopyRight or CopyLeft'
+!
+
+productName
+ "Returns a product name which will appear in <lib>.rc.
+ Under win32, this is placed into the dlls file-info.
+ This method is usually redefined in a concrete application definition"
+
+ ^ 'LibraryName'
+! !
+
+!jv_llvm_s_tests class methodsFor:'documentation'!
+
+version_HG
+ ^ '$Changeset: <not expanded> $'
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/libInit.cc Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,35 @@
+/*
+ * $Header$
+ *
+ * DO NOT EDIT
+ * automagically generated from the projectDefinition: jv_llvm_s_tests.
+ */
+#define __INDIRECTVMINITCALLS__
+#include <stc.h>
+
+#ifdef WIN32
+# pragma codeseg INITCODE "INITCODE"
+#endif
+
+#if defined(INIT_TEXT_SECTION) || defined(DLL_EXPORT)
+DLL_EXPORT void _libjv_llvm_s_tests_Init() INIT_TEXT_SECTION;
+DLL_EXPORT void _libjv_llvm_s_tests_InitDefinition() INIT_TEXT_SECTION;
+#endif
+
+void _libjv_llvm_s_tests_InitDefinition(pass, __pRT__, snd)
+OBJ snd; struct __vmData__ *__pRT__; {
+__BEGIN_PACKAGE2__("libjv_llvm_s_tests__DFN", _libjv_llvm_s_tests_InitDefinition, "jv:llvm_s/tests");
+_jv_137llvm_137s_137tests_Init(pass,__pRT__,snd);
+
+__END_PACKAGE__();
+}
+
+void _libjv_llvm_s_tests_Init(pass, __pRT__, snd)
+OBJ snd; struct __vmData__ *__pRT__; {
+__BEGIN_PACKAGE2__("libjv_llvm_s_tests", _libjv_llvm_s_tests_Init, "jv:llvm_s/tests");
+_LLVMTypeTests_Init(pass,__pRT__,snd);
+_jv_137llvm_137s_137tests_Init(pass,__pRT__,snd);
+
+
+__END_PACKAGE__();
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mingwmake.bat Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,13 @@
+@REM -------
+@REM make using mingw gnu compiler
+@REM type mingwmake, and wait...
+@REM do not edit - automatically generated from ProjectDefinition
+@REM -------
+@SET DEFINES=
+
+@pushd ..\..\..\stx\rules
+@call find_mingw.bat
+@popd
+make.exe -N -f bc.mak %DEFINES% %USEMINGW_ARG% %*
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/tests.rc Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,37 @@
+//
+// DO NOT EDIT
+// automagically generated from the projectDefinition: jv_llvm_s_tests.
+//
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 6,2,32767,32767
+ PRODUCTVERSION 6,2,5,0
+#if (__BORLANDC__)
+ FILEFLAGSMASK VS_FF_DEBUG | VS_FF_PRERELEASE
+ FILEFLAGS VS_FF_PRERELEASE | VS_FF_SPECIALBUILD
+ FILEOS VOS_NT_WINDOWS32
+ FILETYPE VFT_DLL
+ FILESUBTYPE VS_USER_DEFINED
+#endif
+
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904E4"
+ BEGIN
+ VALUE "CompanyName", "My Company\0"
+ VALUE "FileDescription", "Class Library (LIB)\0"
+ VALUE "FileVersion", "6.2.32767.32767\0"
+ VALUE "InternalName", "jv:llvm_s/tests\0"
+ VALUE "LegalCopyright", "My CopyRight or CopyLeft\0"
+ VALUE "ProductName", "LibraryName\0"
+ VALUE "ProductVersion", "6.2.5.0\0"
+ VALUE "ProductDate", "Fri, 14 Aug 2015 05:21:52 GMT\0"
+ END
+
+ END
+
+ BLOCK "VarFileInfo"
+ BEGIN // Language | Translation
+ VALUE "Translation", 0x409, 0x4E4 // U.S. English, Windows Multilingual
+ END
+END
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/vcmake.bat Fri Aug 14 06:26:02 2015 +0100
@@ -0,0 +1,17 @@
+@REM -------
+@REM make using Microsoft Visual C compiler
+@REM type vcmake, and wait...
+@REM do not edit - automatically generated from ProjectDefinition
+@REM -------
+
+@if not defined VSINSTALLDIR (
+ pushd ..\..\..\stx\rules
+ call vcsetup.bat
+ popd
+)
+@SET DEFINES=
+
+make.exe -N -f bc.mak -DUSEVC=1 %DEFINES% %*
+
+
+