-
Notifications
You must be signed in to change notification settings - Fork 14.5k
[AArch64] Remove VK_WEAKREF from arm64ec lowering. #141717
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
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/pr-subscribers-backend-aarch64 Author: Eli Friedman (efriedma-quic) ChangesVK_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. Full diff: https://github.com/llvm/llvm-project/pull/141717.diff 3 Files Affected:
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<AsmWriterVariantTy> 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> <double 0.0, double 0.0>)
tail call void (double, ...) @varargs_callee(double 1.0, i32 4, i32 3, i32 2)
|
Thanks! Is the Anti -dep semantics documented anywhere? |
#112542 has a description; there's no formal documentation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
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.
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.