[clang] [llvm] [AArch64] Add support for -mlong-calls code generation (PR #142982)

via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 12 23:01:15 PDT 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 HEAD~1 HEAD --extensions h,cpp -- clang/lib/Driver/ToolChains/Arch/AArch64.cpp llvm/lib/Target/AArch64/AArch64ISelLowering.cpp llvm/lib/Target/AArch64/GISel/AArch64CallLowering.cpp llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.h
``````````

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp b/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
index 52a320cec..cf19df179 100644
--- a/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
+++ b/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
@@ -2708,11 +2708,10 @@ bool AArch64InstructionSelector::select(MachineInstr &I) {
     auto Op1 = BaseMI->getOperand(1);
     auto Op2 = I.getOperand(2);
     if (Subtarget->genLongCalls() && Op1.isSymbol()) {
-      auto MovAddr = MIB.buildInstr(AArch64::MOVaddr, {I.getOperand(0)}, {})
-                         .addExternalSymbol(Op1.getSymbolName(),
-                                            Op1.getTargetFlags())
-                         .addExternalSymbol(Op2.getSymbolName(),
-                                            Op2.getTargetFlags());
+      auto MovAddr =
+          MIB.buildInstr(AArch64::MOVaddr, {I.getOperand(0)}, {})
+              .addExternalSymbol(Op1.getSymbolName(), Op1.getTargetFlags())
+              .addExternalSymbol(Op2.getSymbolName(), Op2.getTargetFlags());
       I.eraseFromParent();
       return constrainSelectedInstRegOperands(*MovAddr, TII, TRI, RBI);
     }
diff --git a/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp b/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
index 411af1f4a..ac83caf75 100644
--- a/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
+++ b/llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
@@ -1638,8 +1638,9 @@ bool AArch64LegalizerInfo::legalizeSmallCMSymbol(
   auto &SymbolOp = MI.getOperand(1);
 
   Register DstReg = MI.getOperand(0).getReg();
-  auto ADRP = MIRBuilder.buildInstr(AArch64::ADRP, {LLT::pointer(0, 64)}, {})
-                  .addExternalSymbol(SymbolOp.getSymbolName(), AArch64II::MO_PAGE);
+  auto ADRP =
+      MIRBuilder.buildInstr(AArch64::ADRP, {LLT::pointer(0, 64)}, {})
+          .addExternalSymbol(SymbolOp.getSymbolName(), AArch64II::MO_PAGE);
   // Set the regclass on the dest reg too.
   MRI.setRegClass(ADRP.getReg(0), &AArch64::GPR64RegClass);
 

``````````

</details>


https://github.com/llvm/llvm-project/pull/142982


More information about the llvm-commits mailing list