aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/utils.c
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2017-12-08 12:26:35 +0100
committerSegher Boessenkool <segher@gcc.gnu.org>2017-12-08 12:26:35 +0100
commitb1cf82933e894cbdb21d63653c20258dc8c87997 (patch)
tree2485c2d642b628103a2d85dd86d4c6aeb9dc1714 /gcc/ada/gcc-interface/utils.c
parentda472c1b3bc8b2289f93cacaf75472556a3d85cd (diff)
downloadgcc-b1cf82933e894cbdb21d63653c20258dc8c87997.zip
gcc-b1cf82933e894cbdb21d63653c20258dc8c87997.tar.gz
gcc-b1cf82933e894cbdb21d63653c20258dc8c87997.tar.bz2
combine: Fix PR83304
In PR83304 two insns are combined, where the I2 uses a register that has a REG_DEAD note on an insn after I2 but before I3. In such a case move_deaths should move that death note. But move_deaths only looks at the reg_stat[regno].last_death insn, and that field can be zeroed out (previously, use_crosses_set_p would prevent the combination in this case). If the last_death field is zero it means "unknown", not "no death", so we have to find if there is a REG_DEAD note. PR rtl-optimization/83304 * combine.c (move_deaths): If we do not know where a register died, search for it. From-SVN: r255506
Diffstat (limited to 'gcc/ada/gcc-interface/utils.c')
0 files changed, 0 insertions, 0 deletions