diff options
author | Jeff Law <jlaw@ventanamicro.com> | 2025-03-09 14:25:37 -0600 |
---|---|---|
committer | Jeff Law <jlaw@ventanamicro.com> | 2025-03-09 14:25:37 -0600 |
commit | 7d3aec2a832ef47be547d9426187562e4548bae6 (patch) | |
tree | 89d4194a2f8fa8b14b5e085086fdb27fd626d6f5 /contrib/gcc-changelog/git_commit.py | |
parent | 4ed07a11ee2845c2085a3cd5cff043209a452441 (diff) | |
download | gcc-7d3aec2a832ef47be547d9426187562e4548bae6.zip gcc-7d3aec2a832ef47be547d9426187562e4548bae6.tar.gz gcc-7d3aec2a832ef47be547d9426187562e4548bae6.tar.bz2 |
[rtl-optimization/117467] Mark FP destinations as dead
The next step in improving ext-dce is to clean up a minor wart in the
set/clobber handling code.
In that code the safe thing to do is to not process a destination at all. That
will leave bits set in the live bitmaps for objects that may no longer be live.
Of course with extraneous bits set we use more memory and do more work managing
the bitmaps, but it's safe from a code correctness standpoint.
One case that is slipping through that we need to fix is scalar fp
destinations. Essentially the code never tried to handle those and as a result
would leave those entities live and bubble them up through the CFG.
In the testcase at hand this takes us from ~10k live objects at entry to ~4k
live objects at entry. Time spent in ext-dce goes from 2.14s to .64s.
Bootstrapped and regression tested on x86_64.
PR rtl-optimization/117467
gcc/
* ext-dce.cc (ext_dce_process_sets): Handle FP destinations better.
Diffstat (limited to 'contrib/gcc-changelog/git_commit.py')
0 files changed, 0 insertions, 0 deletions