[llvm] r356259 - [ARM] Remove EarlyCSE from backend
Sam Parker via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 15 06:36:37 PDT 2019
Author: sam_parker
Date: Fri Mar 15 06:36:37 2019
New Revision: 356259
URL: http://llvm.org/viewvc/llvm-project?rev=356259&view=rev
Log:
[ARM] Remove EarlyCSE from backend
There is an issue with early CSE hitting an assert, so temporarily
remove the pass from the Arm backend.
Bug: https://bugs.llvm.org/show_bug.cgi?id=41081
Differential Revision: https://reviews.llvm.org/D59410
Modified:
llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp
llvm/trunk/test/CodeGen/ARM/O3-pipeline.ll
llvm/trunk/test/CodeGen/ARM/ParallelDSP/unroll-n-jam-smlad.ll
llvm/trunk/test/CodeGen/Thumb2/2010-06-21-TailMergeBug.ll
Modified: llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp?rev=356259&r1=356258&r2=356259&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp (original)
+++ llvm/trunk/lib/Target/ARM/ARMTargetMachine.cpp Fri Mar 15 06:36:37 2019
@@ -403,11 +403,9 @@ void ARMPassConfig::addIRPasses() {
TargetPassConfig::addIRPasses();
- // Run the parallel DSP pass and its helpers.
- if (getOptLevel() == CodeGenOpt::Aggressive) {
- addPass(createEarlyCSEPass());
+ // Run the parallel DSP pass.
+ if (getOptLevel() == CodeGenOpt::Aggressive)
addPass(createARMParallelDSPPass());
- }
// Match interleaved memory accesses to ldN/stN intrinsics.
if (TM->getOptLevel() != CodeGenOpt::None)
Modified: llvm/trunk/test/CodeGen/ARM/O3-pipeline.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/O3-pipeline.ll?rev=356259&r1=356258&r2=356259&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/ARM/O3-pipeline.ll (original)
+++ llvm/trunk/test/CodeGen/ARM/O3-pipeline.ll Fri Mar 15 06:36:37 2019
@@ -33,7 +33,6 @@
; CHECK: Scalarize Masked Memory Intrinsics
; CHECK: Expand reduction intrinsics
; CHECK: Dominator Tree Construction
-; CHECK: Early CSE
; CHECK: Natural Loop Information
; CHECK: Scalar Evolution Analysis
; CHECK: Basic Alias Analysis (stateless AA impl)
Modified: llvm/trunk/test/CodeGen/ARM/ParallelDSP/unroll-n-jam-smlad.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/ParallelDSP/unroll-n-jam-smlad.ll?rev=356259&r1=356258&r2=356259&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/ARM/ParallelDSP/unroll-n-jam-smlad.ll (original)
+++ llvm/trunk/test/CodeGen/ARM/ParallelDSP/unroll-n-jam-smlad.ll Fri Mar 15 06:36:37 2019
@@ -31,15 +31,11 @@ entry:
%inc11.us.i.3.i = add i32 %idx, 4
br label %for.body
+; TODO: CSE, or something similar, is required to remove the duplicate loads.
; CHECK: %for.body
; CHECK: smlad
; CHECK: smlad
-; CHECK: smlad
-; CHECK: smlad
-; CHECK: smlad
-; CHECK: smlad
-; CHECK: smlad
-; CHECK: smlad
+; CHECK-NOT: smlad r{{.*}}
for.body:
%A3 = phi i32 [ %add9.us.i.3361.i, %for.body ], [ 0, %entry ]
Modified: llvm/trunk/test/CodeGen/Thumb2/2010-06-21-TailMergeBug.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Thumb2/2010-06-21-TailMergeBug.ll?rev=356259&r1=356258&r2=356259&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/Thumb2/2010-06-21-TailMergeBug.ll (original)
+++ llvm/trunk/test/CodeGen/Thumb2/2010-06-21-TailMergeBug.ll Fri Mar 15 06:36:37 2019
@@ -32,12 +32,13 @@
define fastcc i32 @parse_percent_token() nounwind {
entry:
-; CHECK: bx lr
-; CHECK: bx lr
-; CHECK: bx lr
-; CHECK: bx lr
-; CHECK: bx lr
-; CHECK: bx lr
+; CHECK: pop
+; CHECK: pop
+; CHECK: pop
+; CHECK: pop
+; CHECK: pop
+; CHECK: pop
+; CHECK: pop
; Do not convert into single stream code. BranchProbability Analysis assumes
; that branches which goes to "ret" instruction have lower probabilities.
switch i32 undef, label %bb7 [
More information about the llvm-commits
mailing list