[Bug rtl-optimization/63448] [4.9/5 Regression] ICE when compiling atlas 3.10.2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63448 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #11 from Jakub Jelinek jakub at gcc dot gnu.org --- Should be fixed now.
[Bug rtl-optimization/63448] [4.9/5 Regression] ICE when compiling atlas 3.10.2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63448 --- Comment #8 from Vladimir Makarov vmakarov at gcc dot gnu.org --- I already saw such problem. It is chain of spills and reassignment of non-reload pseudos. Each pass considers only 1-2 pseudos and very few insns. We just need 2 more passes to finish RA for the test. The current code of LRA looping prevention is too conservative for the case. Finally I have an idea how to solve this kind of problems. The patch is on the way.
[Bug rtl-optimization/63448] [4.9/5 Regression] ICE when compiling atlas 3.10.2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63448 --- Comment #9 from Vladimir Makarov vmakarov at gcc dot gnu.org --- Author: vmakarov Date: Wed Oct 15 15:48:33 2014 New Revision: 216270 URL: https://gcc.gnu.org/viewcvs?rev=216270root=gccview=rev Log: 2014-10-15 Vladimir Makarov vmaka...@redhat.com PR rtl-optimization/63448 * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove. (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New. (LRA_MAX_INHERITANCE_PASSES): Use it. (lra_constraint_iter_after_spill): Remove. (lra_assignment_iter): New. (lra_assignment_iter_after_spill): New. * lra-assigns.c (lra_assignment_iter): New. (lra_assignment_iter_after_spill): New. (former_reload_pseudo_spill_p): New. (spill_for): Set up former_reload_pseudo_spill_p. (setup_live_pseudos_and_spill_after_risky): Ditto. (assign_by_spills): Ditto. (lra_assign): Increment lra_assignment_iter. Print the iteration number. Reset former_reload_pseudo_spill_p. Check lra_assignment_iter_after_spill. * lra.c (lra): Remove lra_constraint_iter_after_spill. Initialize lra_assignment_iter and lra_assignment_iter_after_spill. * lra-constraints.c (lra_constraint_iter_after_spill): Remove. (lra_constraints): Remove code with lra_assignment_iter_after_spill. 2014-10-15 Vladimir Makarov vmaka...@redhat.com PR rtl-optimization/63448 * gcc.target/i386/pr63448.c: New test. Added: trunk/gcc/testsuite/gcc.target/i386/pr63448.c Modified: trunk/gcc/ChangeLog trunk/gcc/lra-assigns.c trunk/gcc/lra-constraints.c trunk/gcc/lra-int.h trunk/gcc/lra.c trunk/gcc/testsuite/ChangeLog
[Bug rtl-optimization/63448] [4.9/5 Regression] ICE when compiling atlas 3.10.2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63448 --- Comment #10 from Vladimir Makarov vmakarov at gcc dot gnu.org --- Author: vmakarov Date: Wed Oct 15 15:51:07 2014 New Revision: 216271 URL: https://gcc.gnu.org/viewcvs?rev=216271root=gccview=rev Log: 2014-10-15 Vladimir Makarov vmaka...@redhat.com PR rtl-optimization/63448 * lra-int.h (LRA_MAX_CONSTRAINT_ITERATION_NUMBER): Remove. (LRA_MAX_ASSIGNMENT_ITERATION_NUMBER): New. (LRA_MAX_INHERITANCE_PASSES): Use it. (lra_constraint_iter_after_spill): Remove. (lra_assignment_iter): New. (lra_assignment_iter_after_spill): New. * lra-assigns.c (lra_assignment_iter): New. (lra_assignment_iter_after_spill): New. (former_reload_pseudo_spill_p): New. (spill_for): Set up former_reload_pseudo_spill_p. (setup_live_pseudos_and_spill_after_risky): Ditto. (assign_by_spills): Ditto. (lra_assign): Increment lra_assignment_iter. Print the iteration number. Reset former_reload_pseudo_spill_p. Check lra_assignment_iter_after_spill. * lra.c (lra): Remove lra_constraint_iter_after_spill. Initialize lra_assignment_iter and lra_assignment_iter_after_spill. * lra-constraints.c (lra_constraint_iter_after_spill): Remove. (lra_constraints): Remove code with lra_assignment_iter_after_spill. 2014-10-15 Vladimir Makarov vmaka...@redhat.com PR rtl-optimization/63448 * gcc.target/i386/pr63448.c: New test. Added: branches/gcc-4_9-branch/gcc/testsuite/gcc.target/i386/pr63448.c Modified: branches/gcc-4_9-branch/gcc/ChangeLog branches/gcc-4_9-branch/gcc/lra-assigns.c branches/gcc-4_9-branch/gcc/lra-constraints.c branches/gcc-4_9-branch/gcc/lra-int.h branches/gcc-4_9-branch/gcc/lra.c branches/gcc-4_9-branch/gcc/testsuite/ChangeLog
[Bug rtl-optimization/63448] [4.9/5 Regression] ICE when compiling atlas 3.10.2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63448 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added Priority|P3 |P1 CC||jakub at gcc dot gnu.org Target Milestone|--- |4.9.2 Summary|ICE when compiling atlas|[4.9/5 Regression] ICE when |3.10.2 |compiling atlas 3.10.2 --- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org --- int a, d, e, g, h, j; float b, c, k, l, m, n; int *__restrict i; void foo (void) { int o = e; int *p; float *q, *r = (float *) 0x1234000; float s, t, u, v, w, x; do { for (a = o; a; a--) { s += m; t += n; u += m; v += n; w += d; x += d; n = l; s += r[1]; t += n; v += r[1]; m = k * r[4]; n = q[0] * r[4]; s += m; m = q[1] * r[4]; t += n; q += g; k = *q; n = q[1] * r[4]; s += m; t += n; u += r[4]; m = q[8] * r[4]; q += 1; n = q[1] * r[4]; s += m; m = q[4]; t += n; q += g; w += m; m = k * r[4]; s += m; t += q[0]; m = q[1] * r[4]; v += q[0]; n = q[10] * r[4]; s += m; t += n; u += b; m = q[8] * r[4]; n = q[2] * r[4]; s += m; m = q[4] * r[4]; t += n; q++; n = q[2] * r[16]; s += m; m = q[4]; t += n; s += m; t += r[6]; q += g; k = *q; w += m; m = k * r[20]; x += r[16]; n = q[1] * r[20]; s += m; t += n; q += g; k = *q; w += m; m = k * r[2]; n = q[1] * r[22]; s += m; m = q[4]; t += n; q += g; s += m; t += q[0]; s += m; u += m; n = q[1] * r[22]; s += m; m = q[4] * r[22]; t += n; q += g; k = 1; w += m; c = q[10]; x += r[22]; s += m; t += r[22]; u += m; v += r[22]; n = q[10] * r[30]; d = r[32]; l = q[1]; b = 0; w += m; m = r[32]; x += n; r = 0; } *i = s; p[0] = t; p[1] = u; p[6] = v; p[8] = w; p[10] = x; } while (j); } at -O -m32 -std=c99 ICE started at r210824 aka PR60969 fix.