2015-04-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
commitf4e4e414a8e9a2693b6b245c00ea11befb852283
authorthopre01 <thopre01@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Apr 2015 04:49:34 +0000 (24 04:49 +0000)
committerthopre01 <thopre01@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Apr 2015 04:49:34 +0000 (24 04:49 +0000)
tree3cadb8317ca0e770ce8c62f746e822584b88cf9e
parent781866ee0092389fcb55f9f80e5feb23c5436499
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@222398 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/cprop.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/pr64616.c [new file with mode: 0644]