Author: dehao Date: Thu Mar 23 16:20:17 2017 New Revision: 298647 URL: http://llvm.org/viewvc/llvm-project?rev=298647&view=rev Log: Update the SamplePGO test to verify that unroll/icp is not invoked in thinlto compile phase.
Summary: This is the test added for https://reviews.llvm.org/D31217 Reviewers: tejohnson, mehdi_amini Reviewed By: tejohnson Subscribers: cfe-commits, Prazek Differential Revision: https://reviews.llvm.org/D31219 Modified: cfe/trunk/test/CodeGen/Inputs/pgo-sample-thinlto-summary.prof cfe/trunk/test/CodeGen/pgo-sample-thinlto-summary.c Modified: cfe/trunk/test/CodeGen/Inputs/pgo-sample-thinlto-summary.prof URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/Inputs/pgo-sample-thinlto-summary.prof?rev=298647&r1=298646&r2=298647&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/Inputs/pgo-sample-thinlto-summary.prof (original) +++ cfe/trunk/test/CodeGen/Inputs/pgo-sample-thinlto-summary.prof Thu Mar 23 16:20:17 2017 @@ -1,2 +1,4 @@ bar:100:100 2: 2000 foo:2000 +icp:100:100 + 1: 1000 unroll:1000 Modified: cfe/trunk/test/CodeGen/pgo-sample-thinlto-summary.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/pgo-sample-thinlto-summary.c?rev=298647&r1=298646&r2=298647&view=diff ============================================================================== --- cfe/trunk/test/CodeGen/pgo-sample-thinlto-summary.c (original) +++ cfe/trunk/test/CodeGen/pgo-sample-thinlto-summary.c Thu Mar 23 16:20:17 2017 @@ -1,5 +1,5 @@ -// RUN: %clang_cc1 -O2 -fprofile-sample-use=%S/Inputs/pgo-sample-thinlto-summary.prof %s -emit-llvm -o - 2>&1 | FileCheck %s -check-prefix=INLINE -// RUN: %clang_cc1 -O2 -fprofile-sample-use=%S/Inputs/pgo-sample-thinlto-summary.prof %s -emit-llvm -flto=thin -o - 2>&1 | FileCheck %s -check-prefix=NOINLINE +// RUN: %clang_cc1 -O2 -fprofile-sample-use=%S/Inputs/pgo-sample-thinlto-summary.prof %s -emit-llvm -o - 2>&1 | FileCheck %s -check-prefix=O2 +// RUN: %clang_cc1 -O2 -fprofile-sample-use=%S/Inputs/pgo-sample-thinlto-summary.prof %s -emit-llvm -flto=thin -o - 2>&1 | FileCheck %s -check-prefix=THINLTO // Checks if hot call is inlined by normal compile, but not inlined by // thinlto compile. @@ -11,9 +11,32 @@ void foo(int n) { g += baz(i); } -// INLINE-NOT: call{{.*}}foo -// NOINLINE: call{{.*}}foo +// O2-LABEL: define void @bar +// THINLTO-LABEL: define void @bar +// O2-NOT: call{{.*}}foo +// THINLTO: call{{.*}}foo void bar(int n) { for (int i = 0; i < n; i++) foo(i); } + +// Checks if loop unroll is invoked by normal compile, but not thinlto compile. +// O2-LABEL: define void @unroll +// THINLTO-LABEL: define void @unroll +// O2: call{{.*}}baz +// O2: call{{.*}}baz +// THINLTO: call{{.*}}baz +// THINLTO-NOT: call{{.*}}baz +void unroll() { + for (int i = 0; i < 2; i++) + baz(i); +} + +// Checks if icp is invoked by normal compile, but not thinlto compile. +// O2-LABEL: define void @icp +// THINLTO-LABEL: define void @icp +// O2: if.true.direct_targ +// ThinLTO-NOT: if.true.direct_targ +void icp(void (*p)()) { + p(); +} _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits