[all-commits] [llvm/llvm-project] 164e08: [SimplifyCFG] DeleteDeadBlock() already knows how ...

Roman Lebedev via All-commits all-commits at lists.llvm.org
Thu Dec 17 13:38:52 PST 2020


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 164e0847a59995c0e602c9e708dfb2bf41494780
      https://github.com/llvm/llvm-project/commit/164e0847a59995c0e602c9e708dfb2bf41494780
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2020-12-18 (Fri, 18 Dec 2020)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    M llvm/test/Transforms/GVNSink/indirect-call.ll
    M llvm/test/Transforms/GVNSink/sink-common-code.ll
    M llvm/test/Transforms/IndVarSimplify/loop_evaluate_1.ll
    M llvm/test/Transforms/IndVarSimplify/loop_evaluate_2.ll
    M llvm/test/Transforms/JumpThreading/lvi-tristate.ll
    M llvm/test/Transforms/LoopDeletion/simplify-then-delete.ll
    M llvm/test/Transforms/LoopVectorize/if-pred-non-void.ll
    M llvm/test/Transforms/PhaseOrdering/unsigned-multiply-overflow-check.ll
    M llvm/test/Transforms/SimplifyCFG/2005-06-16-PHICrash.ll
    M llvm/test/Transforms/SimplifyCFG/2006-12-08-Ptr-ICmp-Branch.ll
    M llvm/test/Transforms/SimplifyCFG/2008-12-06-SingleEntryPhi.ll
    M llvm/test/Transforms/SimplifyCFG/2008-12-16-DCECond.ll
    M llvm/test/Transforms/SimplifyCFG/2009-01-18-PHIPropCrash.ll
    M llvm/test/Transforms/SimplifyCFG/ARM/branch-fold-threshold.ll
    M llvm/test/Transforms/SimplifyCFG/ARM/phi-eliminate.ll
    M llvm/test/Transforms/SimplifyCFG/ARM/select-trunc-i64.ll
    M llvm/test/Transforms/SimplifyCFG/ARM/speculate-math.ll
    M llvm/test/Transforms/SimplifyCFG/BrUnwind.ll
    M llvm/test/Transforms/SimplifyCFG/ConditionalTrappingConstantExpr.ll
    M llvm/test/Transforms/SimplifyCFG/DeadSetCC.ll
    M llvm/test/Transforms/SimplifyCFG/HoistCode.ll
    M llvm/test/Transforms/SimplifyCFG/PR25267.ll
    M llvm/test/Transforms/SimplifyCFG/PR9946.ll
    M llvm/test/Transforms/SimplifyCFG/PhiBlockMerge.ll
    M llvm/test/Transforms/SimplifyCFG/PhiEliminate2.ll
    M llvm/test/Transforms/SimplifyCFG/RISCV/select-trunc-i64.ll
    M llvm/test/Transforms/SimplifyCFG/UncondBranchToReturn.ll
    M llvm/test/Transforms/SimplifyCFG/X86/CoveredLookupTable.ll
    M llvm/test/Transforms/SimplifyCFG/X86/PR29163.ll
    M llvm/test/Transforms/SimplifyCFG/X86/SpeculativeExec.ll
    M llvm/test/Transforms/SimplifyCFG/X86/pr39187-g.ll
    M llvm/test/Transforms/SimplifyCFG/X86/safe-low-bit-extract.ll
    M llvm/test/Transforms/SimplifyCFG/X86/speculate-cttz-ctlz.ll
    M llvm/test/Transforms/SimplifyCFG/X86/switch-covered-bug.ll
    M llvm/test/Transforms/SimplifyCFG/X86/switch-table-bug.ll
    M llvm/test/Transforms/SimplifyCFG/annotations.ll
    M llvm/test/Transforms/SimplifyCFG/basictest.ll
    M llvm/test/Transforms/SimplifyCFG/bbi-23595.ll
    M llvm/test/Transforms/SimplifyCFG/branch-fold-dbg.ll
    M llvm/test/Transforms/SimplifyCFG/branch-fold-threshold.ll
    M llvm/test/Transforms/SimplifyCFG/clamp.ll
    M llvm/test/Transforms/SimplifyCFG/common-dest-folding.ll
    M llvm/test/Transforms/SimplifyCFG/fold-debug-location.ll
    M llvm/test/Transforms/SimplifyCFG/hoist-common-code.ll
    M llvm/test/Transforms/SimplifyCFG/hoist-dbgvalue-inlined.ll
    M llvm/test/Transforms/SimplifyCFG/hoist-with-range.ll
    M llvm/test/Transforms/SimplifyCFG/no-md-sink.ll
    M llvm/test/Transforms/SimplifyCFG/opt-for-fuzzing.ll
    M llvm/test/Transforms/SimplifyCFG/pr39807.ll
    M llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll
    M llvm/test/Transforms/SimplifyCFG/rangereduce.ll
    M llvm/test/Transforms/SimplifyCFG/safe-abs.ll
    M llvm/test/Transforms/SimplifyCFG/signbit-like-value-extension.ll
    M llvm/test/Transforms/SimplifyCFG/speculate-math.ll
    M llvm/test/Transforms/SimplifyCFG/speculate-with-offset.ll
    M llvm/test/Transforms/SimplifyCFG/switch-masked-bits.ll
    M llvm/test/Transforms/SimplifyCFG/switch-on-const-select.ll
    M llvm/test/Transforms/SimplifyCFG/switch-simplify-crash.ll
    M llvm/test/Transforms/SimplifyCFG/switch-to-icmp.ll
    M llvm/test/Transforms/SimplifyCFG/switch-to-select-two-case.ll
    M llvm/test/Transforms/SimplifyCFG/switch_switch_fold.ll
    M llvm/test/Transforms/SimplifyCFG/switch_thread.ll
    M llvm/test/Transforms/SimplifyCFG/unsigned-multiplication-will-overflow.ll

  Log Message:
  -----------
  [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.


  Commit: 2ee724863e9cfe631fd7eb7eb63f8b795d68a388
      https://github.com/llvm/llvm-project/commit/2ee724863e9cfe631fd7eb7eb63f8b795d68a388
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2020-12-18 (Fri, 18 Dec 2020)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    M llvm/test/Transforms/SimplifyCFG/2004-12-10-SimplifyCFGCrash.ll
    M llvm/test/Transforms/SimplifyCFG/2008-09-08-MultiplePred.ll
    M llvm/test/Transforms/SimplifyCFG/2011-03-08-UnreachableUse.ll
    M llvm/test/Transforms/SimplifyCFG/fold-debug-info.ll
    M llvm/test/Transforms/SimplifyCFG/implied-cond-matching-false-dest.ll
    M llvm/test/Transforms/SimplifyCFG/implied-cond-matching.ll
    M llvm/test/Transforms/SimplifyCFG/implied-cond.ll
    M llvm/test/Transforms/SimplifyCFG/indirectbr.ll

  Log Message:
  -----------
  [SimplifyCFG] ConstantFoldTerminator() already knows how to preserve DomTree

... so just ensure that we pass DomTreeUpdater it into it.

Fixes DomTree preservation for a number of tests,
all of which are marked as such so that they do not regress.


  Commit: 2d07414ee5f74a09fb89723b4a9bb0818bdc2e18
      https://github.com/llvm/llvm-project/commit/2d07414ee5f74a09fb89723b4a9bb0818bdc2e18
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2020-12-18 (Fri, 18 Dec 2020)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    M llvm/test/Transforms/CallSiteSplitting/split-loop.ll
    M llvm/test/Transforms/LoopDeletion/2008-05-06-Phi.ll
    M llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll
    M llvm/test/Transforms/SimplifyCFG/X86/PR30210.ll
    M llvm/test/Transforms/SimplifyCFG/branch-fold.ll
    M llvm/test/Transforms/SimplifyCFG/empty-catchpad.ll
    M llvm/test/Transforms/SimplifyCFG/invoke_unwind_lifetime.ll
    M llvm/test/Transforms/SimplifyCFG/switch-profmd.ll
    M llvm/test/Transforms/SimplifyCFG/switch-range-to-icmp.ll
    M llvm/test/Transforms/SimplifyCFG/unreachable_assume.ll
    M llvm/test/Transforms/SimplifyCFG/wineh-unreachable.ll

  Log Message:
  -----------
  [SimplifyCFG] Teach simplifyUnreachable() to preserve DomTree

Pretty boring, removeUnwindEdge() already known how to update DomTree,
so if we are to call it, we must first flush our own pending updates;
otherwise, we just stop predecessors from branching to us,
and for certain predecessors, stop their predecessors from
branching to them also.


Compare: https://github.com/llvm/llvm-project/compare/c755e41c336c...2d07414ee5f7


More information about the All-commits mailing list