[flang-commits] [compiler-rt] [flang] [llvm] [AArch64] fix trampoline implementation: use X15 (PR #126743)
via flang-commits
flang-commits at lists.llvm.org
Tue Feb 11 07:35:25 PST 2025
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff 94f9d5d1a8257710f0483ce025e19a6326ca6e4b 546fed81109e575b5b44693c3940e08ea0231ebc --extensions c,cpp -- compiler-rt/lib/builtins/trampoline_setup.c compiler-rt/test/builtins/Unit/trampoline_setup_test.c flang/lib/Optimizer/CodeGen/BoxedProcedure.cpp llvm/lib/Target/AArch64/AArch64FrameLowering.cpp llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/flang/lib/Optimizer/CodeGen/BoxedProcedure.cpp b/flang/lib/Optimizer/CodeGen/BoxedProcedure.cpp
index f402404121..27efd27cc0 100644
--- a/flang/lib/Optimizer/CodeGen/BoxedProcedure.cpp
+++ b/flang/lib/Optimizer/CodeGen/BoxedProcedure.cpp
@@ -277,9 +277,9 @@ public:
// For PPC32 and PPC64, the thunk is populated by a call to
// __trampoline_setup, which is defined in
// compiler-rt/lib/builtins/trampoline_setup.c and requires the
- // thunk size greater than 32 bytes. For Aarch64, RISCV and x86_64, the
- // thunk setup doesn't go through __trampoline_setup and fits in 32
- // bytes.
+ // thunk size greater than 32 bytes. For Aarch64, RISCV and x86_64,
+ // the thunk setup doesn't go through __trampoline_setup and fits in
+ // 32 bytes.
fir::SequenceType::Extent thunkSize = triple.getTrampolineSize();
mlir::Type buffTy = SequenceType::get({thunkSize}, i8Ty);
auto buffer = builder.create<AllocaOp>(loc, buffTy);
diff --git a/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp b/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
index ced3ff7b74..f9b7706885 100644
--- a/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
+++ b/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
@@ -2047,12 +2047,12 @@ void AArch64FrameLowering::emitPrologue(MachineFunction &MF,
// Find an available register to store value of VG to.
unsigned X15Scratch = AArch64::NoRegister;
if (LiveRegs.contains(AArch64::X15)) {
- // if (llvm::any_of(
- // MBB.liveins(),
- // [&STI](const MachineBasicBlock::RegisterMaskPair &LiveIn) {
- // return STI.getRegisterInfo()->isSuperOrSubRegisterEq(
- // AArch64::X15, LiveIn.PhysReg);
- // }))
+ // if (llvm::any_of(
+ // MBB.liveins(),
+ // [&STI](const MachineBasicBlock::RegisterMaskPair &LiveIn) {
+ // return STI.getRegisterInfo()->isSuperOrSubRegisterEq(
+ // AArch64::X15, LiveIn.PhysReg);
+ // }))
X15Scratch = findScratchNonCalleeSaveRegister(&MBB);
assert(X15Scratch != AArch64::NoRegister);
LiveRegs.removeReg(AArch64::X15); // ignore X15 since we restore it
diff --git a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
index 1404077446..8d6d2c41ee 100644
--- a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+++ b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
@@ -7317,14 +7317,14 @@ SDValue AArch64TargetLowering::LowerINIT_TRAMPOLINE(SDValue Op,
SDLoc dl(Op);
OutChains[0] =
- DAG.getStore(Chain, dl, DAG.getConstant(0x58000080u | X15, dl, MVT::i32), Addr,
- MachinePointerInfo(TrmpAddr));
+ DAG.getStore(Chain, dl, DAG.getConstant(0x58000080u | X15, dl, MVT::i32),
+ Addr, MachinePointerInfo(TrmpAddr));
Addr = DAG.getNode(ISD::ADD, dl, MVT::i64, Trmp,
DAG.getConstant(4, dl, MVT::i64));
OutChains[1] =
- DAG.getStore(Chain, dl, DAG.getConstant(0x580000b0u | X17, dl, MVT::i32), Addr,
- MachinePointerInfo(TrmpAddr, 4));
+ DAG.getStore(Chain, dl, DAG.getConstant(0x580000b0u | X17, dl, MVT::i32),
+ Addr, MachinePointerInfo(TrmpAddr, 4));
Addr = DAG.getNode(ISD::ADD, dl, MVT::i64, Trmp,
DAG.getConstant(8, dl, MVT::i64));
@@ -7345,11 +7345,11 @@ SDValue AArch64TargetLowering::LowerINIT_TRAMPOLINE(SDValue Op,
SDValue StoreToken = DAG.getNode(ISD::TokenFactor, dl, MVT::Other, OutChains);
SDValue EndOfTrmp = DAG.getNode(ISD::ADD, dl, MVT::i64, Trmp,
- DAG.getConstant(12, dl, MVT::i64));
+ DAG.getConstant(12, dl, MVT::i64));
// Call clear cache on the trampoline instructions.
- return DAG.getNode(ISD::CLEAR_CACHE, dl, MVT::Other, StoreToken,
- Trmp, EndOfTrmp);
+ return DAG.getNode(ISD::CLEAR_CACHE, dl, MVT::Other, StoreToken, Trmp,
+ EndOfTrmp);
}
SDValue AArch64TargetLowering::LowerOperation(SDValue Op,
``````````
</details>
https://github.com/llvm/llvm-project/pull/126743
More information about the flang-commits
mailing list