llvm/llvm/test/Other/count-visits.ll

; REQUIRES: asserts
; RUN: opt -passes=count-visits -stats 2>&1 -disable-output < %s | FileCheck %s --check-prefix=ONE
; RUN: opt -passes='cgscc(count-visits)' -stats 2>&1 -disable-output < %s | FileCheck %s --check-prefix=ONE
; RUN: opt -passes='cgscc(count-visits,instcombine)' -stats 2>&1 -disable-output < %s | FileCheck %s --check-prefix=TWO
; RUN: opt -passes='default<O1>' -stats 2>&1 -disable-output < %s | FileCheck %s --check-prefix=PIPELINE
; RUN: opt -passes='default<O3>' -stats 2>&1 -disable-output < %s | FileCheck %s --check-prefix=PIPELINE

; ONE: 1 count-visits - Max number of times we visited a function
; TWO: 2 count-visits - Max number of times we visited a function
; PIPELINE: count-visits - Max number of times we visited a function

define void @f() {
  %a = bitcast ptr @g to ptr
  call void %a()
  ret void
}

define void @g() {
  call void @f()
  ret void
}