[all-commits] [llvm/llvm-project] ff4b1d: [NFCI-ish][SimplifyCFGPass] Rework and generalize ...

Roman Lebedev via All-commits all-commits at lists.llvm.org
Wed Jun 23 04:34:00 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ff4b1d379f3f3d2dfd9f9b4fc5715676024b8024
      https://github.com/llvm/llvm-project/commit/ff4b1d379f3f3d2dfd9f9b4fc5715676024b8024
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-06-23 (Wed, 23 Jun 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp
    M llvm/test/CodeGen/ARM/speculation-hardening-sls.ll
    M llvm/test/Transforms/LoopUnroll/ARM/upperbound.ll
    M llvm/test/Transforms/SimplifyCFG/2003-08-17-FoldSwitch.ll
    M llvm/test/Transforms/SimplifyCFG/ConditionalTrappingConstantExpr.ll
    M llvm/test/Transforms/SimplifyCFG/FoldValueComparisonIntoPredecessors-domtree-preservation-edgecase.ll
    M llvm/test/Transforms/SimplifyCFG/FoldValueComparisonIntoPredecessors-no-new-successors.ll
    M llvm/test/Transforms/SimplifyCFG/SimplifyEqualityComparisonWithOnlyPredecessor-domtree-preservation-edgecase.ll
    M llvm/test/Transforms/SimplifyCFG/basictest.ll
    M llvm/test/Transforms/SimplifyCFG/hoist-dbgvalue.ll
    M llvm/test/Transforms/SimplifyCFG/pr48778-sdiv-speculation.ll
    M llvm/test/Transforms/SimplifyCFG/rangereduce.ll
    M llvm/test/Transforms/SimplifyCFG/return-merge.ll
    M llvm/test/Transforms/SimplifyCFG/suppress-zero-branch-weights.ll
    M llvm/test/Transforms/SimplifyCFG/switch-masked-bits.ll

  Log Message:
  -----------
  [NFCI-ish][SimplifyCFGPass] Rework and generalize `ret` block tail-merging

This changes the approach taken to tail-merge the blocks
to always create a new block instead of trying to reuse some block,
and generalizes it to support dealing not with just the `ret` in the future.

This effectively lifts the CallBr restriction, although this isn't really intentional.
That is the only non-NFC change here, i'm not sure if it's reasonable/feasible to temporarily retain it.

Other restrictions of the transform remain.

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D104598




More information about the All-commits mailing list