[PGO][Pipeline] Enable PGOForceFunctionAttrs in PGO optimization pipelines (#106790)
Remove flag that turns on the PGOForceFunctionAttrs pass and always add it to default pipelines when using PGO. This is NFC by default since PGOOpt->ColdOptType is by default ColdFuncOpt::Default. Remove -O2 RUN line in basic.ll since we now have the pipeline tests.
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
; RUN: %clang_cc1 -O2 -mllvm -pgo-cold-func-opt=optsize -mllvm -enable-pgo-force-function-attrs -fprofile-sample-use=%S/Inputs/pgo-sample.prof %s -emit-llvm -o - | FileCheck %s --check-prefix=OPTSIZE
|
||||
; RUN: %clang_cc1 -O2 -mllvm -pgo-cold-func-opt=optsize -fprofile-sample-use=%S/Inputs/pgo-sample.prof %s -emit-llvm -o - | FileCheck %s --check-prefix=OPTSIZE
|
||||
; Check that no profile means no optsize
|
||||
; RUN: %clang_cc1 -O2 -mllvm -pgo-cold-func-opt=optsize -mllvm -enable-pgo-force-function-attrs %s -emit-llvm -o - | FileCheck %s --check-prefix=NONE
|
||||
; RUN: %clang_cc1 -O2 -mllvm -pgo-cold-func-opt=optsize %s -emit-llvm -o - | FileCheck %s --check-prefix=NONE
|
||||
; Check that no -pgo-cold-func-opt=optsize means no optsize
|
||||
; RUN: %clang_cc1 -O2 -mllvm -enable-pgo-force-function-attrs -fprofile-sample-use=%S/Inputs/pgo-sample.prof %s -emit-llvm -o - | FileCheck %s --check-prefix=NONE
|
||||
; RUN: %clang_cc1 -O2 -fprofile-sample-use=%S/Inputs/pgo-sample.prof %s -emit-llvm -o - | FileCheck %s --check-prefix=NONE
|
||||
|
||||
; NONE-NOT: optsize
|
||||
; OPTSIZE: optsize
|
||||
|
||||
@@ -227,12 +227,6 @@ static cl::opt<bool>
|
||||
cl::desc("Enable DFA jump threading"),
|
||||
cl::init(false), cl::Hidden);
|
||||
|
||||
// TODO: turn on and remove flag
|
||||
static cl::opt<bool> EnablePGOForceFunctionAttrs(
|
||||
"enable-pgo-force-function-attrs",
|
||||
cl::desc("Enable pass to set function attributes based on PGO profiles"),
|
||||
cl::init(false));
|
||||
|
||||
static cl::opt<bool>
|
||||
EnableHotColdSplit("hot-cold-split",
|
||||
cl::desc("Enable hot-cold splitting pass"));
|
||||
@@ -1222,7 +1216,8 @@ PassBuilder::buildModuleSimplificationPipeline(OptimizationLevel Level,
|
||||
if (EnableSyntheticCounts && !PGOOpt)
|
||||
MPM.addPass(SyntheticCountsPropagation());
|
||||
|
||||
if (EnablePGOForceFunctionAttrs && PGOOpt)
|
||||
if (PGOOpt && (PGOOpt->Action == PGOOptions::IRUse ||
|
||||
PGOOpt->Action == PGOOptions::SampleUse))
|
||||
MPM.addPass(PGOForceFunctionAttrsPass(PGOOpt->ColdOptType));
|
||||
|
||||
MPM.addPass(AlwaysInlinerPass(/*InsertLifetimeIntrinsics=*/true));
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
; Should be no changes without profile data
|
||||
; RUN: opt < %s -passes=pgo-force-function-attrs -S -pgo-cold-func-opt=minsize | FileCheck %s --check-prefixes=NONE,CHECK
|
||||
; RUN: opt < %s -passes='default<O2>' -enable-pgo-force-function-attrs -S -pgo-cold-func-opt=minsize | FileCheck %s --check-prefixes=O2
|
||||
|
||||
; NONE-NOT: Function Attrs:
|
||||
; OPTSIZE: Function Attrs: optsize{{$}}
|
||||
|
||||
@@ -59,6 +59,7 @@
|
||||
; CHECK-O-NEXT: Running analysis: PostDominatorTreeAnalysis on foo
|
||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass on foo
|
||||
|
||||
; CHECK-O-NEXT: Running pass: PGOForceFunctionAttrsPass
|
||||
; CHECK-O-NEXT: Running pass: AlwaysInlinerPass
|
||||
; CHECK-O-NEXT: Running pass: ModuleInlinerWrapperPass
|
||||
; CHECK-O-NEXT: Running analysis: InlineAdvisorAnalysis
|
||||
|
||||
@@ -84,6 +84,7 @@
|
||||
; CHECK-O-NEXT: Running pass: PGOIndirectCallPromotion on
|
||||
; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy
|
||||
; CHECK-O-NEXT: Running analysis: OptimizationRemarkEmitterAnalysis on foo
|
||||
; CHECK-O-NEXT: Running pass: PGOForceFunctionAttrsPass
|
||||
; CHECK-O-NEXT: Running pass: AlwaysInlinerPass
|
||||
; CHECK-O-NEXT: Running pass: ModuleInlinerWrapperPass
|
||||
; CHECK-O-NEXT: Running analysis: InlineAdvisorAnalysis
|
||||
|
||||
@@ -64,6 +64,7 @@
|
||||
; CHECK-O-NEXT: Running analysis: LoopAnalysis on foo
|
||||
; CHECK-O-NEXT: Running analysis: PostDominatorTreeAnalysis on foo
|
||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass on foo
|
||||
; CHECK-O-NEXT: Running pass: PGOForceFunctionAttrsPass
|
||||
; CHECK-O-NEXT: Running pass: AlwaysInlinerPass
|
||||
; CHECK-O-NEXT: Running pass: ModuleInlinerWrapperPass
|
||||
; CHECK-O-NEXT: Running analysis: InlineAdvisorAnalysis
|
||||
|
||||
Reference in New Issue
Block a user