]> git.ipfire.org Git - thirdparty/gcc.git/commit
[PR rtl-optimization/116437] Fix RTL checking issue in ext-dce
authorJeff Law <jlaw@ventanamicro.com>
Wed, 21 Aug 2024 22:52:23 +0000 (16:52 -0600)
committerJeff Law <jlaw@ventanamicro.com>
Wed, 21 Aug 2024 22:54:01 +0000 (16:54 -0600)
commitcdc9cd4afe8949276a0c50215eb7f23e2086044f
tree997335857e658b06fcb1502f99da336ffcedd78f
parentec9d6d45191f639482344362d048294e74587ca3
[PR rtl-optimization/116437] Fix RTL checking issue in ext-dce

Another RTL checking failure in ext-dce.  An easy one to fix this time.

When we optimize an extension we have to go back and cleanup with
SUBREG_PROMOTED state.  So we record the destination register into a bitmap as
we make changes, then later do a single pass over the IL fixing any associated
subreg expressions.

The optimization is changing the SET_SRC and largely ignores the destination.
The LHS could be a REG, SUBREG, or ZERO_EXTRACT.  If the LHS is a SUBREG or
ZERO_EXTRACT we can just strip them.

Bootstrapped and ran the testsuite with an RTL checking compiler and verified
no ext-dce RTL checking failures tripped.  Also bootstrapped and regression
tested x86_64 in the usual way.

Pushing to the trunk.

PR rtl-optimization/116437
gcc/
* ext-dce.cc (ext_dce_try_optimize_insn): Handle SUBREG and
ZERO_EXTRACT destinations.
gcc/ext-dce.cc