[PATCH] D109234: [PGO] Change ThinLTO test for targets with loop unrolling disabled

Teresa Johnson via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Sep 15 08:14:22 PDT 2021


tejohnson added inline comments.


================
Comment at: clang/test/CodeGen/pgo-sample-thinlto-summary.c:3
+// RUN: %clang_cc1 -mllvm -debug-pass=Structure -O2 -fno-experimental-new-pass-manager -fprofile-sample-use=%S/Inputs/pgo-sample-thinlto-summary.prof %s -emit-llvm -flto=thin -o - 2>&1 | FileCheck %s -check-prefix=THINLTO-OLDPM
+// RUN: %clang_cc1 -mllvm -debug-pass=Structure -O2 -fexperimental-new-pass-manager -fdebug-pass-manager -fprofile-sample-use=%S/Inputs/pgo-sample-thinlto-summary.prof %s -emit-llvm -o - 2>&1 | FileCheck %s -check-prefix=SAMPLEPGO
+// RUN: %clang_cc1 -mllvm -debug-pass=Structure -O2 -fexperimental-new-pass-manager -fdebug-pass-manager -fprofile-sample-use=%S/Inputs/pgo-sample-thinlto-summary.prof %s -emit-llvm -flto=thin -o - 2>&1 | FileCheck %s -check-prefix=THINLTO
----------------
thopre wrote:
> While we now need to explicitely request the old pass manager, the new pass manager is the default so we don't need to be explicit.
For the newPM, remove -mllvm -debug-pass=Structure since it isn't doing anything, and you are getting the printing from -fdebug-pass-manager. Also suggest moving the -fdebug-pass-manager into the position where you currently have  -mllvm -debug-pass=Structure so the printing options are in the equivalent place for both PM invocations.


================
Comment at: clang/test/CodeGen/pgo-sample-thinlto-summary.c:27
+// THINLTO-OLDPM-NOT:       PGOIndirectCallPromotion
+// THINLTO-OLDPM:           Unroll loops
+// THINLTO-OLDPM-NOT:       Unroll loops
----------------
sherwin-dc wrote:
> When printing out passes with the old PM 'Unroll loops' is printed out twice with sample PGO and once with thin LTO.
I looked at the old PM, the first one is the createSimpleLoopUnrollPass that does some full unrolling and peeling of small constant trip count loops. Can you just add a comment above the check for the first Unroll loops here for ThinLTO to note this. It's the second invocation that we delay until the ThinLTO backends.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D109234/new/

https://reviews.llvm.org/D109234



More information about the cfe-commits mailing list