Heeft iemand wat ervaring met LLVM? Meer bepaald de C API (niet de C++ API...)
Nadat ik na wat zoeken een LLVM-3.9.dll heb kunnen laten maken, probeer ik daar wat uit te krijgen...
Delphi Code:
var
m:TLLVMModule;
x:PAnsiChar;
ft:TLLVMType;
pt:TLLVMType;
f:TLLVMValue;
b1:TLLVMBuilder;
bb:TLLVMBasicBlock;
begin
m:=LLVMModuleCreateWithName('test');
pt:=LLVMInt32Type;
ft:=LLVMFunctionType(LLVMInt32Type,pt,1,false);
f:=LLVMAddFunction(m,'testFunction',ft);
bb:=LLVMAppendBasicBlock(f,'X1');
b1:=LLVMCreateBuilder;
LLVMPositionBuilderAtEnd(b1,bb);
LLVMBuildRet(b1,LLVMConstInt(LLVMInt32Type,222,false));
LLVMPrintModuleToFile(m,'test.bc',x);
Writeln(x);
LLVMDisposeMessage(x);
LLVMShutdown;
end;
tot voor LLVMPrintModuleToFile gaat het goed, maar die geeft me een access violation. Als ik deze goed gelezen heb, zou ik toch een geldige module moeten hebben. Ook LLVMVerifyModule geeft me geen fout. Ik heb al een paar keer de declaratie nagekeken (ik moet straks mijn volledige LLVM.pas ergens op github zetten). Dus ik vrees dat ik LLVM-3.9.dll dan maar eens in de Visual Studio debugger ga moeten openen (eurgh)... Tenzij jullie zo een fout spotten?
Bookmarks