diff options
| author | Florian Hahn <florian.hahn@arm.com> | 2017-09-20 11:54:37 +0000 |
|---|---|---|
| committer | Florian Hahn <florian.hahn@arm.com> | 2017-09-20 11:54:37 +0000 |
| commit | ceb4494786f9b90f5bcef7b76a1a704bb90b7b20 (patch) | |
| tree | 44416c070d43b70c9ed6a406e7048f4f03cb7b50 /llvm/lib/Transforms/Vectorize/VPlan.cpp | |
| parent | 8dceb7606663d47c8a76acf0bec23a46a191b31c (diff) | |
| download | bcm5719-llvm-ceb4494786f9b90f5bcef7b76a1a704bb90b7b20.tar.gz bcm5719-llvm-ceb4494786f9b90f5bcef7b76a1a704bb90b7b20.zip | |
Recommit [MachineCombiner] Update instruction depths incrementally for large BBs.
This version of the patch fixes an off-by-one error causing PR34596. We
do not need to use std::next(BlockIter) when calling updateDepths, as
BlockIter already points to the next element.
Original commit message:
> For large basic blocks with lots of combinable instructions, the
> MachineTraceMetrics computations in MachineCombiner can dominate the compile
> time, as computing the trace information is quadratic in the number of
> instructions in a BB and it's relevant successors/predecessors.
> In most cases, knowing the instruction depth should be enough to make
> combination decisions. As we already iterate over all instructions in a basic
> block, the instruction depth can be computed incrementally. This reduces the
> cost of machine-combine drastically in cases where lots of instructions
> are combined. The major drawback is that AFAIK, computing the critical path
> length cannot be done incrementally. Therefore we only compute
> instruction depths incrementally, for basic blocks with more
> instructions than inc_threshold. The -machine-combiner-inc-threshold
> option can be used to set the threshold and allows for easier
> experimenting and checking if using incremental updates for all basic
> blocks has any impact on the performance.
>
> Reviewers: sanjoy, Gerolf, MatzeB, efriedma, fhahn
>
> Reviewed By: fhahn
>
> Subscribers: kiranchandramohan, javed.absar, efriedma, llvm-commits
>
> Differential Revision: https://reviews.llvm.org/D36619
llvm-svn: 313751
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/VPlan.cpp')
0 files changed, 0 insertions, 0 deletions

