The legacy PM is deprecated, so update a bunch of lit tests running opt to use the new PM syntax when specifying the pipeline. In this patch focus has been put on test cases for ConstantMerge, ConstraintElimination, CorrelatedValuePropagation, GlobalDCE, GlobalOpt, SCCP, TailCallElim and PredicateInfo. Differential Revision: https://reviews.llvm.org/D114516
29 lines
583 B
LLVM
29 lines
583 B
LLVM
; RUN: opt -S < %s -passes=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
|
|
}
|
|
|