; Test skipping inlining when the callsite is unreachable (for both mandatory ; and non-mandatory cases) ; REQUIRES: llvm_inliner_model_autogenerated ; RUN: opt -passes=inliner-ml-advisor-release -S < %s | FileCheck %s --check-prefix=CHECK target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-grtev4-linux-gnu" ; Mandatory case define i32 @f1() { entry: br label %exit some_bb: ; unreachable - has no predecessors %r = call i32 @f2() br label %exit exit: ret i32 1 } define i32 @f2() #0 { ret i32 2 } ; Non-mandatory case define i32 @f3() { entry: br label %exit some_bb: ; unreachable - has no predecessors %r = call i32 @f4() br label %exit exit: ret i32 1 } define i32 @f4() { ret i32 2 } attributes #0 = { alwaysinline } ; CHECK-LABEL: @f1 ; CHECK-LABEL: some_bb ; CHECK-NEXT: call i32 @f2 ; CHECK-LABEL: @f3 ; CHECK-LABEL: some_bb ; CHECK-NEXT: call i32 @f4