public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug ipa/61986] New: ICE on valid code at -O3 on x86_64-linux-gnu indecide_about_value, at ipa-cp.c:3480
@ 2014-08-01  7:29 su at cs dot ucdavis.edu
  2014-09-03  8:50 ` [Bug ipa/61986] " jamborm at gcc dot gnu.org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: su at cs dot ucdavis.edu @ 2014-08-01  7:29 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61986

            Bug ID: 61986
           Summary: ICE on valid code at -O3 on x86_64-linux-gnu
                    indecide_about_value, at ipa-cp.c:3480
           Product: gcc
           Version: 4.10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: ipa
          Assignee: unassigned at gcc dot gnu.org
          Reporter: su at cs dot ucdavis.edu

The following code causes an ICE when compiled with the current gcc trunk at
-O3 on x86_64-linux-gnu (in both 32-bit and 64-bit modes).

It is a regression from 4.9.x.

$ gcc-trunk -v
Using built-in specs.
COLLECT_GCC=gcc-trunk
COLLECT_LTO_WRAPPER=/usr/local/gcc-trunk/libexec/gcc/x86_64-unknown-linux-gnu/4.10.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-trunk/configure --prefix=/usr/local/gcc-trunk
--enable-languages=c,c++ --disable-werror --enable-multilib
Thread model: posix
gcc version 4.10.0 20140731 (experimental) [trunk revision 213316] (GCC) 
$ 
$ gcc-trunk -O2 -c small.c
$ gcc-4.9 -O3 -c small.c
$ 
$ gcc-trunk -O3 -c small.c
small.c:45:1: internal compiler error: in decide_about_value, at ipa-cp.c:3480
 }
 ^
0xee657c decide_about_value
    ../../gcc-trunk/gcc/ipa-cp.c:3480
0xee8978 decide_whether_version_node
    ../../gcc-trunk/gcc/ipa-cp.c:3539
0xee8978 ipcp_decision_stage
    ../../gcc-trunk/gcc/ipa-cp.c:3668
0xee8978 ipcp_driver
    ../../gcc-trunk/gcc/ipa-cp.c:3714
0xee8978 execute
    ../../gcc-trunk/gcc/ipa-cp.c:3805
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
$ 

-------------------------------

int a, b, c;

struct S
{
  int f0;
  int f1;
} d;

static int fn2 (struct S);
void fn3 (struct S);

void
fn1 (struct S p)
{
  struct S h = { 0, 0 };
  fn3 (p);
  fn2 (h);
}

int
fn2 (struct S p)
{
  struct S j = { 0, 0 };
  fn3 (p);
  fn2 (j);
  return 0;
}

void
fn3 (struct S p)
{
  for (; b; a++)
    c = p.f0;
  fn1 (d);
}

void
fn4 ()
{
  for (;;)
    {
      struct S f = { 0, 0 };
      fn1 (f);
    }
}


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug ipa/61986] ICE on valid code at -O3 on x86_64-linux-gnu indecide_about_value, at ipa-cp.c:3480
  2014-08-01  7:29 [Bug ipa/61986] New: ICE on valid code at -O3 on x86_64-linux-gnu indecide_about_value, at ipa-cp.c:3480 su at cs dot ucdavis.edu
@ 2014-09-03  8:50 ` jamborm at gcc dot gnu.org
  2014-09-03 14:17 ` jamborm at gcc dot gnu.org
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: jamborm at gcc dot gnu.org @ 2014-09-03  8:50 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61986

--- Comment #2 from Martin Jambor <jamborm at gcc dot gnu.org> ---
I have proposed a fix on the mailing list:

https://gcc.gnu.org/ml/gcc-patches/2014-09/msg00209.html


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug ipa/61986] ICE on valid code at -O3 on x86_64-linux-gnu indecide_about_value, at ipa-cp.c:3480
  2014-08-01  7:29 [Bug ipa/61986] New: ICE on valid code at -O3 on x86_64-linux-gnu indecide_about_value, at ipa-cp.c:3480 su at cs dot ucdavis.edu
  2014-09-03  8:50 ` [Bug ipa/61986] " jamborm at gcc dot gnu.org
@ 2014-09-03 14:17 ` jamborm at gcc dot gnu.org
  2014-09-03 14:34 ` jamborm at gcc dot gnu.org
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: jamborm at gcc dot gnu.org @ 2014-09-03 14:17 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61986

--- Comment #3 from Martin Jambor <jamborm at gcc dot gnu.org> ---
Author: jamborm
Date: Wed Sep  3 14:16:54 2014
New Revision: 214877

URL: https://gcc.gnu.org/viewcvs?rev=214877&root=gcc&view=rev
Log:
2014-09-03  Martin Jambor  <mjambor@suse.cz>

    PR ipa/61986
    * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
    created replacements in ascending order of offsets.
    (known_aggs_to_agg_replacement_list): Likewise.

gcc/testsuite/
    * gcc.dg/ipa/pr61986.c: New test.


Added:
    trunk/gcc/testsuite/gcc.dg/ipa/pr61986.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/ipa-cp.c
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug ipa/61986] ICE on valid code at -O3 on x86_64-linux-gnu indecide_about_value, at ipa-cp.c:3480
  2014-08-01  7:29 [Bug ipa/61986] New: ICE on valid code at -O3 on x86_64-linux-gnu indecide_about_value, at ipa-cp.c:3480 su at cs dot ucdavis.edu
  2014-09-03  8:50 ` [Bug ipa/61986] " jamborm at gcc dot gnu.org
  2014-09-03 14:17 ` jamborm at gcc dot gnu.org
