re PR rtl-optimization/34503 (Issues with constant/copy propagation implementation...
authorThomas Preud'homme <thomas.preudhomme@arm.com>
Fri, 24 Apr 2015 04:49:34 +0000 (04:49 +0000)
committerThomas Preud'homme <thopre01@gcc.gnu.org>
Fri, 24 Apr 2015 04:49:34 +0000 (04:49 +0000)
commit8fceae614f031382bc1fa39f94c7d928b5d81f4e
tree3cadb8317ca0e770ce8c62f746e822584b88cf9e
parent62d47a882758add1f94f26941c7461ecebcf4b3e
re PR rtl-optimization/34503 (Issues with constant/copy propagation implementation in gcse.c)

2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
            Steven Bosscher <steven@gcc.gnu.org>

    gcc/
    PR rtl-optimization/34503
    * cprop.c (cprop_reg_p): New.
    (hash_scan_set): Use above function to check if register can be
    propagated.
    (find_avail_set): Return up to two sets, one whose source is a
    register and one whose source is a constant.  Sets are returned in an
    array passed as parameter rather than as a return value.
    (cprop_insn): Use a do while loop rather than a goto.  Try each of the
    sets returned by find_avail_set, starting with the one whose source is
    a constant. Use cprop_reg_p to check if register can be propagated.
    (do_local_cprop): Use cprop_reg_p to check if register can be
    propagated.
    (implicit_set_cond_p): Likewise.

    gcc/testsuite/
    PR rtl-optimization/34503
    * gcc.target/arm/pr64616.c: New file.

Co-Authored-By: Steven Bosscher <steven@gcc.gnu.org>
From-SVN: r222398
gcc/ChangeLog
gcc/cprop.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/pr64616.c [new file with mode: 0644]