[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