Hello All,
Some people thought about a n LLVM wiki. Is there some alreadly? I wish it
would be linked from LLVM.org site.
Here are a few questions which I would like to be answered (preferably on a
Wiki, to possibly participate):
assuming that LLVM (latest from CVS) was configure-d with
./configure '--ENABLE-TARGETS=HOST-ONLY' '--WITH-GNU-LD'
My main (currently platonic - ie no real work yet) interest is in dynamic
code generation within my application. but i might want possibly to persist
the generated code (and somehow relead it at next application run).
how to emit an llvm moduls as (all of)
an elf shared object
a generated c file
a JIT-ted in-memory module
are all the above compatible?
does an elf reader exists which does a dlopen (or very near equivalent)?
if the generated c file is compiled (with e.g. -fpic -shared on amd64/linux)
does the so compiled .so file is equivalent to the elf shared object (are
the symbols the same)? and to the JIT-ed memory module?
are machine code quality of JIT-ed memory module or of elf shared object
comparable?
i'm also suggessting adapting the simple JIT examples (or providing new
ones) to possibly emit c file or elf shared object?
how to delete the code in a JIT-ed in-memory module?
i cannot figure out how to canonically get the host target (ie the
TargetMachine argument to ElfWriter) when configured with
'--enable-targets=host-only' - shouldn't we have only one
TargetMachine in
that case? Mayvbe a static TargetMachine* TargetMachine::getHostTarget()
function could help?
Regards, and thanks for reading.
--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faïencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***
On Tue, 24 Apr 2007, Basile STARYNKEVITCH wrote:> Some people thought about a n LLVM wiki. Is there some alreadly? I wish it > would be linked from LLVM.org site.It is wiki.llvm.org, but it is only partially set up. For now, please send email to John Criswell if you want write access.> Here are a few questions which I would like to be answered (preferably > on a Wiki, to possibly participate): > > assuming that LLVM (latest from CVS) was configure-d with > ./configure '--ENABLE-TARGETS=HOST-ONLY' '--WITH-GNU-LD' > > My main (currently platonic - ie no real work yet) interest is in dynamic > code generation within my application. but i might want possibly to persist > the generated code (and somehow relead it at next application run). > > how to emit an llvm moduls as (all of) > an elf shared object > a generated c file > a JIT-ted in-memory module > > are all the above compatible?These can all be generated with llc or lli.> does an elf reader exists which does a dlopen (or very near equivalent)?Why not just use dlopen?> if the generated c file is compiled (with e.g. -fpic -shared on amd64/linux) > does the so compiled .so file is equivalent to the elf shared object (are > the symbols the same)?Yes.> and to the JIT-ed memory module?I don't know what this means.> are machine code quality of JIT-ed memory module or of elf shared object > comparable?Yes, they use the same code generator.> i'm also suggessting adapting the simple JIT examples (or providing new > ones) to possibly emit c file or elf shared object?Why would you want to emit C?> how to delete the code in a JIT-ed in-memory module?ExecutionEngine::freeMachineCodeForFunction> i cannot figure out how to canonically get the host target (ie the > TargetMachine argument to ElfWriter) when configured with > '--enable-targets=host-only' - shouldn't we have only one TargetMachine in > that case? Mayvbe a static TargetMachine* TargetMachine::getHostTarget() > function could help?The elf writer isn't stable/complete yet. I suggest emitting .s files and invoking the system assembler. -Chris -- http://nondot.org/sabre/ http://llvm.org/