[clang] [llvm] [GOFF][z/OS] Change PrivateGlobalPrefix and PrivateLabelPrefix to be L# (PR #85730)
Neumann Hon via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 19 07:36:28 PDT 2024
https://github.com/Everybody0523 updated https://github.com/llvm/llvm-project/pull/85730
>From 37ab123e23e140ee6534804ea22b62f2cc47aa20 Mon Sep 17 00:00:00 2001
From: Neumann Hon <neumann.hon at ibm.com>
Date: Mon, 18 Mar 2024 23:16:26 -0400
Subject: [PATCH 1/4] Change prefix from @/@@ to L#
---
llvm/lib/MC/MCAsmInfoGOFF.cpp | 4 ++--
llvm/test/CodeGen/SystemZ/zos-ada-relocations.ll | 6 +++---
llvm/test/CodeGen/SystemZ/zos-landingpad.ll | 2 +-
llvm/test/CodeGen/SystemZ/zos-ppa2.ll | 14 +++++++-------
llvm/test/CodeGen/SystemZ/zos-prologue-epilog.ll | 14 +++++++-------
llvm/test/MC/GOFF/ppa1.ll | 10 +++++-----
llvm/unittests/IR/ManglerTest.cpp | 2 +-
7 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/llvm/lib/MC/MCAsmInfoGOFF.cpp b/llvm/lib/MC/MCAsmInfoGOFF.cpp
index 81704ffe4b2460..3c81a466e82e79 100644
--- a/llvm/lib/MC/MCAsmInfoGOFF.cpp
+++ b/llvm/lib/MC/MCAsmInfoGOFF.cpp
@@ -21,7 +21,7 @@ void MCAsmInfoGOFF::anchor() {}
MCAsmInfoGOFF::MCAsmInfoGOFF() {
Data64bitsDirective = "\t.quad\t";
HasDotTypeDotSizeDirective = false;
- PrivateGlobalPrefix = "@@";
- PrivateLabelPrefix = "@";
+ PrivateGlobalPrefix = "L#";
+ PrivateLabelPrefix = "L#";
ZeroDirective = "\t.space\t";
}
diff --git a/llvm/test/CodeGen/SystemZ/zos-ada-relocations.ll b/llvm/test/CodeGen/SystemZ/zos-ada-relocations.ll
index e25246917ec099..db67ac57818680 100644
--- a/llvm/test/CodeGen/SystemZ/zos-ada-relocations.ll
+++ b/llvm/test/CodeGen/SystemZ/zos-ada-relocations.ll
@@ -56,9 +56,9 @@ entry:
declare signext i32 @callout(i32 signext)
; CHECK: .section ".ada"
-; CHECK: .set @@DoFunc at indirect0, DoFunc
-; CHECK: .indirect_symbol @@DoFunc at indirect0
-; CHECK: .quad V(@@DoFunc at indirect0) * Offset 0 pointer to function descriptor DoFunc
+; CHECK: .set L#DoFunc at indirect0, DoFunc
+; CHECK: .indirect_symbol L#DoFunc at indirect0
+; CHECK: .quad V(L#DoFunc at indirect0) * Offset 0 pointer to function descriptor DoFunc
; CHECK: .quad R(Caller) * Offset 8 function descriptor of Caller
; CHECK: .quad V(Caller)
; CHECK: .quad A(i2) * Offset 24 pointer to data symbol i2
diff --git a/llvm/test/CodeGen/SystemZ/zos-landingpad.ll b/llvm/test/CodeGen/SystemZ/zos-landingpad.ll
index 7f3214d574242b..9db10114e9795f 100644
--- a/llvm/test/CodeGen/SystemZ/zos-landingpad.ll
+++ b/llvm/test/CodeGen/SystemZ/zos-landingpad.ll
@@ -19,7 +19,7 @@ done:
lpad:
%0 = landingpad { ptr, i32 } cleanup
; The Exception Pointer is %r1; the Exception Selector, %r2.
-; CHECK: @BB{{[^%]*}} %lpad
+; CHECK: L#BB{{[^%]*}} %lpad
; CHECK-DAG: stg 1, {{.*}}
; CHECK-DAG: st 2, {{.*}}
%1 = extractvalue { ptr, i32 } %0, 0
diff --git a/llvm/test/CodeGen/SystemZ/zos-ppa2.ll b/llvm/test/CodeGen/SystemZ/zos-ppa2.ll
index 60580aeb6d83cc..189b5a3757ee07 100644
--- a/llvm/test/CodeGen/SystemZ/zos-ppa2.ll
+++ b/llvm/test/CodeGen/SystemZ/zos-ppa2.ll
@@ -2,24 +2,24 @@
; REQUIRES: systemz-registered-target
; CHECK: .section ".ppa2"
-; CHECK: @@PPA2:
+; CHECK: L#PPA2:
; CHECK: .byte 3
; CHECK: .byte 231
; CHECK: .byte 34
; CHECK: .byte 4
-; CHECK: .long CELQSTRT-@@PPA2
+; CHECK: .long CELQSTRT-L#PPA2
; CHECK: .long 0
-; CHECK: .long @@DVS-@@PPA2
+; CHECK: .long L#DVS-L#PPA2
; CHECK: .long 0
; CHECK: .byte 129
; CHECK: .byte 0
; CHECK: .short 0
-; CHECK: @@DVS:
+; CHECK: L#DVS:
; CHECK: .ascii "\361\371\367\360\360\361\360\361\360\360\360\360\360\360"
; CHECK: .short 0
-; CHECK: .quad @@PPA2-CELQSTRT * A(PPA2-CELQSTRT)
-; CHECK: @@PPA1_void_test_0:
-; CHECK: .long @@PPA2-@@PPA1_void_test_0 * Offset to PPA2
+; CHECK: .quad L#PPA2-CELQSTRT * A(PPA2-CELQSTRT)
+; CHECK: L#PPA1_void_test_0:
+; CHECK: .long L#PPA2-L#PPA1_void_test_0 * Offset to PPA2
; CHECK: .section "B_IDRL"
; CHECK: .byte 0
; CHECK: .byte 3
diff --git a/llvm/test/CodeGen/SystemZ/zos-prologue-epilog.ll b/llvm/test/CodeGen/SystemZ/zos-prologue-epilog.ll
index 8c0411629da7d2..d3e5823fcb1fe7 100644
--- a/llvm/test/CodeGen/SystemZ/zos-prologue-epilog.ll
+++ b/llvm/test/CodeGen/SystemZ/zos-prologue-epilog.ll
@@ -15,7 +15,7 @@
; CHECK64: aghi 4, 192
; CHECK64: b 2(7)
-; CHECK64: @@PPA1_func0_0:
+; CHECK64: L#PPA1_func0_0:
; CHECK64: .short 0 * Length/4 of Parms
define void @func0() {
call i64 (i64) @fun(i64 10)
@@ -31,7 +31,7 @@ define void @func0() {
; CHECK64: aghi 4, 160
; CHECK64: b 2(7)
-; CHECK64: @@PPA1_func1_0:
+; CHECK64: L#PPA1_func1_0:
; CHECK64: .short 2 * Length/4 of Parms
define void @func1(ptr %ptr) {
%l01 = load volatile i64, ptr %ptr
@@ -336,16 +336,16 @@ define void @large_stack0() {
; CHECK64: lgr 0, 3
; CHECK64: llgt 3, 1208
; CHECK64: cg 4, 64(3)
-; CHECK64: jhe @BB7_2
+; CHECK64: jhe L#BB7_2
; CHECK64: %bb.1:
; CHECK64: lg 3, 72(3)
; CHECK64: basr 3, 3
; CHECK64: bcr 0, 7
-; CHECK64: @BB7_2:
+; CHECK64: L#BB7_2:
; CHECK64: stmg 6, 7, 2064(4)
; CHECK64: lgr 3, 0
-; CHECK64: @@PPA1_large_stack1_0:
+; CHECK64: L#PPA1_large_stack1_0:
; CHECK64: .short 6 * Length/4 of Parms
define void @large_stack1(i64 %n1, i64 %n2, i64 %n3) {
%arr = alloca [131072 x i64], align 8
@@ -361,12 +361,12 @@ define void @large_stack1(i64 %n1, i64 %n2, i64 %n3) {
; CHECK64: agfi 4, -1048768
; CHECK64: llgt 3, 1208
; CHECK64: cg 4, 64(3)
-; CHECK64: jhe @BB8_2
+; CHECK64: jhe L#BB8_2
; CHECK64: %bb.1:
; CHECK64: lg 3, 72(3)
; CHECK64: basr 3, 3
; CHECK64: bcr 0, 7
-; CHECK64: @BB8_2:
+; CHECK64: L#BB8_2:
; CHECK64: lgr 3, 0
; CHECK64: lg 3, 2192(3)
; CHECK64: stmg 4, 12, 2048(4)
diff --git a/llvm/test/MC/GOFF/ppa1.ll b/llvm/test/MC/GOFF/ppa1.ll
index 40fc9e93780db6..13971c7ec8e72d 100644
--- a/llvm/test/MC/GOFF/ppa1.ll
+++ b/llvm/test/MC/GOFF/ppa1.ll
@@ -1,7 +1,7 @@
; RUN: llc -mtriple s390x-ibm-zos < %s | FileCheck %s
; REQUIRES: systemz-registered-target
-; CHECK: @@EPM_void_test_0: * @void_test
+; CHECK: L#EPM_void_test_0: * @void_test
; CHECK: * XPLINK Routine Layout Entry
; CHECK: .long 12779717 * Eyecatcher 0x00C300C500C500
; CHECK: .short 197
@@ -11,9 +11,9 @@
; CHECK: * Entry Flags
; CHECK: * Bit 1: 1 = Leaf function
; CHECK: * Bit 2: 0 = Does not use alloca
-; CHECK: @@func_end0:
+; CHECK: L#func_end0:
; CHECK: .section ".ppa1"
-; CHECK: @@PPA1_void_test_0: * PPA1
+; CHECK: L#PPA1_void_test_0: * PPA1
; CHECK: .byte 2 * Version
; CHECK: .byte 206 * LE Signature X'CE'
; CHECK: .short 0 * Saved GPR Mask
@@ -25,8 +25,8 @@
; CHECK: .byte 0 * PPA1 Flags 3
; CHECK: .byte 129 * PPA1 Flags 4
; CHECK: .short 0 * Length/4 of Parms
-; CHECK: .long @@func_end0-@@EPM_void_test_0 * Length of Code
-; CHECK: .long @@EPM_void_test_0-@@PPA1_void_test_0
+; CHECK: .long L#func_end0-L#EPM_void_test_0 * Length of Code
+; CHECK: .long L#EPM_void_test_0-L#PPA1_void_test_0
; CHECK: .section ".text"
; CHECK: * -- End function
define void @void_test() {
diff --git a/llvm/unittests/IR/ManglerTest.cpp b/llvm/unittests/IR/ManglerTest.cpp
index 8ad95a83b6928c..f2b78a1f987694 100644
--- a/llvm/unittests/IR/ManglerTest.cpp
+++ b/llvm/unittests/IR/ManglerTest.cpp
@@ -171,7 +171,7 @@ TEST(ManglerTest, GOFF) {
"foo");
EXPECT_EQ(mangleFunc("foo", llvm::GlobalValue::PrivateLinkage,
llvm::CallingConv::C, Mod, Mang),
- "@foo");
+ "L#foo");
}
} // end anonymous namespace
>From 5276ef6d152edf9f3fdec4056209565ca467202d Mon Sep 17 00:00:00 2001
From: Neumann Hon <neumann.hon at ibm.com>
Date: Tue, 19 Mar 2024 01:27:45 -0400
Subject: [PATCH 2/4] Forgot to update for mangling too
---
llvm/include/llvm/IR/DataLayout.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/include/llvm/IR/DataLayout.h b/llvm/include/llvm/IR/DataLayout.h
index 71f7f51d8ee431..d14adfe1590be5 100644
--- a/llvm/include/llvm/IR/DataLayout.h
+++ b/llvm/include/llvm/IR/DataLayout.h
@@ -337,7 +337,7 @@ class DataLayout {
case MM_WinCOFF:
return ".L";
case MM_GOFF:
- return "@";
+ return "L#";
case MM_Mips:
return "$";
case MM_MachO:
>From 67c41563a3d34c5020796e95cccdba2b34c9f6d9 Mon Sep 17 00:00:00 2001
From: Neumann Hon <neumann.hon at ibm.com>
Date: Tue, 19 Mar 2024 10:03:13 -0400
Subject: [PATCH 3/4] Add more testcase updates
---
llvm/test/CodeGen/SystemZ/call-zos-01.ll | 14 +++++++-------
llvm/test/CodeGen/SystemZ/call-zos-i128.ll | 4 ++--
llvm/test/CodeGen/SystemZ/call-zos-vararg.ll | 6 +++---
3 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/llvm/test/CodeGen/SystemZ/call-zos-01.ll b/llvm/test/CodeGen/SystemZ/call-zos-01.ll
index 77776861186ba4..fc7a85caa37eb0 100644
--- a/llvm/test/CodeGen/SystemZ/call-zos-01.ll
+++ b/llvm/test/CodeGen/SystemZ/call-zos-01.ll
@@ -104,7 +104,7 @@ entry:
}
; CHECK-LABEL: call_double:
-; CHECK: larl [[GENREG:[0-9]+]], @{{CPI[0-9]+_[0-9]+}}
+; CHECK: larl [[GENREG:[0-9]+]], L#{{CPI[0-9]+_[0-9]+}}
; CHECK-NEXT: ld 0, 0([[GENREG]])
define double @call_double() {
entry:
@@ -113,7 +113,7 @@ entry:
}
; CHECK-LABEL: call_longdouble:
-; CHECK: larl [[GENREG:[0-9]+]], @{{CPI[0-9]+_[0-9]+}}
+; CHECK: larl [[GENREG:[0-9]+]], L#{{CPI[0-9]+_[0-9]+}}
; CHECK-NEXT: ld 0, 0([[GENREG]])
; CHECK-NEXT: ld 2, 8([[GENREG]])
define fp128 @call_longdouble() {
@@ -123,7 +123,7 @@ entry:
}
; CHECK-LABEL: call_floats0
-; CHECK: larl [[GENREG:[0-9]+]], @{{CPI[0-9]+_[0-9]+}}
+; CHECK: larl [[GENREG:[0-9]+]], L#{{CPI[0-9]+_[0-9]+}}
; CHECK-NEXT: ld 1, 0([[GENREG]])
; CHECK-NEXT: ld 3, 8([[GENREG]])
; CHECK: lxr 5, 0
@@ -146,7 +146,7 @@ entry:
}
; CHECK-LABEL: pass_float:
-; CHECK: larl 1, @{{CPI[0-9]+_[0-9]+}}
+; CHECK: larl 1, L#{{CPI[0-9]+_[0-9]+}}
; CHECK: aeb 0, 0(1)
define float @pass_float(float %arg) {
entry:
@@ -155,7 +155,7 @@ entry:
}
; CHECK-LABEL: pass_double:
-; CHECK: larl 1, @{{CPI[0-9]+_[0-9]+}}
+; CHECK: larl 1, L#{{CPI[0-9]+_[0-9]+}}
; CHECK: adb 0, 0(1)
define double @pass_double(double %arg) {
entry:
@@ -164,7 +164,7 @@ entry:
}
; CHECK-LABEL: pass_longdouble
-; CHECK: larl 1, @{{CPI[0-9]+_[0-9]+}}
+; CHECK: larl 1, L#{{CPI[0-9]+_[0-9]+}}
; CHECK: lxdb 1, 0(1)
; CHECK: axbr 0, 1
define fp128 @pass_longdouble(fp128 %arg) {
@@ -174,7 +174,7 @@ entry:
}
; CHECK-LABEL: pass_floats0
-; CHECK: larl 1, @{{CPI[0-9]+_[0-9]+}}
+; CHECK: larl 1, L#{{CPI[0-9]+_[0-9]+}}
; CHECK: axbr 0, 4
; CHECK: axbr 1, 0
; CHECK: cxbr 1, 5
diff --git a/llvm/test/CodeGen/SystemZ/call-zos-i128.ll b/llvm/test/CodeGen/SystemZ/call-zos-i128.ll
index ccdac161d08a94..775483374a32f3 100644
--- a/llvm/test/CodeGen/SystemZ/call-zos-i128.ll
+++ b/llvm/test/CodeGen/SystemZ/call-zos-i128.ll
@@ -3,10 +3,10 @@
; RUN: llc < %s -mtriple=s390x-ibm-zos -mcpu=z13 | FileCheck %s
; CHECK-LABEL: call_i128:
-; CHECK-DAG: larl 1, @CPI0_0
+; CHECK-DAG: larl 1, L#CPI0_0
; CHECK-DAG: vl 0, 0(1), 3
; CHECK-DAG: vst 0, 2256(4), 3
-; CHECK-DAG: larl 1, @CPI0_1
+; CHECK-DAG: larl 1, L#CPI0_1
; CHECK-DAG: vl 0, 0(1), 3
; CHECK-DAG: vst 0, 2272(4), 3
; CHECK-DAG: la 1, 2288(4)
diff --git a/llvm/test/CodeGen/SystemZ/call-zos-vararg.ll b/llvm/test/CodeGen/SystemZ/call-zos-vararg.ll
index bde59a6be78227..8290dbfe23104f 100644
--- a/llvm/test/CodeGen/SystemZ/call-zos-vararg.ll
+++ b/llvm/test/CodeGen/SystemZ/call-zos-vararg.ll
@@ -108,7 +108,7 @@ define i64 @call_vararg_both0(i64 %arg0, double %arg1) {
; CHECK-LABEL: call_vararg_long_double0:
; CHECK: stmg 6, 7, 1872(4)
; CHECK-NEXT: aghi 4, -192
-; CHECK-NEXT: larl 1, @CPI5_0
+; CHECK-NEXT: larl 1, L#CPI5_0
; CHECK-NEXT: ld 0, 0(1)
; CHECK-NEXT: ld 2, 8(1)
; CHECK-NEXT: lg 6, 8(5)
@@ -202,7 +202,7 @@ define void @call_vec_vararg_test0(<2 x double> %v) {
}
; ARCH12-LABEL: call_vec_vararg_test1
-; ARCH12: larl 1, @CPI10_0
+; ARCH12: larl 1, L#CPI10_0
; ARCH12: vl 0, 0(1), 3
; ARCH12: vlgvg 3, 24, 0
; ARCH12: vrepg 2, 0, 1
@@ -294,7 +294,7 @@ entry:
; CHECK-NEXT: aghi 4, -192
; CHECK-NEXT: lg 6, 72(5)
; CHECK-NEXT: lg 5, 64(5)
-; CHECK-NEXT: larl 1, @CPI17_0
+; CHECK-NEXT: larl 1, L#CPI17_0
; CHECK-NEXT: le 0, 0(1)
; CHECK-NEXT: llihf 0, 1073692672
; CHECK-NEXT: llihh 2, 16384
>From 518dc4d58c3bddac8eabe612b5b9dc22fff6d4ac Mon Sep 17 00:00:00 2001
From: Neumann Hon <neumann.hon at ibm.com>
Date: Tue, 19 Mar 2024 10:36:16 -0400
Subject: [PATCH 4/4] one more tc from clang
---
clang/test/CodeGen/SystemZ/systemz-ppa2.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/clang/test/CodeGen/SystemZ/systemz-ppa2.c b/clang/test/CodeGen/SystemZ/systemz-ppa2.c
index 0ff4cba5edfb6c..26b068ff03d539 100644
--- a/clang/test/CodeGen/SystemZ/systemz-ppa2.c
+++ b/clang/test/CodeGen/SystemZ/systemz-ppa2.c
@@ -13,14 +13,14 @@
// REQUIRES: systemz-registered-target
// RUN: %clang_cc1 -triple s390x-ibm-zos -xc -S -o - %s | FileCheck %s --check-prefix CHECK-C
-// CHECK-C: [[PPA2:(.L)|(@@)PPA2]]:
+// CHECK-C: [[PPA2:(.L)|(L#)PPA2]]:
// CHECK-C-NEXT: .byte 3{{[[:space:]]*}}.byte 0
// CHECK-C-NEXT: .byte 34{{$}}
// CHECK-C-NEXT: .byte {{4}}
// CHECK-C-NEXT: .long {{(CELQSTRT)}}-[[PPA2]]
// RUN: %clang_cc1 -triple s390x-ibm-zos -xc++ -S -o - %s | FileCheck %s --check-prefix CHECK-CXX
-// CHECK-CXX: [[PPA2:(.L)|(@@)PPA2]]:
+// CHECK-CXX: [[PPA2:(.L)|(L#)PPA2]]:
// CHECK-CXX-NEXT: .byte 3{{[[:space:]]*}}.byte 1
// CHECK-CXX-NEXT: .byte 34{{$}}
// CHECK-CXX-NEXT: .byte {{4}}
More information about the llvm-commits
mailing list