| Chris Lattner | 1f71401 | 2003-08-24 05:02:26 +0000 | [diff] [blame] | 1 | ; This checks to ensure that the inline pass deletes functions if they get |
| 2 | ; inlined into all of their callers. |
| 3 | |
| Dan Gohman | 1880092 | 2009-09-11 18:01:28 +0000 | [diff] [blame] | 4 | ; RUN: opt < %s -inline -S | \ |
| Dan Gohman | 2cdcf2b | 2008-05-01 23:50:07 +0000 | [diff] [blame] | 5 | ; RUN: not grep @reallysmall |
| Chris Lattner | 1f71401 | 2003-08-24 05:02:26 +0000 | [diff] [blame] | 6 | |
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 7 | define internal i32 @reallysmall(i32 %A) { |
| 8 | ret i32 %A |
| Chris Lattner | 1f71401 | 2003-08-24 05:02:26 +0000 | [diff] [blame] | 9 | } |
| 10 | |
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 11 | define void @caller1() { |
| 12 | call i32 @reallysmall( i32 5 ) ; <i32>:1 [#uses=0] |
| 13 | ret void |
| Chris Lattner | 1f71401 | 2003-08-24 05:02:26 +0000 | [diff] [blame] | 14 | } |
| 15 | |
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 16 | define void @caller2(i32 %A) { |
| 17 | call i32 @reallysmall( i32 %A ) ; <i32>:1 [#uses=0] |
| 18 | ret void |
| Chris Lattner | 1f71401 | 2003-08-24 05:02:26 +0000 | [diff] [blame] | 19 | } |
| 20 | |
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 21 | define i32 @caller3(i32 %A) { |
| 22 | %B = call i32 @reallysmall( i32 %A ) ; <i32> [#uses=1] |
| 23 | ret i32 %B |
| Chris Lattner | 1f71401 | 2003-08-24 05:02:26 +0000 | [diff] [blame] | 24 | } |
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 25 | |