[llvm-dev] How to correctly use PerfJITEventListener? (original) (raw)
Frank Tetzel via llvm-dev llvm-dev at lists.llvm.org
Tue Jan 15 05:09:53 PST 2019
- Previous message: [llvm-dev] Aggressive optimization opportunity
- Next message: [llvm-dev] How the argc value at runtime?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hello,
I'm struggling to get PerfJITEventListener to work. It was already fun to find out that I need to enable LLVM_USE_PERF in cmake during compilation, and that the jitdump files are stored in ~/.debug/jit/ by default. But it's still not working.
The steps I do:
- Get event listener with JITEventListener::createPerfJITEventListener
- In NotifyLoadedFunction passed to orc::RTDyldObjectLinkingLayer ctor pass object and info to event listener's NotifyObjectEmitted
Then, I profile the application with: perf record -k 1 ./app
This generates a jit-.dump file in ~/.debug/jit/llvm-IR-jit-/.
Inject the events into the perf data perf inject -j -i perf.data -o perf.data.jitted
This creates jitted-.so files in ~/.debug/jit/llvm-IR-jit-/ for each JIT compiled function.
Finally, I open the profile report: perf report -i perf.data.jitted
But here is the problem. The JIT compiled functions are not "resolved". I cannot "zoom in" to the code and annotate the instructions with profile information.
Am I missing something here? Is there a small example somewhere which uses PerfJITEventListener with ORC?
Best regards, Frank
- Previous message: [llvm-dev] Aggressive optimization opportunity
- Next message: [llvm-dev] How the argc value at runtime?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]