aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/tree.cc
diff options
context:
space:
mode:
authorJeff Law <jlaw@ventanamicro.com>2024-07-22 10:11:57 -0600
committerThomas Koenig <tkoenig@gcc.gnu.org>2024-07-28 19:05:45 +0200
commitf357bfdb41779139e1658433bffa9e7dbee534c5 (patch)
treebfade848d55e1d09ae65ba9912716ebd16c6ed76 /gcc/cp/tree.cc
parent14f605f17b8ee8e8a2dc3b4292420ea5f5d2cf8d (diff)
downloadgcc-f357bfdb41779139e1658433bffa9e7dbee534c5.zip
gcc-f357bfdb41779139e1658433bffa9e7dbee534c5.tar.gz
gcc-f357bfdb41779139e1658433bffa9e7dbee534c5.tar.bz2
[4/n][PR rtl-optimization/115877] Correct SUBREG handling in a destination
If we encounter something during SET handling that we can not handle, the safe thing to do is to ignore the destination and continue the loop. We've actually been trying to do slightly better with SUBREG destinations by iterating into SUBREG_REG. It turns out that wasn't working as expected. The problem is once we "continue" we lose the state that we were inside the SET and thus we ended up ignoring the destination completely rather than tracking the SUBREG_REG object. This could be fixed by restarting SET processing, but I just don't see this as all that important to handle. So rather than leave the code as-is, not working per design, I'm twiddling it to use the common 'skip subrtxs and continue' idiom used elsewhere. This is a prerequisite for another patch in this series. Specifically I have a patch that explicitly tracks if we skipped a destination rather than trying to imply it from the state of LIVE_TMP. So this is probably NFC right now, but that's a short-lived NFC. Bootstrapped and regression tested on x86 and also run as part of a larger kit on the crosses in my tester. PR rtl-optimization/115877 gcc/ * ext-dce.cc (ext_dce_process_sets): More correctly handle SUBREG destinations.
Diffstat (limited to 'gcc/cp/tree.cc')
0 files changed, 0 insertions, 0 deletions