Skip to content

Commit

Permalink
[GOFF][z/OS] Change PrivateGlobalPrefix and PrivateLabelPrefix to be …
Browse files Browse the repository at this point in the history
…L# (#85730)

The current values for PrivateGlobalPrefix and PrivateLabelPrefix (@@
and @ respectively) are, in hindsight, poor choices for multiple
reasons:

First, there exist externally visible routines from the language
environment that begin with @@. These functions are certainly not
local/private by any means and they should not share a prefix with
private globals.

Secondly, both private globals and private labels should be handled the
same way by GOFF, so it doesn't make much sense for them to have
separate prefixes. GOFF remains the only file format where these are
different and there is no reason for that to be the case
  • Loading branch information
Everybody0523 committed Mar 20, 2024
1 parent 05bde30 commit 5fb2797
Show file tree
Hide file tree
Showing 12 changed files with 41 additions and 41 deletions.
4 changes: 2 additions & 2 deletions clang/test/CodeGen/SystemZ/systemz-ppa2.c
Original file line number Diff line number Diff line change
Expand Up @@ -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}}
Expand Down
2 changes: 1 addition & 1 deletion llvm/include/llvm/IR/DataLayout.h
Original file line number Diff line number Diff line change
Expand Up @@ -337,7 +337,7 @@ class DataLayout {
case MM_WinCOFF:
return ".L";
case MM_GOFF:
return "@";
return "L#";
case MM_Mips:
return "$";
case MM_MachO:
Expand Down
4 changes: 2 additions & 2 deletions llvm/lib/MC/MCAsmInfoGOFF.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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";
}
14 changes: 7 additions & 7 deletions llvm/test/CodeGen/SystemZ/call-zos-01.ll
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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() {
Expand All @@ -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
Expand All @@ -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:
Expand All @@ -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:
Expand All @@ -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) {
Expand All @@ -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
Expand Down
4 changes: 2 additions & 2 deletions llvm/test/CodeGen/SystemZ/call-zos-i128.ll
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
6 changes: 3 additions & 3 deletions llvm/test/CodeGen/SystemZ/call-zos-vararg.ll
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
6 changes: 3 additions & 3 deletions llvm/test/CodeGen/SystemZ/zos-ada-relocations.ll
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,9 @@ entry:
declare signext i32 @callout(i32 signext)

; CHECK: .section ".ada"
; CHECK: .set @@DoFunc@indirect0, DoFunc
; CHECK: .indirect_symbol @@DoFunc@indirect0
; CHECK: .quad V(@@DoFunc@indirect0) * Offset 0 pointer to function descriptor DoFunc
; CHECK: .set L#DoFunc@indirect0, DoFunc
; CHECK: .indirect_symbol L#DoFunc@indirect0
; CHECK: .quad V(L#DoFunc@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
Expand Down
2 changes: 1 addition & 1 deletion llvm/test/CodeGen/SystemZ/zos-landingpad.ll
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
14 changes: 7 additions & 7 deletions llvm/test/CodeGen/SystemZ/zos-ppa2.ll
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
14 changes: 7 additions & 7 deletions llvm/test/CodeGen/SystemZ/zos-prologue-epilog.ll
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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)
Expand Down
10 changes: 5 additions & 5 deletions llvm/test/MC/GOFF/ppa1.ll
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand All @@ -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() {
Expand Down
2 changes: 1 addition & 1 deletion llvm/unittests/IR/ManglerTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 5fb2797

Please sign in to comment.