29 lines
576 B
LLVM
29 lines
576 B
LLVM
|
; 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
|
||
|
}
|
||
|
|