Hi Chia Lun Liu,
On 12/21/12 7:47 AM, ChiaLun wrote:> I am using LLVM 3.1, and wants to print the machine code of JIT IR
>
> I try the following method
>
> EngineBuilder builder(&ctx.getModule());
> builder.setEngineKind(EngineKind::JIT);
> *
> TargetMachine * tm = builder.selectTarget();
> tm->Options.PrintMachineCode = true;*
> engine = builder.create();
Try builder.create(tm).
selectTarget() returns a new object, so setting options on that has no
effect on the ExecutionEngine which is built by the create() call.
In fact, EngineBuilder.create() just creates passes a newly created
TargetMachine:> ExecutionEngine *create() {
> return create(selectTarget());
> }
> Another question is that I am not sure when JIT would dump machine code.
It actually dumps it several times during code emission, after running
different passes on it. Code emission happens on the first call to the
functions, thus lazily (or just in time).
Cheers,
Clemens