[LICM] Remove AST-based implementation
authorNikita Popov <nikita.ppv@gmail.com>
Tue, 17 Aug 2021 19:31:35 +0000 (21:31 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Wed, 18 Aug 2021 18:21:53 +0000 (20:21 +0200)
commit3dd8c9176be9515dc722b43d9ffb048b32ff5015
treee92d287529fb132e91265d5a2393aae8c60159a4
parent4d559837e887c278d7c27274f4f6b1b78b97c00d
[LICM] Remove AST-based implementation

MSSA-based LICM has been enabled by default for a few years now.
This drops the old AST-based implementation. Using loop(licm) will
result in a fatal error, the use of loop-mssa(licm) is required
(or just licm, which defaults to loop-mssa).

Note that the core canSinkOrHoistInst() logic has to retain AST
support for now, because it is shared with LoopSink.

Differential Revision: https://reviews.llvm.org/D108244
53 files changed:
llvm/include/llvm/Transforms/Utils/LoopUtils.h
llvm/lib/Transforms/Scalar/LICM.cpp
llvm/test/Analysis/BasicAA/store-promote.ll
llvm/test/Analysis/GlobalsModRef/dead-uses.ll
llvm/test/Analysis/MemorySSA/pr42294.ll
llvm/test/Other/optimization-remarks-invalidation.ll
llvm/test/Other/time-passes.ll
llvm/test/Transforms/ADCE/broken-loop-info.ll
llvm/test/Transforms/LICM/assume.ll
llvm/test/Transforms/LICM/atomics.ll
llvm/test/Transforms/LICM/basictest.ll
llvm/test/Transforms/LICM/call-hoisting.ll
llvm/test/Transforms/LICM/constexpr.ll
llvm/test/Transforms/LICM/crash.ll
llvm/test/Transforms/LICM/debug-value.ll
llvm/test/Transforms/LICM/explicit_guards.ll
llvm/test/Transforms/LICM/extra-copies.ll
llvm/test/Transforms/LICM/fence.ll
llvm/test/Transforms/LICM/funclet.ll
llvm/test/Transforms/LICM/guards.ll
llvm/test/Transforms/LICM/hoist-bitcast-load.ll
llvm/test/Transforms/LICM/hoist-deref-load.ll
llvm/test/Transforms/LICM/hoist-mustexec.ll
llvm/test/Transforms/LICM/hoist-nounwind.ll
llvm/test/Transforms/LICM/hoist-phi.ll
llvm/test/Transforms/LICM/hoist-round.ll
llvm/test/Transforms/LICM/hoisting.ll
llvm/test/Transforms/LICM/infinite_loops.ll
llvm/test/Transforms/LICM/lcssa-ssa-promoter.ll
llvm/test/Transforms/LICM/lnicm-sink.ll
llvm/test/Transforms/LICM/lnicm.ll
llvm/test/Transforms/LICM/no-preheader-test.ll
llvm/test/Transforms/LICM/opt-remarks-conditional-load.ll
llvm/test/Transforms/LICM/opt-remarks-intervening-store.ll
llvm/test/Transforms/LICM/opt-remarks.ll
llvm/test/Transforms/LICM/pr37323.ll
llvm/test/Transforms/LICM/pr38513.ll
llvm/test/Transforms/LICM/preheader-safe.ll
llvm/test/Transforms/LICM/promote-order.ll
llvm/test/Transforms/LICM/promote-tls.ll
llvm/test/Transforms/LICM/scalar-promote-memmodel.ll
llvm/test/Transforms/LICM/scalar-promote-unwind.ll
llvm/test/Transforms/LICM/scalar-promote.ll
llvm/test/Transforms/LICM/sink.ll
llvm/test/Transforms/LICM/speculate.ll
llvm/test/Transforms/LICM/store-hoisting.ll
llvm/test/Transforms/LICM/unrolled-deeply-nested.ll
llvm/test/Transforms/LICM/update-scev.ll
llvm/test/Transforms/LICM/volatile-alias.ll
llvm/test/Transforms/LoopVersioningLICM/loopversioningLICM1.ll
llvm/test/Transforms/LoopVersioningLICM/loopversioningLICM2.ll
llvm/test/Transforms/LoopVersioningLICM/metadata.ll
llvm/unittests/Transforms/Scalar/LICMTest.cpp