diff options
author | Evgeny Astigeevich <evgeny.astigeevich@linaro.org> | 2019-04-03 10:46:13 +0100 |
---|---|---|
committer | Treehugger Robot <treehugger-gerrit@google.com> | 2019-10-29 15:40:27 +0000 |
commit | 45217376b527cd17d758152c54960e6786288e31 (patch) | |
tree | cc2ae731f7ebfe61af74fa8150025064a0245a8a /compiler/optimizing/graph_visualizer.cc | |
parent | 8b236fac816beb18e4919e2c4260da843257a4e3 (diff) |
Fix intersecting live ranges created by instruction scheduler
When scheduling code like the following:
LOOP:
v2=phi(v0, v1)
use(v2)
v1=...
goto LOOP
the instruction scheduler can move 'v1=...' before 'use(v2)'. This
causes live ranges of v1 and v2 to intersect and results to a MOV
instruction to be created.
The CL fixes this.
Improvements, Pixel3:
Little CPU, arm64
micro/GCCLoops
Example12 14.1%
Example10b 11.0%
Example23 8.1%
Example24 6.6%
Example10a 5.0%
FFT workload 4.7%
Compress workload 1.2%
Little CPU, arm32
micro/GCCLoops
Example23 7.5%
Example24 4.3%
MonteCarlo workload 1.35%
Big CPU, arm32 and arm64
No significant improvements
No significant regressions (> 5%) are found.
Test: test.py --host --optimizing --jit --gtest
Test: test.py --target --optimizing --jit
Test: run-gtests.sh
Change-Id: I1e4282af18f2d51fde5325a0c00a57e8bbc4fbed
Diffstat (limited to 'compiler/optimizing/graph_visualizer.cc')
0 files changed, 0 insertions, 0 deletions