This patch adds code generation for AArch64 instrumentation, including direct and indirect calls support.
Elvina Yakubova,
Advanced Software Technology Lab, Huawei
Paths
| Differential D151899
[BOLT] Instrumentation: Initial instrumentation support for AArch64 ClosedPublic Authored by Elvina on Jun 1 2023, 9:36 AM.
Details Summary This patch adds code generation for AArch64 instrumentation, including direct and indirect calls support. Elvina Yakubova,
Diff Detail
Event TimelineElvina added a child revision: D151901: [BOLT] Instrumentation: Add support for MacOS counters.Jun 1 2023, 9:48 AM Comment Actions @maksfb – looks like we really need to add target-specific passes to avoid having all target-specific interfaces exposed through MCPlusBuilder. Comment Actions
Totally :)
Elvina added a child revision: D151942: [BOLT] Instrumentation: AArch64 instrumentation support in runtime.Jul 6 2023, 11:09 PM Elvina removed a child revision: D151942: [BOLT] Instrumentation: AArch64 instrumentation support in runtime.Jul 7 2023, 12:02 AM Elvina added a parent revision: D151942: [BOLT] Instrumentation: AArch64 instrumentation support in runtime. Comment Actions I think you forgot to delete the now unnecessary CodePointerSize parameter. Other than that, looks good! Thanks for working on this. Unfortunately, I don't have an AArch64 machine to test this more thoroughly, so I'm assuming somebody with one of these machines tested your changes? On my side this LGTM, if @yota9 would like to, he can chime in to test this on real AArch64 machines. This revision is now accepted and ready to land.Aug 18 2023, 5:36 PM Elvina removed a parent revision: D151942: [BOLT] Instrumentation: AArch64 instrumentation support in runtime.Aug 22 2023, 7:16 AM Elvina added a child revision: D151942: [BOLT] Instrumentation: AArch64 instrumentation support in runtime. Elvina removed a child revision: D151942: [BOLT] Instrumentation: AArch64 instrumentation support in runtime. Comment Actions LGTM. @rafaelauler the patches were tested on our ARM servers successfully, so I think they're good to go :) Closed by commit rG6e4c230525fb: [BOLT][Instrumentation] Initial instrumentation support for AArch64 (authored by Elvina). · Explain WhyAug 24 2023, 9:35 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 553166 bolt/include/bolt/Core/MCPlusBuilder.h
bolt/lib/Passes/Instrumentation.cpp
bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
bolt/lib/Target/X86/X86MCPlusBuilder.cpp
|
These 6 new member functions being added here are only locally used inside AArch64MCPlusBuilder.cpp, correct? If that's the case, remove them from the architecture-independent interface (MCPlusBuilder.h) and declare them as helper functions/local definitions inside AArch64MCPlusBuilder.cpp outside of the class. I don't think they need to be member functions, so they can have visibility limited to the AArch64 file, e.g.: