re PR rtl-optimization/17581 (Long long arithmetic fails inside a switch/case stateme...
authorRoger Sayle <roger@eyesopen.com>
Sat, 30 Oct 2004 00:56:59 +0000 (00:56 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Sat, 30 Oct 2004 00:56:59 +0000 (00:56 +0000)
commit5976e643ed10a021367870663b1105aaf064393a
tree3e72bc5f754672ecac841d4642054de785714fa0
parent8b5a12daa03d076b8b57dc565333eecb8d1880d0
re PR rtl-optimization/17581 (Long long arithmetic fails inside a switch/case statement when compiled with -O2)

PR rtl-optimization/17581
* cselib.c (cselib_process_insn): The last instruction of a libcall
block, with the REG_RETVAL note, should be considered in the libcall.
* gcse.c (do_local_cprop): Allow constants to be propagated outside
of libcall blocks.
(adjust_libcall_notes): Use simplify_replace_rtx instead of
replace_rtx to avoid creating invalid RTL in REG_RETVAL notes.

* gcc.dg/pr17581-1.c: New test case.

From-SVN: r89873
gcc/ChangeLog
gcc/cselib.c
gcc/gcse.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr17581-1.c [new file with mode: 0644]