Files
clang-p2996/llvm/test/Transforms/LICM/basictest.ll
Nikita Popov 3dd8c9176b [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
2021-08-18 20:21:53 +02:00

17 lines
544 B
LLVM

; RUN: opt < %s -licm | llvm-dis
; RUN: opt -aa-pipeline=basic-aa -passes='require<aa>,require<targetir>,require<scalar-evolution>,require<opt-remark-emit>,loop-mssa(licm)' < %s | llvm-dis
define void @testfunc(i32 %i) {
; <label>:0
br label %Loop
Loop: ; preds = %Loop, %0
%j = phi i32 [ 0, %0 ], [ %Next, %Loop ] ; <i32> [#uses=1]
%i2 = mul i32 %i, 17 ; <i32> [#uses=1]
%Next = add i32 %j, %i2 ; <i32> [#uses=2]
%cond = icmp eq i32 %Next, 0 ; <i1> [#uses=1]
br i1 %cond, label %Out, label %Loop
Out: ; preds = %Loop
ret void
}