https://gcc.gnu.org/bugzilla/show_bug.cgi?id=34503
--- Comment #9 from Thomas Preud'homme <thopre01 at gcc dot gnu.org> --- Author: thopre01 Date: Fri Apr 24 04:49:34 2015 New Revision: 222398 URL: https://gcc.gnu.org/viewcvs?rev=222398&root=gcc&view=rev Log: 2015-04-24 Thomas Preud'homme <thomas.preudho...@arm.com> Steven Bosscher <ste...@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. Added: trunk/gcc/testsuite/gcc.target/arm/pr64616.c Modified: trunk/gcc/ChangeLog trunk/gcc/cprop.c trunk/gcc/testsuite/ChangeLog