[PATCH] D158760: [ConstraintElim] Remove dead compares after simplification.

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 24 11:29:58 PDT 2023


fhahn created this revision.
fhahn added reviewers: nikic, zjaffal, mkazantsev, rapidsna, antoniofrighetto.
Herald added subscribers: StephenFan, arphaman, hiraditya.
Herald added a project: All.
fhahn requested review of this revision.
Herald added a project: LLVM.

Remove compares after replacing all uses. Cleaning dead compares can
enable additional simplifications when adjusting the position of the
pass slightly. In particular, it seems like the additional dead
instructions may prevent SimplifyCFG performing some folds.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D158760

Files:
  llvm/lib/Transforms/Scalar/ConstraintElimination.cpp
  llvm/test/Transforms/ConstraintElimination/add-nsw.ll
  llvm/test/Transforms/ConstraintElimination/add-nuw.ll
  llvm/test/Transforms/ConstraintElimination/analysis-invalidation.ll
  llvm/test/Transforms/ConstraintElimination/and-implied-by-operands.ll
  llvm/test/Transforms/ConstraintElimination/and.ll
  llvm/test/Transforms/ConstraintElimination/assumes.ll
  llvm/test/Transforms/ConstraintElimination/cond-used-in-phi.ll
  llvm/test/Transforms/ConstraintElimination/constants-signed-predicates.ll
  llvm/test/Transforms/ConstraintElimination/constants-unsigned-predicates.ll
  llvm/test/Transforms/ConstraintElimination/decompose-with-temporary-indices.ll
  llvm/test/Transforms/ConstraintElimination/dom.ll
  llvm/test/Transforms/ConstraintElimination/empty-constraint.ll
  llvm/test/Transforms/ConstraintElimination/eq.ll
  llvm/test/Transforms/ConstraintElimination/gep-add-multiple-indices.ll
  llvm/test/Transforms/ConstraintElimination/gep-arithmetic-add.ll
  llvm/test/Transforms/ConstraintElimination/gep-arithmetic-different-types.ll
  llvm/test/Transforms/ConstraintElimination/gep-arithmetic-signed-predicates.ll
  llvm/test/Transforms/ConstraintElimination/gep-arithmetic.ll
  llvm/test/Transforms/ConstraintElimination/gep-chains.ll
  llvm/test/Transforms/ConstraintElimination/gep-constexpr.ll
  llvm/test/Transforms/ConstraintElimination/gep-sub.ll
  llvm/test/Transforms/ConstraintElimination/geps-i32-pointer-indexes.ll
  llvm/test/Transforms/ConstraintElimination/geps-pointers-to-arrays.ll
  llvm/test/Transforms/ConstraintElimination/geps-pointers-to-structs.ll
  llvm/test/Transforms/ConstraintElimination/geps-ptrvector.ll
  llvm/test/Transforms/ConstraintElimination/geps-unsigned-predicates.ll
  llvm/test/Transforms/ConstraintElimination/invoke.ll
  llvm/test/Transforms/ConstraintElimination/large-constant-ints.ll
  llvm/test/Transforms/ConstraintElimination/large-system-growth.ll
  llvm/test/Transforms/ConstraintElimination/loops-header-tested-base.ll
  llvm/test/Transforms/ConstraintElimination/loops-header-tested-pointer-cmps.ll
  llvm/test/Transforms/ConstraintElimination/loops-header-tested-pointer-iv.ll
  llvm/test/Transforms/ConstraintElimination/loops.ll
  llvm/test/Transforms/ConstraintElimination/max-row-limit.ll
  llvm/test/Transforms/ConstraintElimination/minmax.ll
  llvm/test/Transforms/ConstraintElimination/mixed-signed-unsigned-predicates.ll
  llvm/test/Transforms/ConstraintElimination/mul-nsw.ll
  llvm/test/Transforms/ConstraintElimination/mul.ll
  llvm/test/Transforms/ConstraintElimination/ne.ll
  llvm/test/Transforms/ConstraintElimination/or.ll
  llvm/test/Transforms/ConstraintElimination/pointercast.ll
  llvm/test/Transforms/ConstraintElimination/range_checks.ll
  llvm/test/Transforms/ConstraintElimination/sge.ll
  llvm/test/Transforms/ConstraintElimination/shl.ll
  llvm/test/Transforms/ConstraintElimination/signed-query-unsigned-system.ll
  llvm/test/Transforms/ConstraintElimination/sub-nuw.ll
  llvm/test/Transforms/ConstraintElimination/switch.ll
  llvm/test/Transforms/ConstraintElimination/transfer-signed-facts-to-unsigned.ll
  llvm/test/Transforms/ConstraintElimination/transfer-unsigned-facts-to-signed.ll
  llvm/test/Transforms/ConstraintElimination/uge.ll
  llvm/test/Transforms/ConstraintElimination/ugt-ule.ll
  llvm/test/Transforms/ConstraintElimination/ule.ll
  llvm/test/Transforms/ConstraintElimination/uses-in-different-blocks.ll
  llvm/test/Transforms/ConstraintElimination/vector-compares.ll
  llvm/test/Transforms/ConstraintElimination/wrapping-math.ll
  llvm/test/Transforms/ConstraintElimination/zext-for-per-formula-reasoning.ll
  llvm/test/Transforms/ConstraintElimination/zext.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D158760.553210.patch
Type: text/x-patch
Size: 179128 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230824/32c34c93/attachment-0001.bin>


More information about the llvm-commits mailing list