comparison test/Analysis/BasicAA/gcsetest.ll @ 95:afa8332a0e37 LLVM3.8

LLVM 3.8
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Tue, 13 Oct 2015 17:48:58 +0900
parents 60c9769439b8
children
comparison
equal deleted inserted replaced
84:f3e34b893a5f 95:afa8332a0e37
10 ; CHECK: define i32 @test() 10 ; CHECK: define i32 @test()
11 ; CHECK-NEXT: store i32 123, i32* @B 11 ; CHECK-NEXT: store i32 123, i32* @B
12 ; CHECK-NEXT: ret i32 0 12 ; CHECK-NEXT: ret i32 0
13 13
14 define i32 @test() { 14 define i32 @test() {
15 %A1 = load i32* @A 15 %A1 = load i32, i32* @A
16 16
17 store i32 123, i32* @B ; Store cannot alias @A 17 store i32 123, i32* @B ; Store cannot alias @A
18 18
19 %A2 = load i32* @A 19 %A2 = load i32, i32* @A
20 %X = sub i32 %A1, %A2 20 %X = sub i32 %A1, %A2
21 ret i32 %X 21 ret i32 %X
22 } 22 }
23 23
24 ; CHECK: define i32 @test2() 24 ; CHECK: define i32 @test2()
28 ; CHECK-NEXT: br i1 true, label %out, label %Loop 28 ; CHECK-NEXT: br i1 true, label %out, label %Loop
29 ; CHECK: out: 29 ; CHECK: out:
30 ; CHECK-NEXT: ret i32 0 30 ; CHECK-NEXT: ret i32 0
31 31
32 define i32 @test2() { 32 define i32 @test2() {
33 %A1 = load i32* @A 33 %A1 = load i32, i32* @A
34 br label %Loop 34 br label %Loop
35 Loop: 35 Loop:
36 %AP = phi i32 [0, %0], [%X, %Loop] 36 %AP = phi i32 [0, %0], [%X, %Loop]
37 store i32 %AP, i32* @B ; Store cannot alias @A 37 store i32 %AP, i32* @B ; Store cannot alias @A
38 38
39 %A2 = load i32* @A 39 %A2 = load i32, i32* @A
40 %X = sub i32 %A1, %A2 40 %X = sub i32 %A1, %A2
41 %c = icmp eq i32 %X, 0 41 %c = icmp eq i32 %X, 0
42 br i1 %c, label %out, label %Loop 42 br i1 %c, label %out, label %Loop
43 43
44 out: 44 out:
53 53
54 define i32 @test3() { 54 define i32 @test3() {
55 %X = alloca i32 55 %X = alloca i32
56 store i32 7, i32* %X 56 store i32 7, i32* %X
57 call void @external() 57 call void @external()
58 %V = load i32* %X 58 %V = load i32, i32* %X
59 ret i32 %V 59 ret i32 %V
60 } 60 }
61 61