Author: Roman Lebedev Date: 2020-12-18T00:37:21+03:00 New Revision: 164e0847a59995c0e602c9e708dfb2bf41494780
URL: https://github.com/llvm/llvm-project/commit/164e0847a59995c0e602c9e708dfb2bf41494780 DIFF: https://github.com/llvm/llvm-project/commit/164e0847a59995c0e602c9e708dfb2bf41494780.diff LOG: [SimplifyCFG] DeleteDeadBlock() already knows how to preserve DomTree ... so just ensure that we pass DomTreeUpdater it into it. Fixes DomTree preservation for a large number of tests, all of which are marked as such so that they do not regress. Added: Modified: llvm/lib/Transforms/Utils/SimplifyCFG.cpp llvm/test/Transforms/GVNSink/indirect-call.ll llvm/test/Transforms/GVNSink/sink-common-code.ll llvm/test/Transforms/IndVarSimplify/loop_evaluate_1.ll llvm/test/Transforms/IndVarSimplify/loop_evaluate_2.ll llvm/test/Transforms/JumpThreading/lvi-tristate.ll llvm/test/Transforms/LoopDeletion/simplify-then-delete.ll llvm/test/Transforms/LoopVectorize/if-pred-non-void.ll llvm/test/Transforms/PhaseOrdering/unsigned-multiply-overflow-check.ll llvm/test/Transforms/SimplifyCFG/2005-06-16-PHICrash.ll llvm/test/Transforms/SimplifyCFG/2006-12-08-Ptr-ICmp-Branch.ll llvm/test/Transforms/SimplifyCFG/2008-12-06-SingleEntryPhi.ll llvm/test/Transforms/SimplifyCFG/2008-12-16-DCECond.ll llvm/test/Transforms/SimplifyCFG/2009-01-18-PHIPropCrash.ll llvm/test/Transforms/SimplifyCFG/ARM/branch-fold-threshold.ll llvm/test/Transforms/SimplifyCFG/ARM/phi-eliminate.ll llvm/test/Transforms/SimplifyCFG/ARM/select-trunc-i64.ll llvm/test/Transforms/SimplifyCFG/ARM/speculate-math.ll llvm/test/Transforms/SimplifyCFG/BrUnwind.ll llvm/test/Transforms/SimplifyCFG/ConditionalTrappingConstantExpr.ll llvm/test/Transforms/SimplifyCFG/DeadSetCC.ll llvm/test/Transforms/SimplifyCFG/HoistCode.ll llvm/test/Transforms/SimplifyCFG/PR25267.ll llvm/test/Transforms/SimplifyCFG/PR9946.ll llvm/test/Transforms/SimplifyCFG/PhiBlockMerge.ll llvm/test/Transforms/SimplifyCFG/PhiEliminate2.ll llvm/test/Transforms/SimplifyCFG/RISCV/select-trunc-i64.ll llvm/test/Transforms/SimplifyCFG/UncondBranchToReturn.ll llvm/test/Transforms/SimplifyCFG/X86/CoveredLookupTable.ll llvm/test/Transforms/SimplifyCFG/X86/PR29163.ll llvm/test/Transforms/SimplifyCFG/X86/SpeculativeExec.ll llvm/test/Transforms/SimplifyCFG/X86/pr39187-g.ll llvm/test/Transforms/SimplifyCFG/X86/safe-low-bit-extract.ll llvm/test/Transforms/SimplifyCFG/X86/speculate-cttz-ctlz.ll llvm/test/Transforms/SimplifyCFG/X86/switch-covered-bug.ll llvm/test/Transforms/SimplifyCFG/X86/switch-table-bug.ll llvm/test/Transforms/SimplifyCFG/annotations.ll llvm/test/Transforms/SimplifyCFG/basictest.ll llvm/test/Transforms/SimplifyCFG/bbi-23595.ll llvm/test/Transforms/SimplifyCFG/branch-fold-dbg.ll llvm/test/Transforms/SimplifyCFG/branch-fold-threshold.ll llvm/test/Transforms/SimplifyCFG/clamp.ll llvm/test/Transforms/SimplifyCFG/common-dest-folding.ll llvm/test/Transforms/SimplifyCFG/fold-debug-location.ll llvm/test/Transforms/SimplifyCFG/hoist-common-code.ll llvm/test/Transforms/SimplifyCFG/hoist-dbgvalue-inlined.ll llvm/test/Transforms/SimplifyCFG/hoist-with-range.ll llvm/test/Transforms/SimplifyCFG/no-md-sink.ll llvm/test/Transforms/SimplifyCFG/opt-for-fuzzing.ll llvm/test/Transforms/SimplifyCFG/pr39807.ll llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll llvm/test/Transforms/SimplifyCFG/rangereduce.ll llvm/test/Transforms/SimplifyCFG/safe-abs.ll llvm/test/Transforms/SimplifyCFG/signbit-like-value-extension.ll llvm/test/Transforms/SimplifyCFG/speculate-math.ll llvm/test/Transforms/SimplifyCFG/speculate-with-offset.ll llvm/test/Transforms/SimplifyCFG/switch-masked-bits.ll llvm/test/Transforms/SimplifyCFG/switch-on-const-select.ll llvm/test/Transforms/SimplifyCFG/switch-simplify-crash.ll llvm/test/Transforms/SimplifyCFG/switch-to-icmp.ll llvm/test/Transforms/SimplifyCFG/switch-to-select-two-case.ll llvm/test/Transforms/SimplifyCFG/switch_switch_fold.ll llvm/test/Transforms/SimplifyCFG/switch_thread.ll llvm/test/Transforms/SimplifyCFG/unsigned-multiplication-will-overflow.ll Removed: ################################################################################ diff --git a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp index 0c693a8d27be..f39ab25ee64a 100644 --- a/llvm/lib/Transforms/Utils/SimplifyCFG.cpp +++ b/llvm/lib/Transforms/Utils/SimplifyCFG.cpp @@ -6316,7 +6316,7 @@ bool SimplifyCFGOpt::simplifyOnce(BasicBlock *BB) { if ((pred_empty(BB) && BB != &BB->getParent()->getEntryBlock()) || BB->getSinglePredecessor() == BB) { LLVM_DEBUG(dbgs() << "Removing BB: \n" << *BB); - DeleteDeadBlock(BB); + DeleteDeadBlock(BB, DTU); return true; } diff --git a/llvm/test/Transforms/GVNSink/indirect-call.ll b/llvm/test/Transforms/GVNSink/indirect-call.ll index 66c1a4f647a9..db84fe7410fd 100644 --- a/llvm/test/Transforms/GVNSink/indirect-call.ll +++ b/llvm/test/Transforms/GVNSink/indirect-call.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -gvn-sink -simplifycfg -hoist-common-insts=true -simplifycfg-sink-common=false -S | FileCheck %s +; RUN: opt < %s -gvn-sink -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -hoist-common-insts=true -simplifycfg-sink-common=false -S | FileCheck %s declare i8 @ext(i1) diff --git a/llvm/test/Transforms/GVNSink/sink-common-code.ll b/llvm/test/Transforms/GVNSink/sink-common-code.ll index 4131fb37485f..d0b533b4ac57 100644 --- a/llvm/test/Transforms/GVNSink/sink-common-code.ll +++ b/llvm/test/Transforms/GVNSink/sink-common-code.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -gvn-sink -simplifycfg -hoist-common-insts=true -simplifycfg-sink-common=false -S | FileCheck %s +; RUN: opt < %s -gvn-sink -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -hoist-common-insts=true -simplifycfg-sink-common=false -S | FileCheck %s define zeroext i1 @test1(i1 zeroext %flag, i32 %blksA, i32 %blksB, i32 %nblks) { entry: diff --git a/llvm/test/Transforms/IndVarSimplify/loop_evaluate_1.ll b/llvm/test/Transforms/IndVarSimplify/loop_evaluate_1.ll index 6edacc17518b..4dceec4aeb7c 100644 --- a/llvm/test/Transforms/IndVarSimplify/loop_evaluate_1.ll +++ b/llvm/test/Transforms/IndVarSimplify/loop_evaluate_1.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt < %s -indvars -loop-deletion -simplifycfg -S | FileCheck %s +; RUN: opt < %s -indvars -loop-deletion -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s ; Testcase distilled from 256.bzip2 define i32 @test1() { diff --git a/llvm/test/Transforms/IndVarSimplify/loop_evaluate_2.ll b/llvm/test/Transforms/IndVarSimplify/loop_evaluate_2.ll index 3d416d33e130..9dbb69f38ab6 100644 --- a/llvm/test/Transforms/IndVarSimplify/loop_evaluate_2.ll +++ b/llvm/test/Transforms/IndVarSimplify/loop_evaluate_2.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -indvars -loop-deletion -simplifycfg | opt -analyze -loops -enable-new-pm=0 | FileCheck %s +; RUN: opt < %s -indvars -loop-deletion -simplifycfg -simplifycfg-require-and-preserve-domtree=1 | opt -analyze -loops -enable-new-pm=0 | FileCheck %s ; PR1179 ; CHECK-NOT: Loop Containing diff --git a/llvm/test/Transforms/JumpThreading/lvi-tristate.ll b/llvm/test/Transforms/JumpThreading/lvi-tristate.ll index ee0140035c3b..94fd0e5049c4 100644 --- a/llvm/test/Transforms/JumpThreading/lvi-tristate.ll +++ b/llvm/test/Transforms/JumpThreading/lvi-tristate.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt -jump-threading -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S < %s | FileCheck %s +; RUN: opt -jump-threading -simplifycfg -S < %s | FileCheck %s declare void @ham() define void @hoge() { diff --git a/llvm/test/Transforms/LoopDeletion/simplify-then-delete.ll b/llvm/test/Transforms/LoopDeletion/simplify-then-delete.ll index 4278ef16d214..294f610fa515 100644 --- a/llvm/test/Transforms/LoopDeletion/simplify-then-delete.ll +++ b/llvm/test/Transforms/LoopDeletion/simplify-then-delete.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -S -indvars -loop-deletion -simplifycfg | FileCheck %s +; RUN: opt < %s -S -indvars -loop-deletion -simplifycfg -simplifycfg-require-and-preserve-domtree=1 | FileCheck %s ; PR5794 ; Indvars and loop deletion should be able to eliminate all looping diff --git a/llvm/test/Transforms/LoopVectorize/if-pred-non-void.ll b/llvm/test/Transforms/LoopVectorize/if-pred-non-void.ll index fa821eadb09d..94bdbb5fdab4 100644 --- a/llvm/test/Transforms/LoopVectorize/if-pred-non-void.ll +++ b/llvm/test/Transforms/LoopVectorize/if-pred-non-void.ll @@ -1,4 +1,4 @@ -; RUN: opt -S -force-vector-width=2 -force-vector-interleave=1 -loop-vectorize -verify-loop-info -simplifycfg < %s | FileCheck %s +; RUN: opt -S -force-vector-width=2 -force-vector-interleave=1 -loop-vectorize -verify-loop-info -simplifycfg -simplifycfg-require-and-preserve-domtree=1 < %s | FileCheck %s ; RUN: opt -S -force-vector-width=1 -force-vector-interleave=2 -loop-vectorize -verify-loop-info < %s | FileCheck %s --check-prefix=UNROLL-NO-VF target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" @@ -192,7 +192,7 @@ if.then: ; preds = %check, %for.body br label %if.end if.end: ; preds = %if.then, %check - %ysd.0 = phi i32 [ %rsd, %if.then ], [ %psd, %check ] + %ysd.0 = phi i32 [ %rsd, %if.then ], [ %psd, %check ] store i32 %ysd.0, i32* %isd, align 4 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond = icmp eq i64 %indvars.iv.next, 128 diff --git a/llvm/test/Transforms/PhaseOrdering/unsigned-multiply-overflow-check.ll b/llvm/test/Transforms/PhaseOrdering/unsigned-multiply-overflow-check.ll index efa99c06009c..b0efba3dfdd4 100644 --- a/llvm/test/Transforms/PhaseOrdering/unsigned-multiply-overflow-check.ll +++ b/llvm/test/Transforms/PhaseOrdering/unsigned-multiply-overflow-check.ll @@ -1,10 +1,10 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt -simplifycfg -S < %s | FileCheck %s --check-prefix=SIMPLIFYCFG +; RUN: opt -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S < %s | FileCheck %s --check-prefix=SIMPLIFYCFG ; RUN: opt -instcombine -S < %s | FileCheck %s --check-prefix=INSTCOMBINEONLY -; RUN: opt -instcombine -simplifycfg -S < %s | FileCheck %s --check-prefix=INSTCOMBINESIMPLIFYCFGONLY -; RUN: opt -instcombine -simplifycfg -instcombine -S < %s | FileCheck %s --check-prefix=INSTCOMBINESIMPLIFYCFGINSTCOMBINE -; RUN: opt -instcombine -simplifycfg -phi-node-folding-threshold=3 -S < %s | FileCheck %s --check-prefix=INSTCOMBINESIMPLIFYCFGONLY -; RUN: opt -instcombine -simplifycfg -instcombine -phi-node-folding-threshold=3 -S < %s | FileCheck %s --check-prefix=INSTCOMBINESIMPLIFYCFGINSTCOMBINE +; RUN: opt -instcombine -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S < %s | FileCheck %s --check-prefix=INSTCOMBINESIMPLIFYCFGONLY +; RUN: opt -instcombine -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -instcombine -S < %s | FileCheck %s --check-prefix=INSTCOMBINESIMPLIFYCFGINSTCOMBINE +; RUN: opt -instcombine -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -phi-node-folding-threshold=3 -S < %s | FileCheck %s --check-prefix=INSTCOMBINESIMPLIFYCFGONLY +; RUN: opt -instcombine -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -instcombine -phi-node-folding-threshold=3 -S < %s | FileCheck %s --check-prefix=INSTCOMBINESIMPLIFYCFGINSTCOMBINE target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-pc-linux-gnu" diff --git a/llvm/test/Transforms/SimplifyCFG/2005-06-16-PHICrash.ll b/llvm/test/Transforms/SimplifyCFG/2005-06-16-PHICrash.ll index 8fd1fae34503..848aec7f6ad0 100644 --- a/llvm/test/Transforms/SimplifyCFG/2005-06-16-PHICrash.ll +++ b/llvm/test/Transforms/SimplifyCFG/2005-06-16-PHICrash.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -simplifycfg -disable-output +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -disable-output ; PR584 @g_38098584 = external global i32 ; <i32*> [#uses=1] @g_60187400 = external global i32 ; <i32*> [#uses=1] diff --git a/llvm/test/Transforms/SimplifyCFG/2006-12-08-Ptr-ICmp-Branch.ll b/llvm/test/Transforms/SimplifyCFG/2006-12-08-Ptr-ICmp-Branch.ll index dcf241255d85..58fc770d08f9 100644 --- a/llvm/test/Transforms/SimplifyCFG/2006-12-08-Ptr-ICmp-Branch.ll +++ b/llvm/test/Transforms/SimplifyCFG/2006-12-08-Ptr-ICmp-Branch.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -simplifycfg | llvm-dis +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 | llvm-dis ; END. ; ModuleID = '2006-12-08-Ptr-ICmp-Branch.ll' diff --git a/llvm/test/Transforms/SimplifyCFG/2008-12-06-SingleEntryPhi.ll b/llvm/test/Transforms/SimplifyCFG/2008-12-06-SingleEntryPhi.ll index 297ebef2766b..de94c3af5b2f 100644 --- a/llvm/test/Transforms/SimplifyCFG/2008-12-06-SingleEntryPhi.ll +++ b/llvm/test/Transforms/SimplifyCFG/2008-12-06-SingleEntryPhi.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -simplifycfg | llvm-dis +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 | llvm-dis define i32 @test() { entry: br label %T diff --git a/llvm/test/Transforms/SimplifyCFG/2008-12-16-DCECond.ll b/llvm/test/Transforms/SimplifyCFG/2008-12-16-DCECond.ll index 2e356df75ca2..108fa3094add 100644 --- a/llvm/test/Transforms/SimplifyCFG/2008-12-16-DCECond.ll +++ b/llvm/test/Transforms/SimplifyCFG/2008-12-16-DCECond.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -simplifycfg -S -hoist-common-insts=true | not grep icmp +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S -hoist-common-insts=true | not grep icmp ; ModuleID = '/tmp/x.bc' target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128" target triple = "i686-pc-linux-gnu" diff --git a/llvm/test/Transforms/SimplifyCFG/2009-01-18-PHIPropCrash.ll b/llvm/test/Transforms/SimplifyCFG/2009-01-18-PHIPropCrash.ll index c6ae6accd7cf..6d89d739b60b 100644 --- a/llvm/test/Transforms/SimplifyCFG/2009-01-18-PHIPropCrash.ll +++ b/llvm/test/Transforms/SimplifyCFG/2009-01-18-PHIPropCrash.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -simplifycfg -disable-output +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -disable-output ; PR3016 ; Dead use caused invariant violation. diff --git a/llvm/test/Transforms/SimplifyCFG/ARM/branch-fold-threshold.ll b/llvm/test/Transforms/SimplifyCFG/ARM/branch-fold-threshold.ll index ffb13ca583f7..a3d4129e0af8 100644 --- a/llvm/test/Transforms/SimplifyCFG/ARM/branch-fold-threshold.ll +++ b/llvm/test/Transforms/SimplifyCFG/ARM/branch-fold-threshold.ll @@ -1,7 +1,7 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt -mtriple=thumbv8m.main %s -simplifycfg -S | FileCheck %s --check-prefix=CHECK --check-prefix=THUMB -; RUN: opt -mtriple=thumbv8a %s -simplifycfg -S | FileCheck %s --check-prefix=CHECK --check-prefix=THUMB -; RUN: opt -mtriple=armv8a %s -simplifycfg -S | FileCheck %s --check-prefix=CHECK --check-prefix=ARM +; RUN: opt -mtriple=thumbv8m.main %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s --check-prefix=CHECK --check-prefix=THUMB +; RUN: opt -mtriple=thumbv8a %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s --check-prefix=CHECK --check-prefix=THUMB +; RUN: opt -mtriple=armv8a %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s --check-prefix=CHECK --check-prefix=ARM define i32 @foo(i32 %a, i32 %b, i32 %c, i32 %d, i32* %input) { ; CHECK-LABEL: @foo( diff --git a/llvm/test/Transforms/SimplifyCFG/ARM/phi-eliminate.ll b/llvm/test/Transforms/SimplifyCFG/ARM/phi-eliminate.ll index 87d9f6f3d3d8..533f198a9991 100644 --- a/llvm/test/Transforms/SimplifyCFG/ARM/phi-eliminate.ll +++ b/llvm/test/Transforms/SimplifyCFG/ARM/phi-eliminate.ll @@ -1,10 +1,10 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt -mtriple=thumbv8m.main < %s -simplifycfg -S -two-entry-phi-node-folding-threshold=4 | FileCheck %s --check-prefixes=CHECK-TWO-FOLD-4,CHECK-V8M-TWO-FOLD-4 -; RUN: opt -mtriple=armv8a < %s -simplifycfg -S -two-entry-phi-node-folding-threshold=4 | FileCheck %s --check-prefixes=CHECK-TWO-FOLD-4,CHECK-V8A-TWO-FOLD-4 -; RUN: opt -mtriple=thumbv8m.main < %s -simplifycfg -S -two-entry-phi-node-folding-threshold=5 | FileCheck %s --check-prefixes=CHECK-TWO-FOLD-5,CHECK-V8M-TWO-FOLD-5 -; RUN: opt -mtriple=armv8a < %s -simplifycfg -S -two-entry-phi-node-folding-threshold=5 | FileCheck %s --check-prefixes=CHECK-TWO-FOLD-5,CHECK-V8A-TWO-FOLD-5 -; RUN: opt -mtriple=thumbv8m.main < %s -simplifycfg -S -two-entry-phi-node-folding-threshold=6 | FileCheck %s --check-prefixes=CHECK-TWO-FOLD-6,CHECK-V8M-TWO-FOLD-6 -; RUN: opt -mtriple=armv8a < %s -simplifycfg -S -two-entry-phi-node-folding-threshold=6 | FileCheck %s --check-prefixes=CHECK-TWO-FOLD-6,CHECK-V8A-TWO-FOLD-6 +; RUN: opt -mtriple=thumbv8m.main < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S -two-entry-phi-node-folding-threshold=4 | FileCheck %s --check-prefixes=CHECK-TWO-FOLD-4,CHECK-V8M-TWO-FOLD-4 +; RUN: opt -mtriple=armv8a < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S -two-entry-phi-node-folding-threshold=4 | FileCheck %s --check-prefixes=CHECK-TWO-FOLD-4,CHECK-V8A-TWO-FOLD-4 +; RUN: opt -mtriple=thumbv8m.main < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S -two-entry-phi-node-folding-threshold=5 | FileCheck %s --check-prefixes=CHECK-TWO-FOLD-5,CHECK-V8M-TWO-FOLD-5 +; RUN: opt -mtriple=armv8a < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S -two-entry-phi-node-folding-threshold=5 | FileCheck %s --check-prefixes=CHECK-TWO-FOLD-5,CHECK-V8A-TWO-FOLD-5 +; RUN: opt -mtriple=thumbv8m.main < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S -two-entry-phi-node-folding-threshold=6 | FileCheck %s --check-prefixes=CHECK-TWO-FOLD-6,CHECK-V8M-TWO-FOLD-6 +; RUN: opt -mtriple=armv8a < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S -two-entry-phi-node-folding-threshold=6 | FileCheck %s --check-prefixes=CHECK-TWO-FOLD-6,CHECK-V8A-TWO-FOLD-6 define i32 @test_i32(i1 %a, i1 %b, i32 %i, i32 %j, i32 %k) { ; CHECK-TWO-FOLD-4-LABEL: @test_i32( diff --git a/llvm/test/Transforms/SimplifyCFG/ARM/select-trunc-i64.ll b/llvm/test/Transforms/SimplifyCFG/ARM/select-trunc-i64.ll index 9218ee185b1e..fa0f31d6aec7 100644 --- a/llvm/test/Transforms/SimplifyCFG/ARM/select-trunc-i64.ll +++ b/llvm/test/Transforms/SimplifyCFG/ARM/select-trunc-i64.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -;RUN: opt -S -simplifycfg -mtriple=arm < %s | FileCheck %s +;RUN: opt -S -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -mtriple=arm < %s | FileCheck %s target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64" define arm_aapcscc i32 @select_trunc_i64(i32 %a, i32 %b) { diff --git a/llvm/test/Transforms/SimplifyCFG/ARM/speculate-math.ll b/llvm/test/Transforms/SimplifyCFG/ARM/speculate-math.ll index 229d453d00e0..379019528791 100644 --- a/llvm/test/Transforms/SimplifyCFG/ARM/speculate-math.ll +++ b/llvm/test/Transforms/SimplifyCFG/ARM/speculate-math.ll @@ -1,7 +1,7 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt -S -simplifycfg -mtriple=thumbv8.1m.main -mattr=+mve < %s | FileCheck %s --check-prefix=CHECK-MVE -; RUN: opt -S -simplifycfg -mtriple=thumbv8m.main < %s | FileCheck %s --check-prefix=CHECK-V8M-MAIN -; RUN: opt -S -simplifycfg -mtriple=thumbv8m.base < %s | FileCheck %s --check-prefix=CHECK-V8M-BASE +; RUN: opt -S -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -mtriple=thumbv8.1m.main -mattr=+mve < %s | FileCheck %s --check-prefix=CHECK-MVE +; RUN: opt -S -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -mtriple=thumbv8m.main < %s | FileCheck %s --check-prefix=CHECK-V8M-MAIN +; RUN: opt -S -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -mtriple=thumbv8m.base < %s | FileCheck %s --check-prefix=CHECK-V8M-BASE declare float @llvm.sqrt.f32(float) nounwind readonly declare float @llvm.fma.f32(float, float, float) nounwind readonly diff --git a/llvm/test/Transforms/SimplifyCFG/BrUnwind.ll b/llvm/test/Transforms/SimplifyCFG/BrUnwind.ll index 6cd3ad6e4b02..c40f5513cebf 100644 --- a/llvm/test/Transforms/SimplifyCFG/BrUnwind.ll +++ b/llvm/test/Transforms/SimplifyCFG/BrUnwind.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -simplifycfg -hoist-common-insts=true -S | \ +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -hoist-common-insts=true -S | \ ; RUN: not grep "br label" define void @test(i1 %C) { diff --git a/llvm/test/Transforms/SimplifyCFG/ConditionalTrappingConstantExpr.ll b/llvm/test/Transforms/SimplifyCFG/ConditionalTrappingConstantExpr.ll index c5b0b3d5eee2..95683db9df3d 100644 --- a/llvm/test/Transforms/SimplifyCFG/ConditionalTrappingConstantExpr.ll +++ b/llvm/test/Transforms/SimplifyCFG/ConditionalTrappingConstantExpr.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt < %s -simplifycfg -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s @G = extern_weak global i32 diff --git a/llvm/test/Transforms/SimplifyCFG/DeadSetCC.ll b/llvm/test/Transforms/SimplifyCFG/DeadSetCC.ll index c62560000cae..8bfb0a007cc8 100644 --- a/llvm/test/Transforms/SimplifyCFG/DeadSetCC.ll +++ b/llvm/test/Transforms/SimplifyCFG/DeadSetCC.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -simplifycfg -S | \ +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | \ ; RUN: not grep "icmp eq" ; Check that simplifycfg deletes a dead 'seteq' instruction when it diff --git a/llvm/test/Transforms/SimplifyCFG/HoistCode.ll b/llvm/test/Transforms/SimplifyCFG/HoistCode.ll index 975107da4928..51baa5b7f9b3 100644 --- a/llvm/test/Transforms/SimplifyCFG/HoistCode.ll +++ b/llvm/test/Transforms/SimplifyCFG/HoistCode.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt < %s -passes=simplifycfg -hoist-common-insts=true -S | FileCheck %s -; RUN: opt < %s -simplifycfg -hoist-common-insts=true -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -hoist-common-insts=true -S | FileCheck %s define void @foo(i1 %C, i32* %P) { ; CHECK-LABEL: @foo( diff --git a/llvm/test/Transforms/SimplifyCFG/PR25267.ll b/llvm/test/Transforms/SimplifyCFG/PR25267.ll index a13d45a0f271..861ddd7fda9d 100644 --- a/llvm/test/Transforms/SimplifyCFG/PR25267.ll +++ b/llvm/test/Transforms/SimplifyCFG/PR25267.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -simplifycfg -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s define void @f() { entry: diff --git a/llvm/test/Transforms/SimplifyCFG/PR9946.ll b/llvm/test/Transforms/SimplifyCFG/PR9946.ll index c355a8f5cc98..538d206394bf 100644 --- a/llvm/test/Transforms/SimplifyCFG/PR9946.ll +++ b/llvm/test/Transforms/SimplifyCFG/PR9946.ll @@ -1,4 +1,4 @@ -; RUN: opt -simplifycfg -disable-output < %s +; RUN: opt -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -disable-output < %s @foo = external constant i32 diff --git a/llvm/test/Transforms/SimplifyCFG/PhiBlockMerge.ll b/llvm/test/Transforms/SimplifyCFG/PhiBlockMerge.ll index 85b987060181..b4730c27b248 100644 --- a/llvm/test/Transforms/SimplifyCFG/PhiBlockMerge.ll +++ b/llvm/test/Transforms/SimplifyCFG/PhiBlockMerge.ll @@ -1,7 +1,7 @@ ; NOTE: Assertions have been autogenerated by update_test_checks.py ; Test merging of blocks that only have PHI nodes in them ; -; RUN: opt < %s -simplifycfg -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s ; define i32 @test(i1 %a, i1 %b) { diff --git a/llvm/test/Transforms/SimplifyCFG/PhiEliminate2.ll b/llvm/test/Transforms/SimplifyCFG/PhiEliminate2.ll index 0ca65286da35..c4af022c9cfe 100644 --- a/llvm/test/Transforms/SimplifyCFG/PhiEliminate2.ll +++ b/llvm/test/Transforms/SimplifyCFG/PhiEliminate2.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -simplifycfg -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s ; Use a select to make this a single BB. ; Also, make sure the profile metadata is propagated to the select (PR26636). diff --git a/llvm/test/Transforms/SimplifyCFG/RISCV/select-trunc-i64.ll b/llvm/test/Transforms/SimplifyCFG/RISCV/select-trunc-i64.ll index e5272b2af868..28c083afe9dc 100644 --- a/llvm/test/Transforms/SimplifyCFG/RISCV/select-trunc-i64.ll +++ b/llvm/test/Transforms/SimplifyCFG/RISCV/select-trunc-i64.ll @@ -1,4 +1,4 @@ -;RUN: opt -S -simplifycfg -mtriple=riscv32 < %s | FileCheck %s +;RUN: opt -S -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -mtriple=riscv32 < %s | FileCheck %s ; Test case taken from test/Transforms/SimplifyCFG/ARM/select-trunc-i64.ll. ; A correct implementation of isTruncateFree allows this test case to be diff --git a/llvm/test/Transforms/SimplifyCFG/UncondBranchToReturn.ll b/llvm/test/Transforms/SimplifyCFG/UncondBranchToReturn.ll index 78bcd345daf9..122368406118 100644 --- a/llvm/test/Transforms/SimplifyCFG/UncondBranchToReturn.ll +++ b/llvm/test/Transforms/SimplifyCFG/UncondBranchToReturn.ll @@ -2,7 +2,7 @@ ; a PHI node and a return. Make sure the simplify cfg can straighten out this ; important case. This is basically the most trivial form of tail-duplication. -; RUN: opt < %s -simplifycfg -hoist-common-insts=true -S | \ +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -hoist-common-insts=true -S | \ ; RUN: not grep "br label" define i32 @test(i1 %B, i32 %A, i32 %B.upgrd.1) { diff --git a/llvm/test/Transforms/SimplifyCFG/X86/CoveredLookupTable.ll b/llvm/test/Transforms/SimplifyCFG/X86/CoveredLookupTable.ll index e3a3b3fc58cd..9bf28fc28390 100644 --- a/llvm/test/Transforms/SimplifyCFG/X86/CoveredLookupTable.ll +++ b/llvm/test/Transforms/SimplifyCFG/X86/CoveredLookupTable.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt -simplifycfg -switch-to-lookup -S %s | FileCheck %s +; RUN: opt -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -switch-to-lookup -S %s | FileCheck %s ; RUN: opt -passes='simplify-cfg<switch-to-lookup>' -S %s | FileCheck %s ; rdar://15268442 diff --git a/llvm/test/Transforms/SimplifyCFG/X86/PR29163.ll b/llvm/test/Transforms/SimplifyCFG/X86/PR29163.ll index 65f9090dd135..cc8fdd12d87b 100644 --- a/llvm/test/Transforms/SimplifyCFG/X86/PR29163.ll +++ b/llvm/test/Transforms/SimplifyCFG/X86/PR29163.ll @@ -1,4 +1,4 @@ -; RUN: opt -S -simplifycfg < %s | FileCheck %s +; RUN: opt -S -simplifycfg -simplifycfg-require-and-preserve-domtree=1 < %s | FileCheck %s target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" diff --git a/llvm/test/Transforms/SimplifyCFG/X86/SpeculativeExec.ll b/llvm/test/Transforms/SimplifyCFG/X86/SpeculativeExec.ll index f07a5a40a90b..78b4f45c39b5 100644 --- a/llvm/test/Transforms/SimplifyCFG/X86/SpeculativeExec.ll +++ b/llvm/test/Transforms/SimplifyCFG/X86/SpeculativeExec.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt < %s -simplifycfg -phi-node-folding-threshold=2 -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -phi-node-folding-threshold=2 -S | FileCheck %s target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" diff --git a/llvm/test/Transforms/SimplifyCFG/X86/pr39187-g.ll b/llvm/test/Transforms/SimplifyCFG/X86/pr39187-g.ll index 1013fab20d1c..69d5378b256d 100644 --- a/llvm/test/Transforms/SimplifyCFG/X86/pr39187-g.ll +++ b/llvm/test/Transforms/SimplifyCFG/X86/pr39187-g.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -S -simplifycfg -hoist-common-insts=true | FileCheck %s +; RUN: opt < %s -S -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -hoist-common-insts=true | FileCheck %s ; SimplifyCFG can hoist any common code in the 'then' and 'else' blocks to ; the 'if' basic block. diff --git a/llvm/test/Transforms/SimplifyCFG/X86/safe-low-bit-extract.ll b/llvm/test/Transforms/SimplifyCFG/X86/safe-low-bit-extract.ll index 19a6313aa1d0..98b96c3402a3 100644 --- a/llvm/test/Transforms/SimplifyCFG/X86/safe-low-bit-extract.ll +++ b/llvm/test/Transforms/SimplifyCFG/X86/safe-low-bit-extract.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt < %s -simplifycfg -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s ; This is the naive implementation of x86 BZHI/BEXTR instruction: ; it takes input and bit count, and extracts low nbits up to bit width. diff --git a/llvm/test/Transforms/SimplifyCFG/X86/speculate-cttz-ctlz.ll b/llvm/test/Transforms/SimplifyCFG/X86/speculate-cttz-ctlz.ll index 3a2f067a2ee3..e7457f93db8a 100644 --- a/llvm/test/Transforms/SimplifyCFG/X86/speculate-cttz-ctlz.ll +++ b/llvm/test/Transforms/SimplifyCFG/X86/speculate-cttz-ctlz.ll @@ -1,7 +1,7 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt -S -simplifycfg -mtriple=x86_64-unknown-unknown -mattr=+bmi < %s | FileCheck %s --check-prefix=ALL --check-prefix=BMI -; RUN: opt -S -simplifycfg -mtriple=x86_64-unknown-unknown -mattr=+lzcnt < %s | FileCheck %s --check-prefix=ALL --check-prefix=LZCNT -; RUN: opt -S -simplifycfg -mtriple=x86_64-unknown-unknown < %s | FileCheck %s --check-prefix=ALL --check-prefix=GENERIC +; RUN: opt -S -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -mtriple=x86_64-unknown-unknown -mattr=+bmi < %s | FileCheck %s --check-prefix=ALL --check-prefix=BMI +; RUN: opt -S -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -mtriple=x86_64-unknown-unknown -mattr=+lzcnt < %s | FileCheck %s --check-prefix=ALL --check-prefix=LZCNT +; RUN: opt -S -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -mtriple=x86_64-unknown-unknown < %s | FileCheck %s --check-prefix=ALL --check-prefix=GENERIC define i64 @test1(i64 %A) { diff --git a/llvm/test/Transforms/SimplifyCFG/X86/switch-covered-bug.ll b/llvm/test/Transforms/SimplifyCFG/X86/switch-covered-bug.ll index b7bf8054a6f1..6e0639e20e64 100644 --- a/llvm/test/Transforms/SimplifyCFG/X86/switch-covered-bug.ll +++ b/llvm/test/Transforms/SimplifyCFG/X86/switch-covered-bug.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt -S -simplifycfg -switch-to-lookup < %s -mtriple=x86_64-apple-darwin12.0.0 | FileCheck %s +; RUN: opt -S -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -switch-to-lookup < %s -mtriple=x86_64-apple-darwin12.0.0 | FileCheck %s ; RUN: opt -S -passes='simplify-cfg<switch-to-lookup>' < %s -mtriple=x86_64-apple-darwin12.0.0 | FileCheck %s ; rdar://17887153 diff --git a/llvm/test/Transforms/SimplifyCFG/X86/switch-table-bug.ll b/llvm/test/Transforms/SimplifyCFG/X86/switch-table-bug.ll index e50a913f9e50..04b8999cc4cc 100644 --- a/llvm/test/Transforms/SimplifyCFG/X86/switch-table-bug.ll +++ b/llvm/test/Transforms/SimplifyCFG/X86/switch-table-bug.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt -S -simplifycfg -switch-to-lookup < %s -mtriple=x86_64-apple-darwin12.0.0 | FileCheck %s +; RUN: opt -S -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -switch-to-lookup < %s -mtriple=x86_64-apple-darwin12.0.0 | FileCheck %s ; RUN: opt -S -passes='simplify-cfg<switch-to-lookup>' < %s -mtriple=x86_64-apple-darwin12.0.0 | FileCheck %s ; rdar://17735071 diff --git a/llvm/test/Transforms/SimplifyCFG/annotations.ll b/llvm/test/Transforms/SimplifyCFG/annotations.ll index e6bc73d16992..c10a2a8bd1f3 100644 --- a/llvm/test/Transforms/SimplifyCFG/annotations.ll +++ b/llvm/test/Transforms/SimplifyCFG/annotations.ll @@ -1,4 +1,4 @@ -; RUN: opt -simplifycfg -S %s | FileCheck --match-full-lines %s +; RUN: opt -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S %s | FileCheck --match-full-lines %s ; The branch in %cont has !annotation metadata. Make sure generated AND ; has !annotation metadata. diff --git a/llvm/test/Transforms/SimplifyCFG/basictest.ll b/llvm/test/Transforms/SimplifyCFG/basictest.ll index 6d513441bf37..9f9ed4ab9eac 100644 --- a/llvm/test/Transforms/SimplifyCFG/basictest.ll +++ b/llvm/test/Transforms/SimplifyCFG/basictest.ll @@ -1,6 +1,6 @@ ; Test CFG simplify removal of branch instructions. ; -; RUN: opt < %s -simplifycfg -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s ; RUN: opt < %s -passes=simplify-cfg -S | FileCheck %s define void @test1() { diff --git a/llvm/test/Transforms/SimplifyCFG/bbi-23595.ll b/llvm/test/Transforms/SimplifyCFG/bbi-23595.ll index 676a80bb33f3..b09f04d841ca 100644 --- a/llvm/test/Transforms/SimplifyCFG/bbi-23595.ll +++ b/llvm/test/Transforms/SimplifyCFG/bbi-23595.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -S -simplifycfg | FileCheck %s +; RUN: opt < %s -S -simplifycfg -simplifycfg-require-and-preserve-domtree=1 | FileCheck %s ; In 'simplifycfg', during the flattening of a 'br', the instructions for the ; 'true' and 'false' parts, are moved out from their respective basic blocks. diff --git a/llvm/test/Transforms/SimplifyCFG/branch-fold-dbg.ll b/llvm/test/Transforms/SimplifyCFG/branch-fold-dbg.ll index 2414b569ba4e..a44abe041e77 100644 --- a/llvm/test/Transforms/SimplifyCFG/branch-fold-dbg.ll +++ b/llvm/test/Transforms/SimplifyCFG/branch-fold-dbg.ll @@ -1,4 +1,4 @@ -; RUN: opt -simplifycfg -S < %s | FileCheck %s +; RUN: opt -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S < %s | FileCheck %s %0 = type { i32*, i32* } diff --git a/llvm/test/Transforms/SimplifyCFG/branch-fold-threshold.ll b/llvm/test/Transforms/SimplifyCFG/branch-fold-threshold.ll index 592873fad23f..8f53b95419ec 100644 --- a/llvm/test/Transforms/SimplifyCFG/branch-fold-threshold.ll +++ b/llvm/test/Transforms/SimplifyCFG/branch-fold-threshold.ll @@ -1,6 +1,6 @@ -; RUN: opt %s -simplifycfg -S | FileCheck %s --check-prefix=NORMAL -; RUN: opt %s -simplifycfg -S -bonus-inst-threshold=2 | FileCheck %s --check-prefix=AGGRESSIVE -; RUN: opt %s -simplifycfg -S -bonus-inst-threshold=4 | FileCheck %s --check-prefix=WAYAGGRESSIVE +; RUN: opt %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s --check-prefix=NORMAL +; RUN: opt %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S -bonus-inst-threshold=2 | FileCheck %s --check-prefix=AGGRESSIVE +; RUN: opt %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S -bonus-inst-threshold=4 | FileCheck %s --check-prefix=WAYAGGRESSIVE ; RUN: opt %s -passes=simplify-cfg -S | FileCheck %s --check-prefix=NORMAL ; RUN: opt %s -passes='simplify-cfg<bonus-inst-threshold=2>' -S | FileCheck %s --check-prefix=AGGRESSIVE ; RUN: opt %s -passes='simplify-cfg<bonus-inst-threshold=4>' -S | FileCheck %s --check-prefix=WAYAGGRESSIVE diff --git a/llvm/test/Transforms/SimplifyCFG/clamp.ll b/llvm/test/Transforms/SimplifyCFG/clamp.ll index d21894a12699..3aa836b118fa 100644 --- a/llvm/test/Transforms/SimplifyCFG/clamp.ll +++ b/llvm/test/Transforms/SimplifyCFG/clamp.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -simplifycfg -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s define float @clamp(float %a, float %b, float %c) { ; CHECK-LABEL: @clamp diff --git a/llvm/test/Transforms/SimplifyCFG/common-dest-folding.ll b/llvm/test/Transforms/SimplifyCFG/common-dest-folding.ll index e3e27c706d1d..0035a445cca1 100644 --- a/llvm/test/Transforms/SimplifyCFG/common-dest-folding.ll +++ b/llvm/test/Transforms/SimplifyCFG/common-dest-folding.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -simplifycfg -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s ;CHECK: @foo ;CHECK: and i32 %c1, %k diff --git a/llvm/test/Transforms/SimplifyCFG/fold-debug-location.ll b/llvm/test/Transforms/SimplifyCFG/fold-debug-location.ll index 4c79a63cbbb4..0d1cfeebcdea 100644 --- a/llvm/test/Transforms/SimplifyCFG/fold-debug-location.ll +++ b/llvm/test/Transforms/SimplifyCFG/fold-debug-location.ll @@ -1,4 +1,4 @@ -; RUN: opt -S -simplifycfg < %s | FileCheck %s --match-full-lines +; RUN: opt -S -simplifycfg -simplifycfg-require-and-preserve-domtree=1 < %s | FileCheck %s --match-full-lines ; Make sure we reset the debug location when folding instructions. ; CHECK: [[VAL:%.*]] = and i32 %c2, %k diff --git a/llvm/test/Transforms/SimplifyCFG/hoist-common-code.ll b/llvm/test/Transforms/SimplifyCFG/hoist-common-code.ll index 958cd35a172f..2b43b511432e 100644 --- a/llvm/test/Transforms/SimplifyCFG/hoist-common-code.ll +++ b/llvm/test/Transforms/SimplifyCFG/hoist-common-code.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -simplifycfg -S -hoist-common-insts=true | not grep br +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S -hoist-common-insts=true | not grep br declare void @bar(i32) diff --git a/llvm/test/Transforms/SimplifyCFG/hoist-dbgvalue-inlined.ll b/llvm/test/Transforms/SimplifyCFG/hoist-dbgvalue-inlined.ll index e6a53158fd2a..c32a4aa73bb8 100644 --- a/llvm/test/Transforms/SimplifyCFG/hoist-dbgvalue-inlined.ll +++ b/llvm/test/Transforms/SimplifyCFG/hoist-dbgvalue-inlined.ll @@ -1,4 +1,4 @@ -; RUN: opt -simplifycfg -hoist-common-insts=true -S < %s | FileCheck %s +; RUN: opt -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -hoist-common-insts=true -S < %s | FileCheck %s ; Verify that we don't crash due an invalid !dbg location on the hoisted llvm.dbg.value define i64 @caller(i64* %ptr, i64 %flag) !dbg !10 { diff --git a/llvm/test/Transforms/SimplifyCFG/hoist-with-range.ll b/llvm/test/Transforms/SimplifyCFG/hoist-with-range.ll index 82d4538bcbeb..82c1fa7ba231 100644 --- a/llvm/test/Transforms/SimplifyCFG/hoist-with-range.ll +++ b/llvm/test/Transforms/SimplifyCFG/hoist-with-range.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -simplifycfg -hoist-common-insts=true -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -hoist-common-insts=true -S | FileCheck %s define void @foo(i1 %c, i8* %p) { ; CHECK: if: diff --git a/llvm/test/Transforms/SimplifyCFG/no-md-sink.ll b/llvm/test/Transforms/SimplifyCFG/no-md-sink.ll index 62d87112ea18..8c8e3fd871ca 100644 --- a/llvm/test/Transforms/SimplifyCFG/no-md-sink.ll +++ b/llvm/test/Transforms/SimplifyCFG/no-md-sink.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -simplifycfg -sink-common-insts -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -sink-common-insts -S | FileCheck %s ; RUN: opt < %s -passes='simplify-cfg<sink-common-insts>' -S | FileCheck %s define i1 @test1(i1 zeroext %flag, i8* %y) #0 { diff --git a/llvm/test/Transforms/SimplifyCFG/opt-for-fuzzing.ll b/llvm/test/Transforms/SimplifyCFG/opt-for-fuzzing.ll index 4a0d9e884615..f1a582040275 100644 --- a/llvm/test/Transforms/SimplifyCFG/opt-for-fuzzing.ll +++ b/llvm/test/Transforms/SimplifyCFG/opt-for-fuzzing.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -simplifycfg -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s ; RUN: opt < %s -passes=simplifycfg -S | FileCheck %s define i32 @foo(i32 %x) optforfuzzing { diff --git a/llvm/test/Transforms/SimplifyCFG/pr39807.ll b/llvm/test/Transforms/SimplifyCFG/pr39807.ll index 1214c6fbeafb..053b20e5ae6e 100644 --- a/llvm/test/Transforms/SimplifyCFG/pr39807.ll +++ b/llvm/test/Transforms/SimplifyCFG/pr39807.ll @@ -1,4 +1,4 @@ -; RUN: opt -S -simplifycfg -hoist-common-insts=true < %s | FileCheck %s +; RUN: opt -S -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -hoist-common-insts=true < %s | FileCheck %s declare void @personality() diff --git a/llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll b/llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll index 66a34bab3e5b..078d0aa2f1de 100644 --- a/llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll +++ b/llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt -simplifycfg -S -o - < %s | FileCheck %s +; RUN: opt -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S -o - < %s | FileCheck %s declare void @helper(i32) diff --git a/llvm/test/Transforms/SimplifyCFG/rangereduce.ll b/llvm/test/Transforms/SimplifyCFG/rangereduce.ll index 849f55f6f392..c536efd685bb 100644 --- a/llvm/test/Transforms/SimplifyCFG/rangereduce.ll +++ b/llvm/test/Transforms/SimplifyCFG/rangereduce.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt < %s -simplifycfg -switch-to-lookup -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -switch-to-lookup -S | FileCheck %s ; RUN: opt < %s -passes='simplify-cfg<switch-to-lookup>' -S | FileCheck %s target datalayout = "e-n32" diff --git a/llvm/test/Transforms/SimplifyCFG/safe-abs.ll b/llvm/test/Transforms/SimplifyCFG/safe-abs.ll index 6d8028f8d943..466bdca7f919 100644 --- a/llvm/test/Transforms/SimplifyCFG/safe-abs.ll +++ b/llvm/test/Transforms/SimplifyCFG/safe-abs.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt < %s -simplifycfg -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s ; Reduced from arm_abs_q31() from CMSIS DSP suite. ; https://reviews.llvm.org/D65148#1629010 diff --git a/llvm/test/Transforms/SimplifyCFG/signbit-like-value-extension.ll b/llvm/test/Transforms/SimplifyCFG/signbit-like-value-extension.ll index e955e0679dc1..f4b4b90ed72a 100644 --- a/llvm/test/Transforms/SimplifyCFG/signbit-like-value-extension.ll +++ b/llvm/test/Transforms/SimplifyCFG/signbit-like-value-extension.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt < %s -simplifycfg -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s ; This looks like a normal sign extension, but it's not. ; This comes up in JPEG decoding. This check is really unpredictable, diff --git a/llvm/test/Transforms/SimplifyCFG/speculate-math.ll b/llvm/test/Transforms/SimplifyCFG/speculate-math.ll index ca1e7d5cea28..e7edd40b4be2 100644 --- a/llvm/test/Transforms/SimplifyCFG/speculate-math.ll +++ b/llvm/test/Transforms/SimplifyCFG/speculate-math.ll @@ -1,6 +1,6 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt -S -simplifycfg < %s | FileCheck %s -; RUN: opt -S -simplifycfg -speculate-one-expensive-inst=false < %s | FileCheck %s +; RUN: opt -S -simplifycfg -simplifycfg-require-and-preserve-domtree=1 < %s | FileCheck %s +; RUN: opt -S -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -speculate-one-expensive-inst=false < %s | FileCheck %s declare float @llvm.sqrt.f32(float) nounwind readonly declare float @llvm.fma.f32(float, float, float) nounwind readonly diff --git a/llvm/test/Transforms/SimplifyCFG/speculate-with-offset.ll b/llvm/test/Transforms/SimplifyCFG/speculate-with-offset.ll index 65ebb5c2c3f6..285b1ffc5e99 100644 --- a/llvm/test/Transforms/SimplifyCFG/speculate-with-offset.ll +++ b/llvm/test/Transforms/SimplifyCFG/speculate-with-offset.ll @@ -1,4 +1,4 @@ -; RUN: opt -simplifycfg -S < %s | FileCheck %s +; RUN: opt -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S < %s | FileCheck %s ; This load is safe to speculate, as it's from a safe offset ; within an alloca. diff --git a/llvm/test/Transforms/SimplifyCFG/switch-masked-bits.ll b/llvm/test/Transforms/SimplifyCFG/switch-masked-bits.ll index 21cecc5c942b..1b8d6e70b7dd 100644 --- a/llvm/test/Transforms/SimplifyCFG/switch-masked-bits.ll +++ b/llvm/test/Transforms/SimplifyCFG/switch-masked-bits.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt -S -simplifycfg < %s | FileCheck %s +; RUN: opt -S -simplifycfg -simplifycfg-require-and-preserve-domtree=1 < %s | FileCheck %s define i32 @test1(i32 %x) nounwind { ; CHECK-LABEL: @test1( diff --git a/llvm/test/Transforms/SimplifyCFG/switch-on-const-select.ll b/llvm/test/Transforms/SimplifyCFG/switch-on-const-select.ll index 98c434a5a0ec..013096625b1c 100644 --- a/llvm/test/Transforms/SimplifyCFG/switch-on-const-select.ll +++ b/llvm/test/Transforms/SimplifyCFG/switch-on-const-select.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt < %s -simplifycfg -S | FileCheck -enable-var-scope %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck -enable-var-scope %s ; Test basic folding to a conditional branch. define i32 @foo(i64 %x, i64 %y) nounwind { diff --git a/llvm/test/Transforms/SimplifyCFG/switch-simplify-crash.ll b/llvm/test/Transforms/SimplifyCFG/switch-simplify-crash.ll index bbc0bd78da7c..755ad0a16338 100644 --- a/llvm/test/Transforms/SimplifyCFG/switch-simplify-crash.ll +++ b/llvm/test/Transforms/SimplifyCFG/switch-simplify-crash.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -simplifycfg -disable-output +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -disable-output define void @NewExtractNames() { entry: diff --git a/llvm/test/Transforms/SimplifyCFG/switch-to-icmp.ll b/llvm/test/Transforms/SimplifyCFG/switch-to-icmp.ll index bfacf25ca7f7..bfb27cd46114 100644 --- a/llvm/test/Transforms/SimplifyCFG/switch-to-icmp.ll +++ b/llvm/test/Transforms/SimplifyCFG/switch-to-icmp.ll @@ -1,4 +1,4 @@ -; RUN: opt -S -simplifycfg < %s | FileCheck %s +; RUN: opt -S -simplifycfg -simplifycfg-require-and-preserve-domtree=1 < %s | FileCheck %s define zeroext i1 @test1(i32 %x) nounwind readnone ssp noredzone { entry: diff --git a/llvm/test/Transforms/SimplifyCFG/switch-to-select-two-case.ll b/llvm/test/Transforms/SimplifyCFG/switch-to-select-two-case.ll index 31f5410bae40..bd3d5dff94d3 100644 --- a/llvm/test/Transforms/SimplifyCFG/switch-to-select-two-case.ll +++ b/llvm/test/Transforms/SimplifyCFG/switch-to-select-two-case.ll @@ -1,4 +1,4 @@ -; RUN: opt < %s -simplifycfg -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s ; int foo1_with_default(int a) { ; switch(a) { diff --git a/llvm/test/Transforms/SimplifyCFG/switch_switch_fold.ll b/llvm/test/Transforms/SimplifyCFG/switch_switch_fold.ll index 0df40349c1b3..e1095431f31f 100644 --- a/llvm/test/Transforms/SimplifyCFG/switch_switch_fold.ll +++ b/llvm/test/Transforms/SimplifyCFG/switch_switch_fold.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt < %s -simplifycfg -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s ; Test that a switch going to a switch on the same value can be merged. ; All three switches in this example can be merged into one big one. diff --git a/llvm/test/Transforms/SimplifyCFG/switch_thread.ll b/llvm/test/Transforms/SimplifyCFG/switch_thread.ll index e38865699d2e..3688757253ad 100644 --- a/llvm/test/Transforms/SimplifyCFG/switch_thread.ll +++ b/llvm/test/Transforms/SimplifyCFG/switch_thread.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt < %s -simplifycfg -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s ; Test that we can thread a simple known condition through switch statements. diff --git a/llvm/test/Transforms/SimplifyCFG/unsigned-multiplication-will-overflow.ll b/llvm/test/Transforms/SimplifyCFG/unsigned-multiplication-will-overflow.ll index 1e87d869e21b..8f99279912e2 100644 --- a/llvm/test/Transforms/SimplifyCFG/unsigned-multiplication-will-overflow.ll +++ b/llvm/test/Transforms/SimplifyCFG/unsigned-multiplication-will-overflow.ll @@ -1,7 +1,7 @@ ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py -; RUN: opt < %s -simplifycfg -S | FileCheck %s -; RUN: opt < %s -simplifycfg -phi-node-folding-threshold=2 -S | FileCheck %s -; RUN: opt < %s -simplifycfg -phi-node-folding-threshold=3 -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -phi-node-folding-threshold=2 -S | FileCheck %s +; RUN: opt < %s -simplifycfg -simplifycfg-require-and-preserve-domtree=1 -phi-node-folding-threshold=3 -S | FileCheck %s ; This is checking that the multiplication does overflow, with a leftover ; guard against division-by-zero that was needed before InstCombine _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits