| ; RUN: opt < %s -passes='cgscc(inline)' -S | FileCheck %s |
| |
| @a = global i32 1 |
| @b = global i32 2 |
| @c = global double 3.141593e+00 |
| |
| define i32 @callee1() !implicit.ref !0 { |
| ret i32 0 |
| } |
| |
| define i32 @callee2() !implicit.ref !1 { |
| ret i32 1 |
| } |
| |
| define i32 @callee3() { |
| %i = call i32 @callee2() |
| ret i32 %i |
| } |
| ; CHECK: @callee3() !implicit.ref !1 |
| |
| define i32 @caller1() { |
| %i = call i32 @callee1() |
| ret i32 %i |
| } |
| ; CHECK: @caller1() !implicit.ref !0 |
| |
| define i32 @caller2() !implicit.ref !2 { |
| %i = call i32 @callee1() |
| ret i32 %i |
| } |
| ; CHECK: @caller2() !implicit.ref !2 !implicit.ref !0 |
| |
| define i32 @caller3() { |
| %i = call i32 @caller4() |
| ret i32 %i |
| } |
| ; CHECK: @caller3() !implicit.ref !0 !implicit.ref !1 |
| |
| define i32 @caller4() { |
| %a = call i32 @callee1() |
| %b = call i32 @callee2() |
| %add = add i32 %a, %b |
| ret i32 %add |
| } |
| ; CHECK: @caller4() !implicit.ref !0 !implicit.ref !1 |
| |
| !0 = !{ptr @a} |
| !1 = !{ptr @b} |
| !2 = !{ptr @c} |
| |