History log of /llvm-project/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp (Results 76 – 81 of 81)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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 ...


1234