intel / intel/ittapi

Where is `IttnotifyInfo` defined/declared?

Open
#85 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
142
Forks
52
Avg merge
2d 20h
Merged PRs (30d)
3

Description

LLVM includes the `IntelJITEventsWrapper` that was updated in [Profiling the code generated by MCJIT engine using Intel VTune profiler](https://reviews.llvm.org/D86435).

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`](https://github.com/llvm/llvm-project/blob/57833636816a13ccda53714413c532dc81e3b5ff/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp#L211-L213) func with the memory region that contains the generated ELF.

...Except, [`IttnotifyInfoFunc` is initialized to `0`](https://github.com/llvm/llvm-project/blob/bce8b3c1830434c10b8a30380db522d7c6a8658d/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventsWrapper.h#L54). And there is no mention of a similarly-named method inside [`jitprofiling.h`](https://github.com/llvm/llvm-project/blob/57833636816a13ccda53714413c532dc81e3b5ff/llvm/lib/ExecutionEngine/IntelJITEvents/jitprofiling.h) as there is for [`iJIT_NotifyEvent`](https://github.com/llvm/llvm-project/blob/57833636816a13ccda53714413c532dc81e3b5ff/llvm/lib/ExecutionEngine/IntelJITEvents/jitprofiling.h#L240) (the older API).

As a result, the default `IntelJITEventListener` in LLVM is totally non-functional. It simply [ignores](https://github.com/llvm/llvm-project/blob/bce8b3c1830434c10b8a30380db522d7c6a8658d/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventsWrapper.h#L80-L82) 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?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.