[Bug tree-optimization/49735] [4.7 Regression] mips64-elf libgcc build fails with apparently infinite recursion.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49735 rsand...@gcc.gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #12 from rsandifo at gcc dot gnu.org 2011-08-06 18:49:17 UTC --- Just to confirm that the build failure is now fixed. Thanks Jan!
[Bug tree-optimization/49735] [4.7 Regression] mips64-elf libgcc build fails with apparently infinite recursion.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49735 --- Comment #11 from Jan Hubicka 2011-08-05 20:20:11 UTC --- Author: hubicka Date: Fri Aug 5 20:20:07 2011 New Revision: 177482 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=177482 Log: PR middle-end/49735 * gcc.c-torture/compile/pr49735.c: New testcase * ipa-inline.c (recursive_inlining): Look through aliases. Added: trunk/gcc/testsuite/gcc.c-torture/compile/pr49735.c Modified: trunk/gcc/ChangeLog trunk/gcc/ipa-inline.c trunk/gcc/testsuite/ChangeLog
[Bug tree-optimization/49735] [4.7 Regression] mips64-elf libgcc build fails with apparently infinite recursion.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49735 Jan Hubicka changed: What|Removed |Added Status|NEW |ASSIGNED AssignedTo|unassigned at gcc dot |hubicka at gcc dot gnu.org |gnu.org | --- Comment #10 from Jan Hubicka 2011-08-03 20:01:15 UTC --- Mine, BTW
[Bug tree-optimization/49735] [4.7 Regression] mips64-elf libgcc build fails with apparently infinite recursion.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49735 --- Comment #9 from Jan Hubicka 2011-08-03 20:00:22 UTC --- Hmm, it looks like recursive_inlining_p predicate broke with presence of aliases. I will take a look.
[Bug tree-optimization/49735] [4.7 Regression] mips64-elf libgcc build fails with apparently infinite recursion.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49735 Richard Guenther changed: What|Removed |Added Target|mips64-linux| Priority|P3 |P1 --- Comment #8 from Richard Guenther 2011-08-02 14:29:11 UTC --- Indeed.
[Bug tree-optimization/49735] [4.7 Regression] mips64-elf libgcc build fails with apparently infinite recursion.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49735 rsand...@gcc.gnu.org changed: What|Removed |Added CC||rsandifo at gcc dot gnu.org --- Comment #7 from rsandifo at gcc dot gnu.org 2011-07-19 18:09:45 UTC --- (In reply to comment #6) > (In reply to comment #5) > > It probably papers over a different issue though - even recursive inlining > > should be limited by a --param, but appearantly that is not working here. > > > > Honza? > > Oh it is working, just since this is a simple wrapper function (infinite loop > kinda) it is inlinining a lot. I think Richard's point was that something like: void bar (void); static void foo (void) { bar (); } void bar (void) __attribute__((alias("foo"))); shouldn't make gcc recurse infinitely (but now does). Richard
[Bug tree-optimization/49735] [4.7 Regression] mips64-elf libgcc build fails with apparently infinite recursion.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49735 --- Comment #6 from Andrew Pinski 2011-07-14 18:26:54 UTC --- (In reply to comment #5) > It probably papers over a different issue though - even recursive inlining > should be limited by a --param, but appearantly that is not working here. > > Honza? Oh it is working, just since this is a simple wrapper function (infinite loop kinda) it is inlinining a lot.
[Bug tree-optimization/49735] [4.7 Regression] mips64-elf libgcc build fails with apparently infinite recursion.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49735 --- Comment #5 from Richard Guenther 2011-07-14 09:05:32 UTC --- It probably papers over a different issue though - even recursive inlining should be limited by a --param, but appearantly that is not working here. Honza?
[Bug tree-optimization/49735] [4.7 Regression] mips64-elf libgcc build fails with apparently infinite recursion.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49735 --- Comment #4 from Andrew Pinski 2011-07-14 00:07:51 UTC --- This patch fixes the infinite loop: Index: ipa-inline.c === --- ipa-inline.c(revision 176253) +++ ipa-inline.c(working copy) @@ -1170,6 +1170,10 @@ recursive_inlining (struct cgraph_edge * /* Make sure that function is small enough to be considered for inlining. */ if (estimate_size_after_inlining (node, edge) >= limit) return false; + /* Inlining a builtin recursively into itself should not be done. */ + if (DECL_BUILT_IN (edge->callee->decl)) +return false; + heap = fibheap_new (); lookup_recursive_calls (node, node, heap); if (fibheap_empty (heap)) --- CUT ---
[Bug tree-optimization/49735] [4.7 Regression] mips64-elf libgcc build fails with apparently infinite recursion.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49735 --- Comment #3 from Andrew Pinski 2011-07-13 23:21:26 UTC --- I almost want to say it was caused by: r175169 | hubicka | 2011-06-18 01:33:47 -0700 (Sat, 18 Jun 2011) | 31 lines
[Bug tree-optimization/49735] [4.7 Regression] mips64-elf libgcc build fails with apparently infinite recursion.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49735 --- Comment #2 from Andrew Pinski 2011-07-13 23:18:11 UTC --- Here is a short testcase: typedef unsigned int UQItype __attribute__((mode (QI))); static UQItype sync_fetch_and_add_1 (UQItype *ptr, UQItype value) { return __sync_fetch_and_add (ptr, value); }; typeof (sync_fetch_and_add_1) __sync_fetch_and_add_1 __attribute__((alias ("sync_fetch_and_add" "_" "1")));
[Bug tree-optimization/49735] [4.7 Regression] mips64-elf libgcc build fails with apparently infinite recursion.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49735 Andrew Pinski changed: What|Removed |Added Keywords||build, ice-on-valid-code Target||mips64-linux Status|UNCONFIRMED |NEW Last reconfirmed||2011.07.13 23:12:32 Target Milestone|--- |4.7.0 Summary|mips64-elf libgcc build |[4.7 Regression] mips64-elf |fails with apparently |libgcc build fails with |infinite recursion. |apparently infinite ||recursion. Ever Confirmed|0 |1 --- Comment #1 from Andrew Pinski 2011-07-13 23:12:32 UTC --- Confirmed.