From ac272de5e14b8ef613dc0fca6288bfdd1bb51858 Mon Sep 17 00:00:00 2001 From: Eli Friedman Date: Tue, 27 May 2025 22:22:00 -0700 Subject: [PATCH] [AArch64] Remove VK_WEAKREF from arm64ec lowering. VK_WEAKREF doesn't actually do anything anymore, and it was never really necessary. We set a bit on the MCSymbol to represent the anti-dep semantics. This patch doesn't delete the VK_WEAKREF enum value because that causes an unrelated issue in CodeGen/AArch64/wineh-try-catch.ll. --- llvm/lib/Target/AArch64/AArch64MCInstLower.cpp | 8 ++------ .../AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp | 1 - llvm/test/CodeGen/AArch64/arm64ec-varargs.ll | 16 ++++++++-------- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/llvm/lib/Target/AArch64/AArch64MCInstLower.cpp b/llvm/lib/Target/AArch64/AArch64MCInstLower.cpp index 165b7d8ad6330..eb699c75cf10c 100644 --- a/llvm/lib/Target/AArch64/AArch64MCInstLower.cpp +++ b/llvm/lib/Target/AArch64/AArch64MCInstLower.cpp @@ -78,14 +78,10 @@ MCSymbol *AArch64MCInstLower::GetGlobalValueSymbol(const GlobalValue *GV, Printer.OutStreamer->emitSymbolAttribute(Printer.getSymbol(GV), MCSA_WeakAntiDep); Printer.OutStreamer->emitAssignment( - Printer.getSymbol(GV), - MCSymbolRefExpr::create(MangledSym, MCSymbolRefExpr::VK_WEAKREF, - Ctx)); + Printer.getSymbol(GV), MCSymbolRefExpr::create(MangledSym, Ctx)); Printer.OutStreamer->emitSymbolAttribute(MangledSym, MCSA_WeakAntiDep); Printer.OutStreamer->emitAssignment( - MangledSym, - MCSymbolRefExpr::create(Printer.getSymbol(GV), - MCSymbolRefExpr::VK_WEAKREF, Ctx)); + MangledSym, MCSymbolRefExpr::create(Printer.getSymbol(GV), Ctx)); } if (TargetFlags & AArch64II::MO_ARM64EC_CALLMANGLE) diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp index e8a88f7f31401..31965d85d9eb4 100644 --- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp +++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp @@ -33,7 +33,6 @@ static cl::opt AsmWriterVariant( const MCAsmInfo::AtSpecifier COFFAtSpecifiers[] = { {MCSymbolRefExpr::VK_COFF_IMGREL32, "IMGREL"}, - {MCSymbolRefExpr::VK_WEAKREF, "WEAKREF"}, {AArch64MCExpr::M_PAGEOFF, "PAGEOFF"}, }; diff --git a/llvm/test/CodeGen/AArch64/arm64ec-varargs.ll b/llvm/test/CodeGen/AArch64/arm64ec-varargs.ll index 5796b6f3216a7..5fab5738078dc 100644 --- a/llvm/test/CodeGen/AArch64/arm64ec-varargs.ll +++ b/llvm/test/CodeGen/AArch64/arm64ec-varargs.ll @@ -45,9 +45,9 @@ define void @varargs_caller() nounwind { ; CHECK-NEXT: stp x9, x8, [sp] ; CHECK-NEXT: str xzr, [sp, #16] ; CHECK-NEXT: .weak_anti_dep varargs_callee -; CHECK-NEXT: .set varargs_callee, "#varargs_callee"@WEAKREF +; CHECK-NEXT: .set varargs_callee, "#varargs_callee" ; CHECK-NEXT: .weak_anti_dep "#varargs_callee" -; CHECK-NEXT: .set "#varargs_callee", varargs_callee@WEAKREF +; CHECK-NEXT: .set "#varargs_callee", varargs_callee ; CHECK-NEXT: bl "#varargs_callee" ; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload ; CHECK-NEXT: add sp, sp, #48 @@ -86,9 +86,9 @@ define void @varargs_many_argscalleer() nounwind { ; CHECK-NEXT: stp x9, x8, [sp] ; CHECK-NEXT: stp q0, q0, [sp, #16] ; CHECK-NEXT: .weak_anti_dep varargs_many_argscallee -; CHECK-NEXT: .set varargs_many_argscallee, "#varargs_many_argscallee"@WEAKREF +; CHECK-NEXT: .set varargs_many_argscallee, "#varargs_many_argscallee" ; CHECK-NEXT: .weak_anti_dep "#varargs_many_argscallee" -; CHECK-NEXT: .set "#varargs_many_argscallee", varargs_many_argscallee@WEAKREF +; CHECK-NEXT: .set "#varargs_many_argscallee", varargs_many_argscallee ; CHECK-NEXT: bl "#varargs_many_argscallee" ; CHECK-NEXT: ldr x30, [sp, #48] // 8-byte Folded Reload ; CHECK-NEXT: add sp, sp, #64 @@ -116,9 +116,9 @@ define void @varargs_caller_tail() nounwind { ; CHECK-NEXT: stp x9, x8, [sp] ; CHECK-NEXT: str xzr, [sp, #16] ; CHECK-NEXT: .weak_anti_dep varargs_callee -; CHECK-NEXT: .set varargs_callee, "#varargs_callee"@WEAKREF +; CHECK-NEXT: .set varargs_callee, "#varargs_callee" ; CHECK-NEXT: .weak_anti_dep "#varargs_callee" -; CHECK-NEXT: .set "#varargs_callee", varargs_callee@WEAKREF +; CHECK-NEXT: .set "#varargs_callee", varargs_callee ; CHECK-NEXT: bl "#varargs_callee" ; CHECK-NEXT: ldr x30, [sp, #32] // 8-byte Folded Reload ; CHECK-NEXT: add x4, sp, #48 @@ -129,9 +129,9 @@ define void @varargs_caller_tail() nounwind { ; CHECK-NEXT: mov x5, xzr ; CHECK-NEXT: add sp, sp, #48 ; CHECK-NEXT: .weak_anti_dep varargs_callee -; CHECK-NEXT: .set varargs_callee, "#varargs_callee"@WEAKREF +; CHECK-NEXT: .set varargs_callee, "#varargs_callee" ; CHECK-NEXT: .weak_anti_dep "#varargs_callee" -; CHECK-NEXT: .set "#varargs_callee", varargs_callee@WEAKREF +; CHECK-NEXT: .set "#varargs_callee", varargs_callee ; CHECK-NEXT: b "#varargs_callee" call void (double, ...) @varargs_callee(double 1.0, i32 2, double 3.0, i32 4, double 5.0, <2 x double> ) tail call void (double, ...) @varargs_callee(double 1.0, i32 4, i32 3, i32 2)