diff options
author | Evgeny Stupachenko <evstupac@gmail.com> | 2014-10-23 16:52:11 +0000 |
---|---|---|
committer | Ilya Verbin <iverbin@gcc.gnu.org> | 2014-10-23 16:52:11 +0000 |
commit | 56873e134278518a658a25bb928b473a51f57b95 (patch) | |
tree | 762dafe16440a2ac39820ecedae967e46f1e97ff /gcc/cse.c | |
parent | 1bc5a4513e09efd42f22ccbc25ff8cd7ec5619f5 (diff) | |
download | gcc-56873e134278518a658a25bb928b473a51f57b95.zip gcc-56873e134278518a658a25bb928b473a51f57b95.tar.gz gcc-56873e134278518a658a25bb928b473a51f57b95.tar.bz2 |
re PR target/63534 (Bootstrap failure on x86_64/i686-linux)
PR target/63534
PR target/63618
gcc/
* cse.c (delete_trivially_dead_insns): Consider PIC register is used
while it is pseudo.
* dse.c (deletable_insn_p): Likewise.
gcc/testsuite/
* gcc.target/i386/pr63618.c: New test.
From-SVN: r216596
Diffstat (limited to 'gcc/cse.c')
-rw-r--r-- | gcc/cse.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -6957,6 +6957,12 @@ delete_trivially_dead_insns (rtx_insn *insns, int nreg) /* If no debug insns can be present, COUNTS is just an array which counts how many times each pseudo is used. */ } + /* Pseudo PIC register should be considered as used due to possible + new usages generated. */ + if (!reload_completed + && pic_offset_table_rtx + && REGNO (pic_offset_table_rtx) >= FIRST_PSEUDO_REGISTER) + counts[REGNO (pic_offset_table_rtx)]++; /* Go from the last insn to the first and delete insns that only set unused registers or copy a register to itself. As we delete an insn, remove usage counts for registers it uses. |