@ 2014-09-03 14:34 ` jamborm at gcc dot gnu.org
  2014-09-03 16:13 ` jamborm at gcc dot gnu.org
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: jamborm at gcc dot gnu.org @ 2014-09-03 14:34 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61986

--- Comment #4 from Martin Jambor <jamborm at gcc dot gnu.org> ---
I can reproduce the bug on the 4.9 branch too and the code is the same
in 4.8 as well (although the bug does not manifest form me there), so
please keep this bug opened until I commit the same fix to the two
branches, which will happen right after my bootstrap and testing
finishes.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug ipa/61986] ICE on valid code at -O3 on x86_64-linux-gnu indecide_about_value, at ipa-cp.c:3480
  2014-08-01  7:29 [Bug ipa/61986] New: ICE on valid code at -O3 on x86_64-linux-gnu indecide_about_value, at ipa-cp.c:3480 su at cs dot ucdavis.edu
                   ` (2 preceding siblings ...)
  2014-09-03 14:34 ` jamborm at gcc dot gnu.org
@ 2014-09-03 16:13 ` jamborm at gcc dot gnu.org
  2014-09-03 16:33 ` jamborm at gcc dot gnu.org
  2014-09-03 16:38 ` jamborm at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: jamborm at gcc dot gnu.org @ 2014-09-03 16:13 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61986

--- Comment #5 from Martin Jambor <jamborm at gcc dot gnu.org> ---
Author: jamborm
Date: Wed Sep  3 16:13:03 2014
New Revision: 214882

URL: https://gcc.gnu.org/viewcvs?rev=214882&root=gcc&view=rev
Log:
2014-09-03  Martin Jambor  <mjambor@suse.cz>

    PR ipa/61986
    * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
    created replacements in ascending order of offsets.
    (known_aggs_to_agg_replacement_list): Likewise.

gcc/testsuite/
    * gcc.dg/ipa/pr61986.c: New test.


Added:
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/ipa/pr61986.c
Modified:
    branches/gcc-4_9-branch/gcc/ChangeLog
    branches/gcc-4_9-branch/gcc/ipa-cp.c
    branches/gcc-4_9-branch/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug ipa/61986] ICE on valid code at -O3 on x86_64-linux-gnu indecide_about_value, at ipa-cp.c:3480
  2014-08-01  7:29 [Bug ipa/61986] New: ICE on valid code at -O3 on x86_64-linux-gnu indecide_about_value, at ipa-cp.c:3480 su at cs dot ucdavis.edu
                   ` (3 preceding siblings ...)
  2014-09-03 16:13 ` jamborm at gcc dot gnu.org
@ 2014-09-03 16:33 ` jamborm at gcc dot gnu.org
  2014-09-03 16:38 ` jamborm at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: jamborm at gcc dot gnu.org @ 2014-09-03 16:33 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61986

--- Comment #6 from Martin Jambor <jamborm at gcc dot gnu.org> ---
Author: jamborm
Date: Wed Sep  3 16:33:10 2014
New Revision: 214884

URL: https://gcc.gnu.org/viewcvs?rev=214884&root=gcc&view=rev
Log:
2014-09-03  Martin Jambor  <mjambor@suse.cz>

    PR ipa/61986
    * ipa-cp.c (find_aggregate_values_for_callers_subset): Chain
    created replacements in ascending order of offsets.
    (known_aggs_to_agg_replacement_list): Likewise.

gcc/testsuite/
    * gcc.dg/ipa/pr61986.c: New test.


Added:
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/ipa/pr61986.c
Modified:
    branches/gcc-4_8-branch/gcc/ChangeLog
    branches/gcc-4_8-branch/gcc/ipa-cp.c
    branches/gcc-4_8-branch/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug ipa/61986] ICE on valid code at -O3 on x86_64-linux-gnu indecide_about_value, at ipa-cp.c:3480
  2014-08-01  7:29 [Bug ipa/61986] New: ICE on valid code at -O3 on x86_64-linux-gnu indecide_about_value, at ipa-cp.c:3480 su at cs dot ucdavis.edu
                   ` (4 preceding siblings ...)
  2014-09-03 16:33 ` jamborm at gcc dot gnu.org
@ 2014-09-03 16:38 ` jamborm at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: jamborm at gcc dot gnu.org @ 2014-09-03 16:38 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61986

Martin Jambor <jamborm at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #7 from Martin Jambor <jamborm at gcc dot gnu.org> ---
Fixed.


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-09-03 16:38 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-01  7:29 [Bug ipa/61986] New: ICE on valid code at -O3 on x86_64-linux-gnu indecide_about_value, at ipa-cp.c:3480 su at cs dot ucdavis.edu
2014-09-03  8:50 ` [Bug ipa/61986] " jamborm at gcc dot gnu.org
2014-09-03 14:17 ` jamborm at gcc dot gnu.org
2014-09-03 14:34 ` jamborm at gcc dot gnu.org
2014-09-03 16:13 ` jamborm at gcc dot gnu.org
2014-09-03 16:33 ` jamborm at gcc dot gnu.org
2014-09-03 16:38 ` jamborm at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).