diff options
author | Wilco Dijkstra <wdijkstr@arm.com> | 2017-05-24 17:06:55 +0000 |
---|---|---|
committer | Wilco Dijkstra <wilco@gcc.gnu.org> | 2017-05-24 17:06:55 +0000 |
commit | 1a2fa2f821eec4395ff8869232d0e4e49afbe64b (patch) | |
tree | 3947dcce7024d126e21371e663b2a9aa5f9c6d78 /gcc/builtins.c | |
parent | c0edbb32c15b1c5c2145294641e1dec688d23adc (diff) | |
download | gcc-1a2fa2f821eec4395ff8869232d0e4e49afbe64b.zip gcc-1a2fa2f821eec4395ff8869232d0e4e49afbe64b.tar.gz gcc-1a2fa2f821eec4395ff8869232d0e4e49afbe64b.tar.bz2 |
When lra-remat rematerializes an instruction with a clobber, it checks that the clobber does not kill live registers.
When lra-remat rematerializes an instruction with a clobber, it checks
that the clobber does not kill live registers. However it fails to check
that the clobber also doesn't overlap with the destination register of the
final rematerialized instruction. As a result it is possible to generate
illegal instructions with the same hard register as the destination and a
clobber. Fix this by also checking for overlaps with the destination
register.
gcc/
PR rtl-optimization/80754
* lra-remat.c (do_remat): Add overlap checks for dst_regno.
From-SVN: r248424
Diffstat (limited to 'gcc/builtins.c')
0 files changed, 0 insertions, 0 deletions