;; Test that MemProfContextDisambiguation is enabled under the expected conditions ;; and in the expected position. ;; Pass is not currently enabled by default at any opt level. ; RUN: opt -debug-pass-manager -passes='lto' -S %s \ ; RUN: 2>&1 | FileCheck %s --implicit-check-not="Running pass: MemProfContextDisambiguation" ; RUN: opt -debug-pass-manager -passes='lto' -S %s \ ; RUN: 2>&1 | FileCheck %s --implicit-check-not="Running pass: MemProfContextDisambiguation" ; RUN: opt -debug-pass-manager -passes='lto' -S %s \ ; RUN: 2>&1 | FileCheck %s --implicit-check-not="Running pass: MemProfContextDisambiguation" ; RUN: opt -debug-pass-manager -passes='lto' -S %s \ ; RUN: 2>&1 | FileCheck %s --implicit-check-not="Running pass: MemProfContextDisambiguation" ;; Pass should not run even under option at O0/O1. ; RUN: opt -debug-pass-manager -passes='lto' -S %s \ ; RUN: -enable-memprof-context-disambiguation \ ; RUN: 2>&1 | FileCheck %s --implicit-check-not="Running pass: MemProfContextDisambiguation" ; RUN: opt -debug-pass-manager -passes='lto' -S %s \ ; RUN: -enable-memprof-context-disambiguation \ ; RUN: 2>&1 | FileCheck %s --implicit-check-not="Running pass: MemProfContextDisambiguation" ;; Pass should be enabled under option at O2/O3. ; RUN: opt -debug-pass-manager -passes='lto' -S %s \ ; RUN: -enable-memprof-context-disambiguation \ ; RUN: 2>&1 | FileCheck %s --check-prefix=ENABLED ; RUN: opt -debug-pass-manager -passes='lto' -S %s \ ; RUN: -enable-memprof-context-disambiguation \ ; RUN: 2>&1 | FileCheck %s --check-prefix=ENABLED ;; When enabled, MemProfContextDisambiguation runs just after inlining. ; ENABLED: Running pass: InlinerPass ; ENABLED: Invalidating analysis: InlineAdvisorAnalysis ; ENABLED: Running pass: MemProfContextDisambiguation define noundef ptr @_Z3barv() { entry: %call = call noalias noundef nonnull ptr @_Znam(i64 noundef 10) ret ptr %call } declare noundef nonnull ptr @_Znam(i64 noundef)