Skip to content

Commit 0a4a8be

Browse files
[PowerPC] Turn string pooling on by default. (#65628)
This patch turns the string pooling pass on by default. Some tests are updated as required.
1 parent 6d1c183 commit 0a4a8be

File tree

7 files changed

+33
-29
lines changed

7 files changed

+33
-29
lines changed

llvm/lib/Target/PowerPC/PPCTargetMachine.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ static cl::opt<bool>
103103
static cl::opt<bool> MergeStringPool(
104104
"ppc-merge-string-pool",
105105
cl::desc("Merge all of the strings in a module into one pool"),
106-
cl::init(false), cl::Hidden);
106+
cl::init(true), cl::Hidden);
107107

108108
static cl::opt<bool> EnablePPCGenScalarMASSEntries(
109109
"enable-ppc-gen-scalar-mass", cl::init(false),

llvm/test/CodeGen/PowerPC/O3-pipeline.ll

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@
7171
; CHECK-NEXT: CodeGen Prepare
7272
; CHECK-NEXT: Dominator Tree Construction
7373
; CHECK-NEXT: Exception handling preparation
74+
; CHECK-NEXT: PPC Merge String Pool
75+
; CHECK-NEXT: FunctionPass Manager
76+
; CHECK-NEXT: Dominator Tree Construction
7477
; CHECK-NEXT: Natural Loop Information
7578
; CHECK-NEXT: Scalar Evolution Analysis
7679
; CHECK-NEXT: Prepare loop for ppc preferred instruction forms

llvm/test/CodeGen/PowerPC/PR35812-neg-cmpxchg.ll

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,19 +39,21 @@ define signext i32 @main() nounwind {
3939
; CHECK-NEXT: cmplwi 3, 234
4040
; CHECK-NEXT: bne 0, .LBB0_7
4141
; CHECK-NEXT: # %bb.5: # %L.B0001
42-
; CHECK-NEXT: addis 3, 2, .Lstr.2@toc@ha
43-
; CHECK-NEXT: addi 3, 3, .Lstr.2@toc@l
42+
; CHECK-NEXT: addis 3, 2, .L__ModuleStringPool@toc@ha
43+
; CHECK-NEXT: addi 3, 3, .L__ModuleStringPool@toc@l
4444
; CHECK-NEXT: bl puts
4545
; CHECK-NEXT: nop
4646
; CHECK-NEXT: li 3, 0
4747
; CHECK-NEXT: b .LBB0_9
4848
; CHECK-NEXT: .LBB0_6: # %L.B0003
49-
; CHECK-NEXT: addis 3, 2, .Lstr@toc@ha
50-
; CHECK-NEXT: addi 3, 3, .Lstr@toc@l
49+
; CHECK-NEXT: addis 3, 2, .L__ModuleStringPool@toc@ha
50+
; CHECK-NEXT: addi 3, 3, .L__ModuleStringPool@toc@l
51+
; CHECK-NEXT: addi 3, 3, 7
5152
; CHECK-NEXT: b .LBB0_8
5253
; CHECK-NEXT: .LBB0_7: # %L.B0005
53-
; CHECK-NEXT: addis 3, 2, .Lstr.1@toc@ha
54-
; CHECK-NEXT: addi 3, 3, .Lstr.1@toc@l
54+
; CHECK-NEXT: addis 3, 2, .L__ModuleStringPool@toc@ha
55+
; CHECK-NEXT: addi 3, 3, .L__ModuleStringPool@toc@l
56+
; CHECK-NEXT: addi 3, 3, 53
5557
; CHECK-NEXT: .LBB0_8: # %L.B0003
5658
; CHECK-NEXT: bl puts
5759
; CHECK-NEXT: nop
@@ -105,19 +107,21 @@ define signext i32 @main() nounwind {
105107
; CHECK-P7-NEXT: cmplwi 3, 234
106108
; CHECK-P7-NEXT: bne 0, .LBB0_7
107109
; CHECK-P7-NEXT: # %bb.5: # %L.B0001
108-
; CHECK-P7-NEXT: addis 3, 2, .Lstr.2@toc@ha
109-
; CHECK-P7-NEXT: addi 3, 3, .Lstr.2@toc@l
110+
; CHECK-P7-NEXT: addis 3, 2, .L__ModuleStringPool@toc@ha
111+
; CHECK-P7-NEXT: addi 3, 3, .L__ModuleStringPool@toc@l
110112
; CHECK-P7-NEXT: bl puts
111113
; CHECK-P7-NEXT: nop
112114
; CHECK-P7-NEXT: li 3, 0
113115
; CHECK-P7-NEXT: b .LBB0_9
114116
; CHECK-P7-NEXT: .LBB0_6: # %L.B0003
115-
; CHECK-P7-NEXT: addis 3, 2, .Lstr@toc@ha
116-
; CHECK-P7-NEXT: addi 3, 3, .Lstr@toc@l
117+
; CHECK-P7-NEXT: addis 3, 2, .L__ModuleStringPool@toc@ha
118+
; CHECK-P7-NEXT: addi 3, 3, .L__ModuleStringPool@toc@l
119+
; CHECK-P7-NEXT: addi 3, 3, 7
117120
; CHECK-P7-NEXT: b .LBB0_8
118121
; CHECK-P7-NEXT: .LBB0_7: # %L.B0005
119-
; CHECK-P7-NEXT: addis 3, 2, .Lstr.1@toc@ha
120-
; CHECK-P7-NEXT: addi 3, 3, .Lstr.1@toc@l
122+
; CHECK-P7-NEXT: addis 3, 2, .L__ModuleStringPool@toc@ha
123+
; CHECK-P7-NEXT: addi 3, 3, .L__ModuleStringPool@toc@l
124+
; CHECK-P7-NEXT: addi 3, 3, 53
121125
; CHECK-P7-NEXT: .LBB0_8: # %L.B0003
122126
; CHECK-P7-NEXT: bl puts
123127
; CHECK-P7-NEXT: nop

llvm/test/CodeGen/PowerPC/licm-remat.ll

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,10 @@ declare void @llvm.memcpy.p0.p0.i64(ptr nocapture writeonly, ptr nocapture reado
2020
define linkonce_odr void @ZN6snappyDecompressor_(ptr %this, ptr %writer) {
2121
; CHECK-LABEL: ZN6snappyDecompressor_:
2222
; CHECK: # %bb.0: # %entry
23-
; CHECK: addis 3, 2, _ZN6snappy8internalL8wordmaskE@toc@ha
24-
; CHECK-DAG: addi 25, 3, _ZN6snappy8internalL8wordmaskE@toc@l
25-
; CHECK-DAG: addis 5, 2, _ZN6snappy8internalL10char_tableE@toc@ha
26-
; CHECK-DAG: addi 24, 5, _ZN6snappy8internalL10char_tableE@toc@l
23+
; CHECK: addis 3, 2, .L__ModuleStringPool@toc@ha
24+
; CHECK: addi 25, 3, .L__ModuleStringPool@toc@l
2725
; CHECK: .LBB0_2: # %for.cond
28-
; CHECK-NOT: addis {{[0-9]+}}, 2, _ZN6snappy8internalL8wordmaskE@toc@ha
29-
; CHECK-NOT: addis {{[0-9]+}}, 2, _ZN6snappy8internalL10char_tableE@toc@ha
26+
; CHECK-NOT: addis {{[0-9]+}}, 2, .L__ModuleStringPool@toc@ha
3027
; CHECK: bctrl
3128
entry:
3229
%ip_limit_ = getelementptr inbounds %"class.snappy::SnappyDecompressor", ptr %this, i64 0, i32 2

llvm/test/CodeGen/PowerPC/mergeable-string-pool-large.ll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2
22
; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr8 \
3-
; RUN: -ppc-merge-string-pool=true -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefixes=AIX32
3+
; RUN: -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefixes=AIX32
44
; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr8 \
5-
; RUN: -ppc-merge-string-pool=true -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefixes=AIX64
5+
; RUN: -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefixes=AIX64
66
; RUN: llc -verify-machineinstrs -mtriple powerpc64-unknown-linux -mcpu=pwr8 \
7-
; RUN: -ppc-merge-string-pool=true -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefixes=LINUX64BE
7+
; RUN: -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefixes=LINUX64BE
88
; RUN: llc -verify-machineinstrs -mtriple powerpc64le-unknown-linux -mcpu=pwr8 \
9-
; RUN: -ppc-merge-string-pool=true -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefixes=LINUX64LE
9+
; RUN: -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefixes=LINUX64LE
1010

1111
@.str.1 = private unnamed_addr constant [12 x i8] c"str1_STRING\00", align 1
1212
@__const.IntArray0 = private unnamed_addr constant [7 x i32] [i32 5, i32 7, i32 9, i32 11, i32 17, i32 1235, i32 32], align 4

llvm/test/CodeGen/PowerPC/mergeable-string-pool.ll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr8 \
2-
; RUN: -ppc-merge-string-pool=true -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefixes=AIX32,AIXDATA
2+
; RUN: -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefixes=AIX32,AIXDATA
33
; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr8 \
4-
; RUN: -ppc-merge-string-pool=true -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefixes=AIX64,AIXDATA
4+
; RUN: -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefixes=AIX64,AIXDATA
55
; RUN: llc -verify-machineinstrs -mtriple powerpc64-unknown-linux -mcpu=pwr8 \
6-
; RUN: -ppc-merge-string-pool=true -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefixes=LINUX64BE,LINUXDATA
6+
; RUN: -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefixes=LINUX64BE,LINUXDATA
77
; RUN: llc -verify-machineinstrs -mtriple powerpc64le-unknown-linux -mcpu=pwr8 \
8-
; RUN: -ppc-merge-string-pool=true -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefixes=LINUX64LE,LINUXDATA
8+
; RUN: -ppc-asm-full-reg-names < %s | FileCheck %s --check-prefixes=LINUX64LE,LINUXDATA
99

1010

1111
;; This @GLOBALSTRING is a user of @.str which causes @.str to not get pooled.

llvm/test/CodeGen/PowerPC/toc-load-sched-bug.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,8 @@ entry:
164164
; CHECK: .globl _ZN4llvm11ParseIRFileERKSsRNS_12SMDiagnosticERNS_11LLVMContextE
165165
; CHECK: bctrl
166166
; CHECK: ld 2, 24(1)
167-
; CHECK: addis [[REG:[0-9]+]], 2, .L.str@toc@ha
168-
; CHECK: addi {{[0-9]+}}, [[REG]], .L.str@toc@l
167+
; CHECK: addis [[REG:[0-9]+]], 2, .L__ModuleStringPool@toc@ha
168+
; CHECK: addi {{[0-9]+}}, [[REG]], .L__ModuleStringPool@toc@l
169169
; CHECK: bl _ZNSs6insertEmPKcm
170170
%.atomicdst.i.i.i.i.i46 = alloca i32, align 4
171171
%ref.tmp.i.i47 = alloca %"class.std::allocator", align 1

0 commit comments

Comments
 (0)