# HG changeset patch # User Jan Vrany # Date 1436605392 -3600 # Node ID d33c64726c865011aefd1aa5f868bcea39e14fa9 # Parent ddfc3a7db3a8f392cb490139b3f76bb66ae10c8a Temporary commit diff -r ddfc3a7db3a8 -r d33c64726c86 LLVM.st --- a/LLVM.st Sat Jul 11 06:38:54 2015 +0100 +++ b/LLVM.st Sat Jul 11 10:03:12 2015 +0100 @@ -99,8 +99,10 @@ @return: LLVMValueRef " - - self primitiveFailed + + self primitiveFailed + + "Modified: / 11-07-2015 / 07:43:05 / Jan Vrany " ! AddFunctionAttr: Fn _: PA @@ -170,6 +172,16 @@ self primitiveFailed ! +AddMethod: M _: Name _: FunctionTy + "This is essentially AddFunction:_: but returns an instance + of LLVMStXMethod instead of LLVMFunction" + + + self primitiveFailed + + "Created: / 11-07-2015 / 08:54:33 / Jan Vrany " +! + AddModule: EE _: M "@param EE: LLVMExecutionEngineRef @param M: LLVMModuleRef diff -r ddfc3a7db3a8 -r d33c64726c86 LLVMFunction.st --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LLVMFunction.st Sat Jul 11 10:03:12 2015 +0100 @@ -0,0 +1,41 @@ +"{ Package: 'jv:libllvms' }" + +"{ NameSpace: Smalltalk }" + +LLVMValue subclass:#LLVMFunction + instanceVariableNames:'' + classVariableNames:'' + poolDictionaries:'' + category:'LLVM-Core' +! + +!LLVMFunction methodsFor:'accessing'! + +numArgs + ^ LLVM GetNumOperands: self. + + "Created: / 11-07-2015 / 09:42:07 / Jan Vrany " +! + +parameterAt: index + | value | + + value := LLVM GetParam: self _: index - 1. + value name isEmptyOrNil ifTrue:[ + value name: 'arg', index printString. + ]. + ^ value + + "Created: / 07-07-2015 / 22:49:38 / Jan Vrany " + "Modified: / 11-07-2015 / 09:45:43 / Jan Vrany " +! ! + +!LLVMFunction methodsFor:'functions-adding'! + +addBasicBlockNamed: name + self assert: name isSingleByteString. + ^ LLVM AppendBasicBlock: self _: name + + "Created: / 08-07-2015 / 23:09:00 / Jan Vrany " +! ! + diff -r ddfc3a7db3a8 -r d33c64726c86 LLVMModule.st --- a/LLVMModule.st Sat Jul 11 06:38:54 2015 +0100 +++ b/LLVMModule.st Sat Jul 11 10:03:12 2015 +0100 @@ -17,6 +17,14 @@ "Created: / 07-07-2015 / 20:22:29 / Jan Vrany " ! ! +!LLVMModule methodsFor:'accessing'! + +dataLayoutString + ^ LLVM GetDataLayout: self. + + "Created: / 11-07-2015 / 06:57:22 / Jan Vrany " +! ! + !LLVMModule methodsFor:'adding & removing'! addFunctionNamed: name type: type @@ -25,6 +33,23 @@ ^ LLVM AddFunction: self _: name _: type. "Created: / 07-07-2015 / 21:59:29 / Jan Vrany " +! + +addMethodForClass: class selector: selector + | name type typeObj typeIlcPtr argTypes| + + name := LLVMStXMethod llvmFunctionNameForClass: class selector: selector. + typeObj := LLVMType intptr. + typeIlcPtr := LLVMType intptr. + argTypes := LLVMObjectArray new: 4"receiver, selector, clsOrNil, pIlc" + selector numArgs. + 1 to: argTypes size do:[:i | + argTypes at: i put: typeObj. + ]. + argTypes at: 4 put: typeIlcPtr. + type := LLVMType function: argTypes returning: typeObj. + ^ LLVM AddMethod: self _: name _: type. + + "Created: / 11-07-2015 / 09:37:04 / Jan Vrany " ! ! !LLVMModule methodsFor:'debugging'! diff -r ddfc3a7db3a8 -r d33c64726c86 LLVMStXMethod.st --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LLVMStXMethod.st Sat Jul 11 10:03:12 2015 +0100 @@ -0,0 +1,109 @@ +"{ Package: 'jv:libllvms' }" + +"{ NameSpace: Smalltalk }" + +LLVMFunction subclass:#LLVMStXMethod + instanceVariableNames:'' + classVariableNames:'SelectorSpecialCharMappingTable' + poolDictionaries:'' + category:'LLVM-StX' +! + +!LLVMStXMethod class methodsFor:'initialization'! + +initialize + "Invoked at system start or when the class is dynamically loaded." + + "/ please change as required (and remove this comment) + + SelectorSpecialCharMappingTable := Dictionary withKeysAndValues: + #($+ 'pl' + $- 'mi' + $* 'mu' + $/ 'di' + $, 'co' + $@ 'at' + $< 'le' + $> 'gr' + $= 'eq' + $~ 'ne' + $| 'pi' + $\ 'mo' + $& 'am'). + + "Modified: / 11-07-2015 / 09:24:06 / Jan Vrany " +! ! + +!LLVMStXMethod class methodsFor:'utilities'! + +llvmFunctionNameForClass: class selector: selector + "For given class name and selector, returns the name + used by LLVM" + + ^ String streamContents:[ :s| + s nextPutAll: '__M_L_'. + s nextPutAll: (class name copyReplaceAll: $: with: $_). + s nextPut: $_. + selector isBinarySelector ifTrue:[ + selector do:[:c | + s nextPutAll: (SelectorSpecialCharMappingTable at: c) + ]. + ] ifFalse:[ + selector do:[:c | + c isAlphaNumeric ifTrue:[ + s nextPut: c + ] ifFalse:[ + c == $: ifTrue:[ + s nextPut: $_ + ] ifFalse:[ + s nextPut: $_. + c codePoint printOn: s. + ] + ]. + ] + ]. + ]. + + " + LLVMStXMethod llvmFunctionNameForClass: LLVMStXMethod selector: #llvmFunctionNameForClass:selector: + LLVMStXMethod llvmFunctionNameForClass: SmallInteger selector: #+ + LLVMStXMethod llvmFunctionNameForClass: Object selector: #~= + + " + + "Created: / 11-07-2015 / 09:26:48 / Jan Vrany " +! ! + +!LLVMStXMethod methodsFor:'accessing'! + +numArgs + ^ super numArgs - 4 + + "Created: / 11-07-2015 / 09:42:30 / Jan Vrany " +! + +parameterAt: index + ^ super parameterAt: 4 + index. + + "Created: / 11-07-2015 / 09:39:33 / Jan Vrany " +! ! + +!LLVMStXMethod methodsFor:'initialization'! + +initialize + super initialize. + + "Assign human readable names to parameters" + (super parameterAt: 1) name: 'self'. + (super parameterAt: 2) name: 'selector'. + (super parameterAt: 3) name: 'searchClass'. + (super parameterAt: 4) name: 'pIlc'. + 1 to: self numArgs do:[:numArg | + (super parameterAt: 4+numArg) name: 'marg', numArg printString. + ]. + + "Created: / 11-07-2015 / 09:41:13 / Jan Vrany " +! ! + + +LLVMStXMethod initialize! diff -r ddfc3a7db3a8 -r d33c64726c86 LLVMTargetData.st --- a/LLVMTargetData.st Sat Jul 11 06:38:54 2015 +0100 +++ b/LLVMTargetData.st Sat Jul 11 10:03:12 2015 +0100 @@ -10,6 +10,21 @@ ! +!LLVMTargetData class methodsFor:'instance creation'! + +new + ^ self newFromDescription: '' + + "Created: / 11-07-2015 / 07:04:13 / Jan Vrany " +! + +newFromDescription: aString + self assert: aString isSingleByteString. + ^ LLVM CreateTargetData: aString + + "Created: / 11-07-2015 / 07:03:52 / Jan Vrany " +! ! + !LLVMTargetData methodsFor:'initialization & release'! dispose diff -r ddfc3a7db3a8 -r d33c64726c86 LLVMType.st --- a/LLVMType.st Sat Jul 11 06:38:54 2015 +0100 +++ b/LLVMType.st Sat Jul 11 10:03:12 2015 +0100 @@ -4,8 +4,8 @@ LLVMObject subclass:#LLVMType instanceVariableNames:'' - classVariableNames:'' - poolDictionaries:'' + classVariableNames:'Int1 Int16 Int32 Int64 IntPtr' + poolDictionaries:'LLVMTypeKind' category:'LLVM-Core' ! @@ -19,9 +19,13 @@ ! int1 - ^ LLVM Int1Type + Int64 isNil ifTrue:[ + Int64 := LLVM Int64Type + ]. + ^ Int64 "Created: / 07-07-2015 / 21:21:25 / Jan Vrany " + "Modified: / 11-07-2015 / 07:01:59 / Jan Vrany " ! int16 @@ -46,6 +50,15 @@ ^ LLVM Int8Type "Created: / 07-07-2015 / 21:21:22 / Jan Vrany " +! + +intptr + IntPtr isNil ifTrue:[ + IntPtr := LLVM IntPtrType: LLVMTargetData new. + ]. + ^ IntPtr + + "Created: / 11-07-2015 / 07:05:49 / Jan Vrany " ! ! !LLVMType methodsFor:'accessing'! @@ -56,14 +69,6 @@ "Created: / 07-07-2015 / 21:59:23 / Jan Vrany " ! ! -!LLVMType methodsFor:'debugging'! - -dump - LLVM DumpType: self. - - "Created: / 07-07-2015 / 22:03:04 / Jan Vrany " -! ! - !LLVMType methodsFor:'debugging-dumping'! dumpOn: aStream @@ -81,5 +86,48 @@ ^ str "Created: / 10-07-2015 / 14:31:23 / Jan Vrany " +! + +printOn: aStream + | kind | + + super printOn: aStream. + aStream nextPutAll: self dumpString. + aStream nextPutAll: ' ['. + kind := self kind. + kind == LLVMVoidTypeKind ifTrue:[ + aStream nextPutAll:'void' + ] ifFalse:[ kind == LLVMHalfTypeKind ifTrue:[ + aStream nextPutAll:'half' + ] ifFalse:[ kind == LLVMFloatTypeKind ifTrue:[ + aStream nextPutAll:'float' + ] ifFalse:[ kind == LLVMDoubleTypeKind ifTrue:[ + aStream nextPutAll:'double' + ] ifFalse:[ kind == LLVMX86_FP80TypeKind ifTrue:[ + aStream nextPutAll:'x86-fp80' + ] ifFalse:[ kind == LLVMFP128TypeKind ifTrue:[ + aStream nextPutAll:'fp128' + ] ifFalse:[ kind == LLVMLabelTypeKind ifTrue:[ + aStream nextPutAll:'label' + ] ifFalse:[ kind == LLVMIntegerTypeKind ifTrue:[ + aStream nextPutAll:'int' + ] ifFalse:[ kind == LLVMFunctionTypeKind ifTrue:[ + aStream nextPutAll:'funct' + ] ifFalse:[ kind == LLVMStructTypeKind ifTrue:[ + aStream nextPutAll:'struct' + ] ifFalse:[ kind == LLVMArrayTypeKind ifTrue:[ + aStream nextPutAll:'array' + ] ifFalse:[ kind == LLVMPointerTypeKind ifTrue:[ + aStream nextPutAll:'ptr' + ] ifFalse:[ kind == LLVMVectorTypeKind ifTrue:[ + aStream nextPutAll:'vector' + ] ifFalse:[ kind == LLVMMetadataTypeKind ifTrue:[ + aStream nextPutAll:'md' + ] ifFalse:[ kind == LLVMX86_MMXTypeKind ifTrue:[ + aStream nextPutAll:'x86-mmx' + ]]]]]]]]]]]]]]]. + aStream nextPutAll: ']'. + + "Created: / 11-07-2015 / 07:08:09 / Jan Vrany " ! ! diff -r ddfc3a7db3a8 -r d33c64726c86 LLVMValue.st --- a/LLVMValue.st Sat Jul 11 06:38:54 2015 +0100 +++ b/LLVMValue.st Sat Jul 11 10:03:12 2015 +0100 @@ -9,6 +9,20 @@ category:'LLVM-Core' ! +!LLVMValue methodsFor:'accessing'! + +name + ^ LLVM GetValueName: self + + "Created: / 11-07-2015 / 07:28:49 / Jan Vrany " +! + +name: aString + ^ LLVM SetValueName: self _: aString + + "Created: / 11-07-2015 / 07:31:17 / Jan Vrany " +! ! + !LLVMValue methodsFor:'debugging'! inspectorExtraAttributes @@ -38,22 +52,13 @@ ^ str "Created: / 10-07-2015 / 14:31:23 / Jan Vrany " -! ! - -!LLVMValue methodsFor:'functions-accessing'! +! -parameterAt: index - ^ LLVM GetParam: self _: index - 1 +printOn: aStream + super printOn: aStream. + aStream nextPutAll: ' - '. + aStream nextPutAll: self dumpString - "Created: / 07-07-2015 / 22:49:38 / Jan Vrany " + "Created: / 11-07-2015 / 07:09:31 / Jan Vrany " ! ! -!LLVMValue methodsFor:'functions-adding'! - -addBasicBlockNamed: name - self assert: name isSingleByteString. - ^ LLVM AppendBasicBlock: self _: name - - "Created: / 08-07-2015 / 23:09:00 / Jan Vrany " -! ! - diff -r ddfc3a7db3a8 -r d33c64726c86 Make.proto --- a/Make.proto Sat Jul 11 06:38:54 2015 +0100 +++ b/Make.proto Sat Jul 11 10:03:12 2015 +0100 @@ -148,17 +148,19 @@ $(OUTDIR)LLVMMCJITCompilerOptions.$(O) LLVMMCJITCompilerOptions.$(H): LLVMMCJITCompilerOptions.st $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)LLVMPassRegistry.$(O) LLVMPassRegistry.$(H): LLVMPassRegistry.st $(INCLUDE_TOP)/jv/libllvms/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/libllvms/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/libllvms/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/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMTypeKind.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)LLVMUse.$(O) LLVMUse.$(H): LLVMUse.st $(INCLUDE_TOP)/jv/libllvms/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/libllvms/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/libllvms/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)LLVMExecutionEngine.$(O) LLVMExecutionEngine.$(H): LLVMExecutionEngine.st $(INCLUDE_TOP)/jv/libllvms/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) +$(OUTDIR)LLVMFunction.$(O) LLVMFunction.$(H): LLVMFunction.st $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMValue.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)LLVMGenericValue.$(O) LLVMGenericValue.$(H): LLVMGenericValue.st $(INCLUDE_TOP)/jv/libllvms/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)LLVMMCJITMemoryManager.$(O) LLVMMCJITMemoryManager.$(H): LLVMMCJITMemoryManager.st $(INCLUDE_TOP)/jv/libllvms/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)LLVMModule.$(O) LLVMModule.$(H): LLVMModule.st $(INCLUDE_TOP)/jv/libllvms/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMTypeKind.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)LLVMModuleProvider.$(O) LLVMModuleProvider.$(H): LLVMModuleProvider.st $(INCLUDE_TOP)/jv/libllvms/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/libllvms/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/libllvms/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/libllvms/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/libllvms/LLVMDisposableObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) +$(OUTDIR)LLVMStXMethod.$(O) LLVMStXMethod.$(H): LLVMStXMethod.st $(INCLUDE_TOP)/jv/libllvms/LLVMFunction.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMObject.$(H) $(INCLUDE_TOP)/jv/libllvms/LLVMValue.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR) $(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(STCHDR) # ENDMAKEDEPEND --- do not remove this line diff -r ddfc3a7db3a8 -r d33c64726c86 Make.spec --- a/Make.spec Sat Jul 11 06:38:54 2015 +0100 +++ b/Make.spec Sat Jul 11 10:03:12 2015 +0100 @@ -83,12 +83,14 @@ LLVMValue \ LLVMBuilder \ LLVMExecutionEngine \ + LLVMFunction \ LLVMGenericValue \ LLVMMCJITMemoryManager \ LLVMModule \ LLVMModuleProvider \ LLVMPassManager \ LLVMTargetData \ + LLVMStXMethod \ @@ -126,12 +128,14 @@ $(OUTDIR_SLASH)LLVMValue.$(O) \ $(OUTDIR_SLASH)LLVMBuilder.$(O) \ $(OUTDIR_SLASH)LLVMExecutionEngine.$(O) \ + $(OUTDIR_SLASH)LLVMFunction.$(O) \ $(OUTDIR_SLASH)LLVMGenericValue.$(O) \ $(OUTDIR_SLASH)LLVMMCJITMemoryManager.$(O) \ $(OUTDIR_SLASH)LLVMModule.$(O) \ $(OUTDIR_SLASH)LLVMModuleProvider.$(O) \ $(OUTDIR_SLASH)LLVMPassManager.$(O) \ $(OUTDIR_SLASH)LLVMTargetData.$(O) \ + $(OUTDIR_SLASH)LLVMStXMethod.$(O) \ $(OUTDIR_SLASH)extensions.$(O) \ diff -r ddfc3a7db3a8 -r d33c64726c86 abbrev.stc --- a/abbrev.stc Sat Jul 11 06:38:54 2015 +0100 +++ b/abbrev.stc Sat Jul 11 10:03:12 2015 +0100 @@ -33,9 +33,11 @@ LLVMValue LLVMValue jv:libllvms 'LLVM-Core' 0 LLVMBuilder LLVMBuilder jv:libllvms 'LLVM-Core' 0 LLVMExecutionEngine LLVMExecutionEngine jv:libllvms 'LLVM-Core' 0 +LLVMFunction LLVMFunction jv:libllvms 'LLVM-Core' 0 LLVMGenericValue LLVMGenericValue jv:libllvms 'LLVM-Core' 0 LLVMMCJITMemoryManager LLVMMCJITMemoryManager jv:libllvms 'LLVM-Core' 0 LLVMModule LLVMModule jv:libllvms 'LLVM-Core' 0 LLVMModuleProvider LLVMModuleProvider jv:libllvms 'LLVM-Core' 0 LLVMPassManager LLVMPassManager jv:libllvms 'LLVM-Core' 0 LLVMTargetData LLVMTargetData jv:libllvms 'LLVM-Core' 0 +LLVMStXMethod LLVMStXMethod jv:libllvms 'LLVM-StX' 0 diff -r ddfc3a7db3a8 -r d33c64726c86 bc.mak --- a/bc.mak Sat Jul 11 06:38:54 2015 +0100 +++ b/bc.mak Sat Jul 11 10:03:12 2015 +0100 @@ -95,17 +95,19 @@ $(OUTDIR)LLVMMCJITCompilerOptions.$(O) LLVMMCJITCompilerOptions.$(H): LLVMMCJITCompilerOptions.st $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)LLVMPassRegistry.$(O) LLVMPassRegistry.$(H): LLVMPassRegistry.st $(INCLUDE_TOP)\jv\libllvms\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\libllvms\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\libllvms\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\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMTypeKind.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)LLVMUse.$(O) LLVMUse.$(H): LLVMUse.st $(INCLUDE_TOP)\jv\libllvms\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\libllvms\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\libllvms\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)LLVMExecutionEngine.$(O) LLVMExecutionEngine.$(H): LLVMExecutionEngine.st $(INCLUDE_TOP)\jv\libllvms\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)LLVMFunction.$(O) LLVMFunction.$(H): LLVMFunction.st $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMValue.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)LLVMGenericValue.$(O) LLVMGenericValue.$(H): LLVMGenericValue.st $(INCLUDE_TOP)\jv\libllvms\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)LLVMMCJITMemoryManager.$(O) LLVMMCJITMemoryManager.$(H): LLVMMCJITMemoryManager.st $(INCLUDE_TOP)\jv\libllvms\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)LLVMModule.$(O) LLVMModule.$(H): LLVMModule.st $(INCLUDE_TOP)\jv\libllvms\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMTypeKind.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)LLVMModuleProvider.$(O) LLVMModuleProvider.$(H): LLVMModuleProvider.st $(INCLUDE_TOP)\jv\libllvms\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\libllvms\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\libllvms\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\libllvms\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\libllvms\LLVMDisposableObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) +$(OUTDIR)LLVMStXMethod.$(O) LLVMStXMethod.$(H): LLVMStXMethod.st $(INCLUDE_TOP)\jv\libllvms\LLVMFunction.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMObject.$(H) $(INCLUDE_TOP)\jv\libllvms\LLVMValue.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR) $(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(STCHDR) # ENDMAKEDEPEND --- do not remove this line diff -r ddfc3a7db3a8 -r d33c64726c86 jv_libllvms.st --- a/jv_libllvms.st Sat Jul 11 06:38:54 2015 +0100 +++ b/jv_libllvms.st Sat Jul 11 10:03:12 2015 +0100 @@ -100,12 +100,14 @@ LLVMValue LLVMBuilder LLVMExecutionEngine + LLVMFunction LLVMGenericValue LLVMMCJITMemoryManager LLVMModule LLVMModuleProvider LLVMPassManager LLVMTargetData + LLVMStXMethod ) ! diff -r ddfc3a7db3a8 -r d33c64726c86 libInit.cc --- a/libInit.cc Sat Jul 11 06:38:54 2015 +0100 +++ b/libInit.cc Sat Jul 11 10:03:12 2015 +0100 @@ -59,12 +59,14 @@ _LLVMValue_Init(pass,__pRT__,snd); _LLVMBuilder_Init(pass,__pRT__,snd); _LLVMExecutionEngine_Init(pass,__pRT__,snd); +_LLVMFunction_Init(pass,__pRT__,snd); _LLVMGenericValue_Init(pass,__pRT__,snd); _LLVMMCJITMemoryManager_Init(pass,__pRT__,snd); _LLVMModule_Init(pass,__pRT__,snd); _LLVMModuleProvider_Init(pass,__pRT__,snd); _LLVMPassManager_Init(pass,__pRT__,snd); _LLVMTargetData_Init(pass,__pRT__,snd); +_LLVMStXMethod_Init(pass,__pRT__,snd); _jv_137libllvms_extensions_Init(pass,__pRT__,snd); __END_PACKAGE__();