blob: 3b1dfb453593a8664d98259232c0c9365cbb044f [file] [log] [blame] [edit]
; REQUIRES: asserts
; RUN: opt -passes=dce -S -debug-counter=dce-transform=1-2 < %s | FileCheck %s --check-prefixes=CHECK,NO-PRINT
; RUN: opt -passes=dce -S -debug-counter=dce-transform=1-2 -print-debug-counter-queries < %s 2>&1 | FileCheck %s --check-prefixes=CHECK,PRINT
;; Test that, with debug counters on, we will skip the first DCE opportunity, perform next 2,
;; and ignore all the others left.
; NO-PRINT-NOT: DebugCounter
; PRINT: DebugCounter dce-transform=0 skip
; PRINT-NEXT: DebugCounter dce-transform=1 execute
; PRINT-NEXT: DebugCounter dce-transform=2 execute
; PRINT-NEXT: DebugCounter dce-transform=3 skip
; PRINT-NEXT: DebugCounter dce-transform=4 skip
; CHECK-LABEL: @test
; CHECK-NEXT: %add1 = add i32 1, 2
; CHECK-NEXT: %sub1 = sub i32 %add1, 1
; CHECK-NEXT: %add2 = add i32 1, 2
; CHECK-NEXT: %add3 = add i32 1, 2
; CHECK-NEXT: ret void
define void @test() {
%add1 = add i32 1, 2
%sub1 = sub i32 %add1, 1
%add2 = add i32 1, 2
%sub2 = sub i32 %add2, 1
%add3 = add i32 1, 2
%sub3 = sub i32 %add3, 1
ret void
}