#
47c2bc58 |
| 05-Sep-2018 |
Richard Trieu <rtrieu@google.com> |
Prevent unsigned overflow.
The sum of the weights is caculated in an APInt, which has a width smaller than 64. In certain cases, the sum of the widths would overflow when calculations are done insi
Prevent unsigned overflow.
The sum of the weights is caculated in an APInt, which has a width smaller than 64. In certain cases, the sum of the widths would overflow when calculations are done inside an APInt, but would not if done with uint64_t. Since the values will be passed as uint64_t in the function call anyways, do all the math in 64 bits. Also added an assert in case the probabilities overflow 64 bits.
llvm-svn: 341444
show more ...
|
#
c8f348cb |
| 05-Sep-2018 |
Fangrui Song <maskray@google.com> |
Fix -Wunused-function in release build after rL341386
llvm-svn: 341443
|
#
bd897a02 |
| 04-Sep-2018 |
Hiroshi Yamauchi <yamauchi@google.com> |
Fix a memory leak after rL341386.
Reviewers: davidxl
Reviewed By: davidxl
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D51658
llvm-svn: 341412
|
#
792a4f8a |
| 04-Sep-2018 |
Reid Kleckner <rnk@google.com> |
Fix unused variable warning
llvm-svn: 341400
|
#
72ee6d60 |
| 04-Sep-2018 |
Hiroshi Yamauchi <yamauchi@google.com> |
Fix build failures after rL341386.
Reviewers: davidxl
Reviewed By: davidxl
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D51647
llvm-svn: 341391
|
#
9775a620 |
| 04-Sep-2018 |
Hiroshi Yamauchi <yamauchi@google.com> |
[PGO] Control Height Reduction
Summary: Control height reduction merges conditional blocks of code and reduces the number of conditional branches in the hot path based on profiles.
if (hot_cond1) {
[PGO] Control Height Reduction
Summary: Control height reduction merges conditional blocks of code and reduces the number of conditional branches in the hot path based on profiles.
if (hot_cond1) { // Likely true. do_stg_hot1(); } if (hot_cond2) { // Likely true. do_stg_hot2(); }
->
if (hot_cond1 && hot_cond2) { // Hot path. do_stg_hot1(); do_stg_hot2(); } else { // Cold path. if (hot_cond1) { do_stg_hot1(); } if (hot_cond2) { do_stg_hot2(); } }
This speeds up some internal benchmarks up to ~30%.
Reviewers: davidxl
Reviewed By: davidxl
Subscribers: xbolva00, dmgreen, mehdi_amini, llvm-commits, mgorny
Differential Revision: https://reviews.llvm.org/D50591
llvm-svn: 341386
show more ...
|