Bug 1874684 - Part 13: Pass DateDuration to AddDate/CalendarDateAdd. r=sfink
[gecko.git] / build / build-clang / revert-llvmorg-16-init-11301-g163bb6d64e5f_clang_17.patch
blob4e217dcf3dcdea16886fccf830770f7a3af9bf31
1 From cf00b30288c4c81b2c6a5af01c38f236148777a0 Mon Sep 17 00:00:00 2001
2 From: Mike Hommey <mh@glandium.org>
3 Date: Tue, 28 Mar 2023 06:13:36 +0900
4 Subject: [PATCH] Revert "[Passes][VectorCombine] enable early run generally
5 and try load folds"
7 This reverts commit 163bb6d64e5f1220777c3ec2a8b58c0666a74d91.
8 It causes various reftest regressions.
9 ---
10 llvm/lib/Passes/PassBuilderPipelines.cpp | 7 ++++---
11 llvm/lib/Transforms/Vectorize/VectorCombine.cpp | 8 ++------
12 llvm/test/Other/new-pm-defaults.ll | 2 +-
13 .../Other/new-pm-thinlto-postlink-defaults.ll | 1 -
14 .../Other/new-pm-thinlto-postlink-pgo-defaults.ll | 1 -
15 .../new-pm-thinlto-postlink-samplepgo-defaults.ll | 1 -
16 .../Other/new-pm-thinlto-prelink-pgo-defaults.ll | 1 -
17 .../new-pm-thinlto-prelink-samplepgo-defaults.ll | 1 -
18 .../PhaseOrdering/X86/vec-load-combine.ll | 15 +++++++++++----
19 9 files changed, 18 insertions(+), 19 deletions(-)
21 diff --git a/llvm/lib/Passes/PassBuilderPipelines.cpp b/llvm/lib/Passes/PassBuilderPipelines.cpp
22 index eed29c25714b..b925448cd6c0 100644
23 --- a/llvm/lib/Passes/PassBuilderPipelines.cpp
24 +++ b/llvm/lib/Passes/PassBuilderPipelines.cpp
25 @@ -611,9 +611,10 @@ PassBuilder::buildFunctionSimplificationPipeline(OptimizationLevel Level,
26 // Delete small array after loop unroll.
27 FPM.addPass(SROAPass(SROAOptions::ModifyCFG));
29 - // Try vectorization/scalarization transforms that are both improvements
30 - // themselves and can allow further folds with GVN and InstCombine.
31 - FPM.addPass(VectorCombinePass(/*TryEarlyFoldsOnly=*/true));
32 + // The matrix extension can introduce large vector operations early, which can
33 + // benefit from running vector-combine early on.
34 + if (EnableMatrix)
35 + FPM.addPass(VectorCombinePass(/*TryEarlyFoldsOnly=*/true));
37 // Eliminate redundancies.
38 FPM.addPass(MergedLoadStoreMotionPass());
39 diff --git a/llvm/lib/Transforms/Vectorize/VectorCombine.cpp b/llvm/lib/Transforms/Vectorize/VectorCombine.cpp
40 index 2e489757ebc1..810a9f92bb7a 100644
41 --- a/llvm/lib/Transforms/Vectorize/VectorCombine.cpp
42 +++ b/llvm/lib/Transforms/Vectorize/VectorCombine.cpp
43 @@ -1720,12 +1720,6 @@ bool VectorCombine::run() {
44 // dispatching to folding functions if there's no chance of matching.
45 if (IsFixedVectorType) {
46 switch (Opcode) {
47 - case Instruction::InsertElement:
48 - MadeChange |= vectorizeLoadInsert(I);
49 - break;
50 - case Instruction::ShuffleVector:
51 - MadeChange |= widenSubvectorLoad(I);
52 - break;
53 case Instruction::Load:
54 MadeChange |= scalarizeLoadExtract(I);
55 break;
56 @@ -1754,9 +1748,11 @@ bool VectorCombine::run() {
57 if (IsFixedVectorType) {
58 switch (Opcode) {
59 case Instruction::InsertElement:
60 + MadeChange |= vectorizeLoadInsert(I);
61 MadeChange |= foldInsExtFNeg(I);
62 break;
63 case Instruction::ShuffleVector:
64 + MadeChange |= widenSubvectorLoad(I);
65 MadeChange |= foldShuffleOfBinops(I);
66 MadeChange |= foldSelectShuffle(I);
67 break;
68 diff --git a/llvm/test/Other/new-pm-defaults.ll b/llvm/test/Other/new-pm-defaults.ll
69 index 13612c3bb459..5f84d28af4a6 100644
70 --- a/llvm/test/Other/new-pm-defaults.ll
71 +++ b/llvm/test/Other/new-pm-defaults.ll
72 @@ -186,7 +186,7 @@
73 ; CHECK-O-NEXT: Running pass: LoopFullUnrollPass
74 ; CHECK-EP-LOOP-END-NEXT: Running pass: NoOpLoopPass
75 ; CHECK-O-NEXT: Running pass: SROAPass on foo
76 -; CHECK-O23SZ-NEXT: Running pass: VectorCombinePass
77 +; CHECK-MATRIX: Running pass: VectorCombinePass
78 ; CHECK-O23SZ-NEXT: Running pass: MergedLoadStoreMotionPass
79 ; CHECK-O23SZ-NEXT: Running pass: GVNPass
80 ; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis
81 diff --git a/llvm/test/Other/new-pm-thinlto-postlink-defaults.ll b/llvm/test/Other/new-pm-thinlto-postlink-defaults.ll
82 index 3f5d2d5b153d..ea07128c9f6a 100644
83 --- a/llvm/test/Other/new-pm-thinlto-postlink-defaults.ll
84 +++ b/llvm/test/Other/new-pm-thinlto-postlink-defaults.ll
85 @@ -159,7 +159,6 @@
86 ; CHECK-O-NEXT: Running pass: LoopDeletionPass
87 ; CHECK-O-NEXT: Running pass: LoopFullUnrollPass
88 ; CHECK-O-NEXT: Running pass: SROAPass on foo
89 -; CHECK-O23SZ-NEXT: Running pass: VectorCombinePass
90 ; CHECK-O23SZ-NEXT: Running pass: MergedLoadStoreMotionPass
91 ; CHECK-O23SZ-NEXT: Running pass: GVNPass
92 ; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis
93 diff --git a/llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
94 index 29021ceace54..43e943cb6011 100644
95 --- a/llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
96 +++ b/llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
97 @@ -121,7 +121,6 @@
98 ; CHECK-O-NEXT: Running pass: LoopDeletionPass
99 ; CHECK-O-NEXT: Running pass: LoopFullUnrollPass
100 ; CHECK-O-NEXT: Running pass: SROAPass on foo
101 -; CHECK-O23SZ-NEXT: Running pass: VectorCombinePass
102 ; CHECK-O23SZ-NEXT: Running pass: MergedLoadStoreMotionPass
103 ; CHECK-O23SZ-NEXT: Running pass: GVNPass
104 ; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis
105 diff --git a/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
106 index daf3141a1f2c..78914d1c23b2 100644
107 --- a/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
108 +++ b/llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
109 @@ -130,7 +130,6 @@
110 ; CHECK-O-NEXT: Running pass: LoopDeletionPass
111 ; CHECK-O-NEXT: Running pass: LoopFullUnrollPass
112 ; CHECK-O-NEXT: Running pass: SROAPass on foo
113 -; CHECK-O23SZ-NEXT: Running pass: VectorCombinePass
114 ; CHECK-O23SZ-NEXT: Running pass: MergedLoadStoreMotionPass
115 ; CHECK-O23SZ-NEXT: Running pass: GVNPass
116 ; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis
117 diff --git a/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
118 index bfe80902f806..5b62ba39add3 100644
119 --- a/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
120 +++ b/llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
121 @@ -160,7 +160,6 @@
122 ; CHECK-O-NEXT: Running pass: LoopDeletionPass
123 ; CHECK-O-NEXT: Running pass: LoopFullUnrollPass
124 ; CHECK-O-NEXT: Running pass: SROAPass on foo
125 -; CHECK-O23SZ-NEXT: Running pass: VectorCombinePass
126 ; CHECK-O23SZ-NEXT: Running pass: MergedLoadStoreMotionPass
127 ; CHECK-O23SZ-NEXT: Running pass: GVNPass
128 ; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis
129 diff --git a/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll b/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
130 index c7daf7aa46b1..17475423d696 100644
131 --- a/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
132 +++ b/llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
133 @@ -124,7 +124,6 @@
134 ; CHECK-O-NEXT: Running pass: IndVarSimplifyPass
135 ; CHECK-O-NEXT: Running pass: LoopDeletionPass
136 ; CHECK-O-NEXT: Running pass: SROAPass on foo
137 -; CHECK-O23SZ-NEXT: Running pass: VectorCombinePass
138 ; CHECK-O23SZ-NEXT: Running pass: MergedLoadStoreMotionPass
139 ; CHECK-O23SZ-NEXT: Running pass: GVNPass
140 ; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis
141 diff --git a/llvm/test/Transforms/PhaseOrdering/X86/vec-load-combine.ll b/llvm/test/Transforms/PhaseOrdering/X86/vec-load-combine.ll
142 index 77cbc70ff369..dd7164febea4 100644
143 --- a/llvm/test/Transforms/PhaseOrdering/X86/vec-load-combine.ll
144 +++ b/llvm/test/Transforms/PhaseOrdering/X86/vec-load-combine.ll
145 @@ -12,13 +12,20 @@ $getAt = comdat any
146 define dso_local noundef <4 x float> @ConvertVectors_ByRef(ptr noundef nonnull align 16 dereferenceable(16) %0) #0 {
147 ; SSE-LABEL: @ConvertVectors_ByRef(
148 ; SSE-NEXT: [[TMP2:%.*]] = load <4 x float>, ptr [[TMP0:%.*]], align 16
149 -; SSE-NEXT: [[TMP3:%.*]] = shufflevector <4 x float> [[TMP2]], <4 x float> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 2>
150 -; SSE-NEXT: ret <4 x float> [[TMP3]]
151 +; SSE-NEXT: [[TMP3:%.*]] = getelementptr inbounds [4 x float], ptr [[TMP0]], i64 0, i64 1
152 +; SSE-NEXT: [[TMP4:%.*]] = load <2 x float>, ptr [[TMP3]], align 4
153 +; SSE-NEXT: [[TMP5:%.*]] = shufflevector <2 x float> [[TMP4]], <2 x float> poison, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef>
154 +; SSE-NEXT: [[TMP6:%.*]] = shufflevector <4 x float> [[TMP2]], <4 x float> [[TMP5]], <4 x i32> <i32 0, i32 4, i32 5, i32 undef>
155 +; SSE-NEXT: [[TMP7:%.*]] = shufflevector <4 x float> [[TMP6]], <4 x float> [[TMP5]], <4 x i32> <i32 0, i32 1, i32 2, i32 5>
156 +; SSE-NEXT: ret <4 x float> [[TMP7]]
158 ; AVX-LABEL: @ConvertVectors_ByRef(
159 ; AVX-NEXT: [[TMP2:%.*]] = load <4 x float>, ptr [[TMP0:%.*]], align 16
160 -; AVX-NEXT: [[TMP3:%.*]] = shufflevector <4 x float> [[TMP2]], <4 x float> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 2>
161 -; AVX-NEXT: ret <4 x float> [[TMP3]]
162 +; AVX-NEXT: [[TMP3:%.*]] = getelementptr inbounds [4 x float], ptr [[TMP0]], i64 0, i64 2
163 +; AVX-NEXT: [[TMP4:%.*]] = load float, ptr [[TMP3]], align 8
164 +; AVX-NEXT: [[TMP5:%.*]] = insertelement <4 x float> [[TMP2]], float [[TMP4]], i64 2
165 +; AVX-NEXT: [[TMP6:%.*]] = insertelement <4 x float> [[TMP5]], float [[TMP4]], i64 3
166 +; AVX-NEXT: ret <4 x float> [[TMP6]]
168 %2 = alloca ptr, align 8
169 %3 = alloca <4 x float>, align 16
171 2.39.0.1.g6739ec1790