[Bug middle-end/45009] [4.6 Regression]: cris-elf libgcc build failure due to "New optimization for reload_combine"

2010-07-21 Thread hp at gcc dot gnu dot org


--- Comment #9 from hp at gcc dot gnu dot org  2010-07-22 02:43 ---
Confirmed fixed, r162392 tested, no regressions compared to r162328.


-- 

hp at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45009



[Bug middle-end/45009] [4.6 Regression]: cris-elf libgcc build failure due to "New optimization for reload_combine"

2010-07-21 Thread bernds at gcc dot gnu dot org


--- Comment #8 from bernds at gcc dot gnu dot org  2010-07-21 22:48 ---
Subject: Bug 45009

Author: bernds
Date: Wed Jul 21 22:48:14 2010
New Revision: 162390

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162390
Log:
PR bootstrap/44970
PR middle-end/45009
* postreload.c: Include "target.h".
(reload_combine_closest_single_use): Don't take DEBUG_INSNs
into account.
(fixup_debug_insns): Don't copy the rtx.
(reload_combine_recognize_const_pattern): DEBUG_INSNs can't
have uses.  Don't copy when replacing.  Call fixup_debug_insns
in the case where we merged one add with another.
(reload_combine_recognize_pattern): Fail if there aren't any
uses.  Try harder to determine whether we're picking a valid
index register.  Don't set store_ruid for an insn we're going
to scan in the next iteration.
(reload_combine): Remove unused code.
(reload_combine_note_use): When updating use information for
an old insn, ignore a use that occurs after store_ruid.
* Makefile.in (postreload.o): Update dependencies.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/Makefile.in
trunk/gcc/postreload.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45009



[Bug middle-end/45009] [4.6 Regression]: cris-elf libgcc build failure due to "New optimization for reload_combine"

2010-07-21 Thread hp at gcc dot gnu dot org


--- Comment #7 from hp at gcc dot gnu dot org  2010-07-21 15:54 ---
Correcting the summary to point at the right cause. Maybe the following
somewhat obvious change is correct, though I'd prefer to leave it to Bernd.

Index: postreload.c
===
--- postreload.c(revision 162380)
+++ postreload.c(working copy)
@@ -1190,7 +1190,8 @@
lowest_ruid = use;
}

- fixup_debug_insns (reg, reg_sum, insn, lowest_ruid->insn);
+ if (lowest_ruid != NULL)
+   fixup_debug_insns (reg, reg_sum, insn, lowest_ruid->insn);

  /* Delete the reg-reg addition.  */
  delete_insn (insn);


-- 

hp at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|[4.6 Regression]: cris-elf  |[4.6 Regression]: cris-elf
   |libgcc build failure due to |libgcc build failure due to
   |fix for PR45003, PR45006|"New optimization for
   ||reload_combine"


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45009