| ; RUN: opt -S < %s -globalopt | FileCheck %s |
| |
| @G = internal global i32 42 |
| |
| define i8 @f() norecurse { |
| ; CHECK-LABEL: @f |
| ; CHECK: alloca |
| ; CHECK-NOT: @G |
| ; CHECK: } |
| store i32 42, i32* @G |
| %a = load i8, i8* bitcast (i32* @G to i8*) |
| ret i8 %a |
| } |
| |
| @H = internal global i32 42 |
| @Halias = alias i32, i32* @H |
| |
| ; @H can't be localized because @Halias uses it, and @Halias can't be converted to an instruction. |
| define i8 @g() norecurse { |
| ; CHECK-LABEL: @g |
| ; CHECK-NOT: alloca |
| ; CHECK: @H |
| ; CHECK: } |
| store i32 42, i32* @H |
| %a = load i8, i8* bitcast (i32* @H to i8*) |
| ret i8 %a |
| } |
| |