This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/41399] [4.5 Regression] Scheduler gives huge dependence graph compiling fortran/intrinsic.c on ARM
- From: "vmakarov at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 29 Jan 2010 21:54:20 -0000
- Subject: [Bug target/41399] [4.5 Regression] Scheduler gives huge dependence graph compiling fortran/intrinsic.c on ARM
- References: <bug-41399-276@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #21 from vmakarov at redhat dot com 2010-01-29 21:54 -------
Thanks everyone who works on the bug.
I am sorry that the bug was really introduced by my patch more accurately by
the part which should fix reload crashes when the 1st scheduling works for some
targets. The patch creates huge number dependencies on stack register (r13)
which could be used for reloads according to *arm_movsi_insn. But pseudos can
not be assigned the stack register because the register is fixed and we have
not to add dependencies for the pseudo to fix the reload craches.
The following small fix will solve the PR.
Index: ../../gcc/gcc/sched-deps.c
===================================================================
--- ../../gcc/gcc/sched-deps.c (revision 155624)
+++ ../../gcc/gcc/sched-deps.c (working copy)
@@ -2623,6 +2623,7 @@ sched_analyze_insn (struct deps *deps, r
extract_insn (insn);
preprocess_constraints ();
ira_implicitly_set_insn_hard_regs (&temp);
+ AND_COMPL_HARD_REG_SET (temp, ira_no_alloc_regs);
IOR_HARD_REG_SET (implicit_reg_pending_clobbers, temp);
}
I'll submit the patch on Monday after some testing.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41399