LLVM includes the IntelJITEventsWrapper that was updated in Profiling the code generated by MCJIT engine using Intel VTune profiler.
The commit message mentions-
To overcome limitations described above, we have introduced new APIs as a part of Intel ITT APIs to report the entire in-memory ELF module to be further processed as regular ELF binaries with debug information.
And from the diff, it seems to revolve around calling the iJitIttNotifyInfo func with the memory region that contains the generated ELF.
...Except, IttnotifyInfoFunc is initialized to 0. And there is no mention of a similarly-named method inside jitprofiling.h as there is for iJIT_NotifyEvent (the older API).
As a result, the default IntelJITEventListener in LLVM is totally non-functional. It simply ignores the events when IttnotifyInfoFunc is 0.
So the question is- where is IttnotifyInfoFunc declared, and how can we use it from inside the LLVM listener?
LLVM includes the
IntelJITEventsWrapperthat was updated in Profiling the code generated by MCJIT engine using Intel VTune profiler.The commit message mentions-
And from the diff, it seems to revolve around calling the
iJitIttNotifyInfofunc with the memory region that contains the generated ELF....Except,
IttnotifyInfoFuncis initialized to0. And there is no mention of a similarly-named method insidejitprofiling.has there is foriJIT_NotifyEvent(the older API).As a result, the default
IntelJITEventListenerin LLVM is totally non-functional. It simply ignores the events whenIttnotifyInfoFuncis0.So the question is- where is
IttnotifyInfoFuncdeclared, and how can we use it from inside the LLVM listener?