diff options
author | Piotr Padlewski <piotr.padlewski@gmail.com> | 2016-09-29 17:32:07 +0000 |
---|---|---|
committer | Piotr Padlewski <piotr.padlewski@gmail.com> | 2016-09-29 17:32:07 +0000 |
commit | ba72b95f7bf2e3ea7fc49fa282c694ecf9f4fb62 (patch) | |
tree | 4907ad54fdf10e5d7cc780830577c98c5e5aff74 /llvm/test/Transforms/FunctionImport | |
parent | 3ace13adfa7a296595c3569d0e9bfc262aff33b5 (diff) | |
download | bcm5719-llvm-ba72b95f7bf2e3ea7fc49fa282c694ecf9f4fb62.tar.gz bcm5719-llvm-ba72b95f7bf2e3ea7fc49fa282c694ecf9f4fb62.zip |
[thinlto] Add cold-callsite import heuristic
Summary:
Not tunned up heuristic, but with this small heuristic there is about
+0.10% improvement on SPEC 2006
Reviewers: tejohnson, mehdi_amini, eraman
Subscribers: mehdi_amini, llvm-commits
Differential Revision: https://reviews.llvm.org/D24940
llvm-svn: 282733
Diffstat (limited to 'llvm/test/Transforms/FunctionImport')
-rw-r--r-- | llvm/test/Transforms/FunctionImport/hotness_based_import.ll | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/llvm/test/Transforms/FunctionImport/hotness_based_import.ll b/llvm/test/Transforms/FunctionImport/hotness_based_import.ll index 4dbe9bb5562..374e0ce103b 100644 --- a/llvm/test/Transforms/FunctionImport/hotness_based_import.ll +++ b/llvm/test/Transforms/FunctionImport/hotness_based_import.ll @@ -5,12 +5,13 @@ ; Test import with default hot multiplier (3) ; RUN: opt -function-import -summary-file %t3.thinlto.bc %t.bc -import-instr-limit=1 --S | FileCheck %s --check-prefix=CHECK --check-prefix=HOT-DEFAULT -; RUN: opt -function-import -summary-file %t3.thinlto.bc %t.bc -import-instr-limit=1 --S -import-hot-multiplier=3.0 | FileCheck %s --check-prefix=CHECK --check-prefix=HOT-DEFAULT +; RUN: opt -function-import -summary-file %t3.thinlto.bc %t.bc -import-instr-limit=1 --S -import-hot-multiplier=3.0 -import-cold-multiplier=0.0 | FileCheck %s --check-prefix=CHECK --check-prefix=HOT-DEFAULT + ; HOT-DEFAULT-DAG: define available_externally void @hot1() ; HOT-DEFAULT-DAG: define available_externally void @hot2() -; HOT-DEFAULT-DAG: define available_externally void @cold() ; HOT-DEFAULT-DAG: define available_externally void @none1() +; HOT-DEFAULT-NOT: define available_externally void @cold() ; HOT-DEFAULT-NOT: define available_externally void @hot3() ; HOT-DEFAULT-NOT: define available_externally void @none2() ; HOT-DEFAULT-NOT: define available_externally void @none3() @@ -20,17 +21,26 @@ ; Test import with hot multiplier 1.0 - treat hot callsites as normal. ; RUN: opt -function-import -summary-file %t3.thinlto.bc %t.bc -import-instr-limit=1 -import-hot-multiplier=1.0 --S | FileCheck %s --check-prefix=CHECK --check-prefix=HOT-ONE ; HOT-ONE-DAG: define available_externally void @hot1() -; HOT-ONE-DAG: define available_externally void @cold() ; HOT-ONE-DAG: define available_externally void @none1() +; HOT-ONE-NOT: define available_externally void @cold() ; HOT-ONE-NOT: define available_externally void @hot2() ; HOT-ONE-NOT: define available_externally void @hot3() ; HOT-ONE-NOT: define available_externally void @none2() ; HOT-ONE-NOT: define available_externally void @none3() ; HOT-ONE-NOT: define available_externally void @cold2() +; RUN: opt -function-import -summary-file %t3.thinlto.bc %t.bc -import-instr-limit=1 -import-hot-multiplier=1.0 -import-cold-multiplier=1.0 --S | FileCheck %s --check-prefix=CHECK --check-prefix=HOT-COLD-ONE +; HOT-COLD-ONE-DAG: define available_externally void @hot1() +; HOT-COLD-ONE-DAG: define available_externally void @cold() +; HOT-COLD-ONE-DAG: define available_externally void @none1() +; HOT-COLD-ONE-NOT: define available_externally void @hot2() +; HOT-COLD-ONE-NOT: define available_externally void @hot3() +; HOT-COLD-ONE-NOT: define available_externally void @none2() +; HOT-COLD-ONE-NOT: define available_externally void @none3() +; HOT-COLD-ONE-NOT: define available_externally void @cold2() ; Test import with hot multiplier 0.0 and high threshold - don't import functions called from hot callsite. -; RUN: opt -function-import -summary-file %t3.thinlto.bc %t.bc -import-instr-limit=10 -import-hot-multiplier=0.0 --S | FileCheck %s --check-prefix=CHECK --check-prefix=HOT-ZERO +; RUN: opt -function-import -summary-file %t3.thinlto.bc %t.bc -import-instr-limit=10 -import-hot-multiplier=0.0 -import-cold-multiplier=1.0 --S | FileCheck %s --check-prefix=CHECK --check-prefix=HOT-ZERO ; HOT-ZERO-DAG: define available_externally void @cold() ; HOT-ZERO-DAG: define available_externally void @none1() ; HOT-ZERO-DAG: define available_externally void @none2() |