Relate assembly instruction to LLVM IR when using ExecutionEngine

Torch-mlir is using ExecutionEngine as the backend and I am hitting an abortion in the JIT code. I can find the assembly instruction causing the issue in gdb. Is there a way to relate the assembly instruction to the llvm IR passed to the ExecutionEngine?

Some option in ExecutionEngine(or maybe llvm codegen?) like the counterpart of -print-ir-after-all in MLIR would be very helpful.

Have you tried running under gdb? There are hooks for the debugger IIRC.

yea, I am running under gdb. When dumping the instruction in gdb, I am seeing plain JIT assembly instructions without any symbols attached. What kind of hooks are you referring to?

Thanks for the pointers! The gdbListener is enabled by default.

I also needed to encode the location info into the LLVM dialect IR fed into ExecutionEngine by adding snapshot-op-locations{filename=xxxx} to the pass pipeline generating the IR.

1 Like