1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/test/Other/new-pm-pr42726-cgscc.ll
Arthur Eubanks cdf50f8461 [NewPM][opt] Run the "default" AA pipeline by default
We tend to assume that the AA pipeline is by default the default AA
pipeline and it's confusing when it's empty instead.

PR48779

Initially reverted due to BasicAA running analyses in an unspecified
order (multiple function calls as parameters), fixed by fetching
analyses before the call to construct BasicAA.

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D95117
2021-01-21 21:08:54 -08:00

58 lines
923 B
LLVM

; RUN: opt -passes="default<O1>" %s -S | FileCheck %s
; REQUIRES: asserts
declare void @bar()
declare void @baz(i32*)
; CHECK-LABEL: @foo1()
define void @foo1() {
entry:
%tag = alloca i32, align 4
call void @baz(i32* %tag)
%tmp = load i32, i32* %tag, align 4
switch i32 %tmp, label %sw.bb799 [
i32 10, label %sw.bb239
]
sw.bb239:
call void @foo2()
br label %cleanup871
sw.bb799:
call void @foo3(i32 undef)
br label %cleanup871
cleanup871:
call void @bar()
unreachable
}
define void @foo2() {
call void @foo4()
unreachable
}
define void @foo3(i32 %ptr) {
call void @foo1()
unreachable
}
define void @foo4() {
entry:
%tag = alloca i32, align 4
call void @baz(i32* %tag)
%tmp = load i32, i32* %tag, align 4
switch i32 %tmp, label %sw.bb442 [
i32 16, label %sw.bb352
]
sw.bb352:
call void @foo3(i32 undef)
unreachable
sw.bb442:
call void @foo2()
unreachable
}