[PATCH] D151899: [BOLT] Instrumentation: Initial instrumentation support for AArch64
Rafael Auler via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 26 17:50:41 PDT 2023
rafauler added inline comments.
================
Comment at: bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp:1328
+ // br x16
+ setSystemFlag(Insts[0], getIntArgRegister(1));
+ createPopRegisters(Insts[1], AArch64::X0, AArch64::X1);
----------------
getIntArgRegister(1) should be replaced with AArch64::X1
================
Comment at: bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp:1345
+ void convertIndirectCallToLoad(MCInst &Inst, MCPhysReg Reg) override {
+ if (Inst.getOpcode() == AArch64::BL || Inst.getOpcode() == AArch64::BLR ||
+ Inst.getOpcode() == AArch64::BR || Inst.getOpcode() == AArch64::B) {
----------------
Don't we need to remove the tailcall annotation like in the X86 code?
================
Comment at: bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp:1370
+ InstructionListType Insts(4);
+ int shift = 48;
+ for (int i = 0; i < 4; i++, shift -= 16) {
----------------
Shift
================
Comment at: bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp:1371
+ int shift = 48;
+ for (int i = 0; i < 4; i++, shift -= 16) {
+ Insts[i].setOpcode(AArch64::MOVKXi);
----------------
I
================
Comment at: bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp:1424-1428
+ for (int I = MCPlus::getNumPrimeOperands(CallInst),
+ E = CallInst.getNumOperands();
+ I != E; ++I) {
+ Insts.back().addOperand(CallInst.getOperand(I));
+ }
----------------
This is not doing what the comment says -- try the same sequence used in X86:
stripAnnotations(Insts.back())
moveAnnotations(std::move(CallInst), Insts.back());
================
Comment at: bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp:1448
+ // b IndCallHandler
+ const MCPhysReg TempReg = getIntArgRegister(0);
+ InstructionListType Insts;
----------------
same - delete TempReg and use X0 directly like you do on line 1451
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D151899/new/
https://reviews.llvm.org/D151899
More information about the llvm-commits
mailing list