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
19 lines
577 B
LLVM
19 lines
577 B
LLVM
; Make sure that functions are removed successfully if they are referred to by
|
|
; a global that is dead. Make sure any globals they refer to die as well.
|
|
|
|
; RUN: opt < %s -passes=globaldce -S | FileCheck %s
|
|
|
|
; CHECK-NOT: foo
|
|
;; Unused, kills %foo
|
|
@b = internal global i32 ()* @foo ; <i32 ()**> [#uses=0]
|
|
|
|
;; Should die when function %foo is killed
|
|
@foo.upgrd.1 = internal global i32 7 ; <i32*> [#uses=1]
|
|
|
|
;; dies when %b dies.
|
|
define internal i32 @foo() {
|
|
%ret = load i32, i32* @foo.upgrd.1 ; <i32> [#uses=1]
|
|
ret i32 %ret
|
|
}
|
|
|