public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/26626] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
@ 2006-03-09 22:40 ` mueller at gcc dot gnu dot org
  2006-03-09 22:52 ` [Bug tree-optimization/26626] [4.2 Regression] " pinskia at gcc dot gnu dot org
                   ` (22 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: mueller at gcc dot gnu dot org @ 2006-03-09 22:40 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from mueller at gcc dot gnu dot org  2006-03-09 22:40 -------
reduce-min5.ii: In function ‘void kjs_strtod()’:
reduce-min5.ii:12: warning: ‘e1’ is used uninitialized in this
function
reduce-min5.ii:8: internal compiler error: in add_virtual_operand, at
tree-ssa-operands.c:979
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.


-- 


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


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

* [Bug tree-optimization/26626]  New: ICE in in add_virtual_operand
@ 2006-03-09 22:40 mueller at gcc dot gnu dot org
  2006-03-09 22:40 ` [Bug tree-optimization/26626] " mueller at gcc dot gnu dot org
                   ` (23 more replies)
  0 siblings, 24 replies; 26+ messages in thread
From: mueller at gcc dot gnu dot org @ 2006-03-09 22:40 UTC (permalink / raw)
  To: gcc-bugs

following testcase ICEs with >= -O2 for a few days now:

=== Cut ===
extern int *__errno_location (void) throw () __attribute__ ((__const__));

typedef union {
    double d;
    unsigned L[2];
} U;

void kjs_strtod()
{
    int   rv,    e1;
    unsigned  z;
    if (e1 > 308) {  ovfl:  (*__errno_location ()) = 34;  }
    ((U*)&rv)->d *= 1e16;
    if ((z = ((U*)&rv)->L[1] & 0x7ff00000)     > 0x100000)
        goto ovfl;
}
=== Cut===

#1  0x081f2e1b in add_virtual_operand (var=<value optimized out>, s_ann=<value
optimized out>, 
    flags=<value optimized out>, full_ref=0xb7d22140, offset=0, size=64,
for_clobber=0 '\0')
    at tree-ssa-operands.c:979
#2  0x081f7ecb in get_indirect_ref_operands (stmt=0xb7d1b1d4, expr=0xb7d95b00,
flags=1, 
    full_ref=0xb7d22140, offset=0, size=64, recurse_on_base=0 '\0') at
tree-ssa-operands.c:1116
#3  0x081f4105 in get_expr_operands (stmt=0xb7d1b1d4, expr_p=0xb7d1b1f0,
flags=3)
    at tree-ssa-operands.c:1617
#4  0x081f5380 in parse_ssa_operands (stmt=0xb7d1b1d4) at
tree-ssa-operands.c:1763
#5  0x081f5be4 in build_ssa_operands (stmt=0xb7d1b1d4) at
tree-ssa-operands.c:1825
#6  0x081f6ec1 in update_stmt_operands (stmt=0xb7d1b1d4) at
tree-ssa-operands.c:1867
#7  0x081b5569 in mark_new_vars_to_rename (stmt=0xb7d1b1d4) at
tree-flow-inline.h:280
#8  0x08246a56 in substitute_and_fold (prop_value=0x87cf580, use_ranges_p=0
'\0')
    at tree-ssa-propagate.c:1154
#9  0x081ef1be in execute_copy_prop (store_copy_prop=<value optimized out>, 
    phis_only=<value optimized out>) at tree-ssa-copy.c:914
#10 0x081ef34f in do_copy_prop () at tree-ssa-copy.c:1048
#11 0x085023fb in execute_one_pass (pass=0x86f8040) at passes.c:863
#12 0x085025a7 in execute_pass_list (pass=0x86f8040) at passes.c:910
#13 0x085025ba in execute_pass_list (pass=0x86f7d40) at passes.c:911
#14 0x081bf996 in tree_rest_of_compilation (fndecl=0xb7dcbc80) at
tree-optimize.c:418
#15 0x0812a906 in expand_body (fn=0xb7dcbc80) at semantics.c:3009
#16 0x085512b5 in cgraph_expand_function (node=0xb7dcbd00) at cgraphunit.c:1102
#17 0x08553d1b in cgraph_optimize () at cgraphunit.c:1167
#18 0x080d3cf5 in cp_finish_file () at decl2.c:3110
#19 0x0819106f in c_common_parse_file (set_yydebug=0) at c-opts.c:1166
#20 0x084ce803 in toplev_main (argc=14, argv=0xbfae7bb4) at toplev.c:999
#21 0x0819e1b2 in main (argc=0, argv=0xb7dcd508) at main.c:35


-- 
           Summary: ICE in in add_virtual_operand
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: mueller at gcc dot gnu dot org


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
  2006-03-09 22:40 ` [Bug tree-optimization/26626] " mueller at gcc dot gnu dot org
@ 2006-03-09 22:52 ` pinskia at gcc dot gnu dot org
  2006-03-09 22:54 ` pinskia at gcc dot gnu dot org
                   ` (21 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-03-09 22:52 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from pinskia at gcc dot gnu dot org  2006-03-09 22:52 -------
Removing "throw ()"  will also cause the code to be ICE'd and also with the C
front-end now too.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pinskia at gcc dot gnu dot
                   |                            |org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |ice-on-valid-code
   Last reconfirmed|0000-00-00 00:00:00         |2006-03-09 22:52:29
               date|                            |
            Summary|ICE in in                   |[4.2 Regression] ICE in in
                   |add_virtual_operand         |add_virtual_operand
   Target Milestone|---                         |4.2.0


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
  2006-03-09 22:40 ` [Bug tree-optimization/26626] " mueller at gcc dot gnu dot org
  2006-03-09 22:52 ` [Bug tree-optimization/26626] [4.2 Regression] " pinskia at gcc dot gnu dot org
@ 2006-03-09 22:54 ` pinskia at gcc dot gnu dot org
  2006-03-09 23:31   ` Daniel Berlin
  2006-03-09 23:31 ` dberlin at dberlin dot org
                   ` (20 subsequent siblings)
  23 siblings, 1 reply; 26+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-03-09 22:54 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from pinskia at gcc dot gnu dot org  2006-03-09 22:54 -------
The difference between copyprop and before is the following.
Before:
  rv.0_3 = rv.0_2;
  #   VUSE <NMT.7_13>;
  D.1900_4 = rv.0_3->d;

After:
rv.0_3 = rv.0_2;
#   VUSE <SMT.6>;
D.1900_4 = rv.0_2->d;


-- 


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


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

* Re: [Bug tree-optimization/26626] [4.2 Regression] ICE in in  add_virtual_operand
  2006-03-09 22:54 ` pinskia at gcc dot gnu dot org
@ 2006-03-09 23:31   ` Daniel Berlin
  0 siblings, 0 replies; 26+ messages in thread
From: Daniel Berlin @ 2006-03-09 23:31 UTC (permalink / raw)
  To: gcc-bugzilla; +Cc: gcc-bugs

On Thu, 2006-03-09 at 22:54 +0000, pinskia at gcc dot gnu dot org wrote:
> 
> ------- Comment #3 from pinskia at gcc dot gnu dot org  2006-03-09 22:54 -------
> The difference between copyprop and before is the following.
> Before:
>   rv.0_3 = rv.0_2;
>   #   VUSE <NMT.7_13>;
>   D.1900_4 = rv.0_3->d;
> 
> After:
> rv.0_3 = rv.0_2;
> #   VUSE <SMT.6>;
> D.1900_4 = rv.0_2->d;


This is nonsensical, and very bad.

> 
> 


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2006-03-09 22:54 ` pinskia at gcc dot gnu dot org
@ 2006-03-09 23:31 ` dberlin at dberlin dot org
  2006-03-09 23:58 ` pinskia at gcc dot gnu dot org
                   ` (19 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: dberlin at dberlin dot org @ 2006-03-09 23:31 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from dberlin at gcc dot gnu dot org  2006-03-09 23:31 -------
Subject: Re:  [4.2 Regression] ICE in in
        add_virtual_operand

On Thu, 2006-03-09 at 22:54 +0000, pinskia at gcc dot gnu dot org wrote:
> 
> ------- Comment #3 from pinskia at gcc dot gnu dot org  2006-03-09 22:54 -------
> The difference between copyprop and before is the following.
> Before:
>   rv.0_3 = rv.0_2;
>   #   VUSE <NMT.7_13>;
>   D.1900_4 = rv.0_3->d;
> 
> After:
> rv.0_3 = rv.0_2;
> #   VUSE <SMT.6>;
> D.1900_4 = rv.0_2->d;


This is nonsensical, and very bad.

> 
> 


-- 


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2006-03-09 23:31 ` dberlin at dberlin dot org
@ 2006-03-09 23:58 ` pinskia at gcc dot gnu dot org
  2006-03-10  0:39 ` dberlin at dberlin dot org
                   ` (18 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-03-09 23:58 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from pinskia at gcc dot gnu dot org  2006-03-09 23:58 -------
Forgot to say we also get the following NOTEs in the copyprop dump:
NOTE: no flow-sensitive alias info for rv.0_2 in #   VUSE <NMT.8_14>;
D.2364_4 = rv.0_2->d;
NOTE: no flow-sensitive alias info for rv.0_2 in #   VUSE <NMT.8_14>;
D.2364_4 = rv.0_2->d;
NOTE: no flow-sensitive alias info for rv.0_2 in #   NMT.8_17 = V_MAY_DEF
<NMT.8_14>;
rv.0_2->d = D.2365_5;


-- 


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2006-03-09 23:58 ` pinskia at gcc dot gnu dot org
@ 2006-03-10  0:39 ` dberlin at dberlin dot org
  2006-03-10 10:40 ` rguenth at gcc dot gnu dot org
                   ` (17 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: dberlin at dberlin dot org @ 2006-03-10  0:39 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from dberlin at gcc dot gnu dot org  2006-03-10 00:39 -------
Subject: Re:  [4.2 Regression] ICE in in
        add_virtual_operand

On Thu, 2006-03-09 at 23:58 +0000, pinskia at gcc dot gnu dot org wrote:
> 
> ------- Comment #5 from pinskia at gcc dot gnu dot org  2006-03-09 23:58 -------
> Forgot to say we also get the following NOTEs in the copyprop dump:
> NOTE: no flow-sensitive alias info for rv.0_2 in #   VUSE <NMT.8_14>;
> D.2364_4 = rv.0_2->d;
> NOTE: no flow-sensitive alias info for rv.0_2 in #   VUSE <NMT.8_14>;
> D.2364_4 = rv.0_2->d;
> NOTE: no flow-sensitive alias info for rv.0_2 in #   NMT.8_17 = V_MAY_DEF
> <NMT.8_14>;
> rv.0_2->d = D.2365_5;
> 

This bare NMT usage is wrong, and indicative of a problem elsewhere.


> 


-- 


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2006-03-10  0:39 ` dberlin at dberlin dot org
@ 2006-03-10 10:40 ` rguenth at gcc dot gnu dot org
  2006-03-10 10:51 ` mueller at gcc dot gnu dot org
                   ` (16 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-03-10 10:40 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from rguenth at gcc dot gnu dot org  2006-03-10 10:40 -------
The testcase is also full of problems itself... - changing rv to a type with
the size of U, we no longer ICE.  Also -fno-strict-aliasing fixes the ICE.

I'm curious on how the original code looks like before reduction...


-- 


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2006-03-10 10:40 ` rguenth at gcc dot gnu dot org
@ 2006-03-10 10:51 ` mueller at gcc dot gnu dot org
  2006-03-10 11:10 ` rguenth at gcc dot gnu dot org
                   ` (15 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: mueller at gcc dot gnu dot org @ 2006-03-10 10:51 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from mueller at gcc dot gnu dot org  2006-03-10 10:51 -------
shorter testcase: 

=== Cut ===
typedef union {
    int d;
    int L;
} U;

void breakme()
{
    int rv;
ovfl:
    ((U*)&rv)->d = 42;
    if (((U*)&rv)->L)
        goto ovfl;
}
=== Cut ===


-- 


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
                   ` (7 preceding siblings ...)
  2006-03-10 10:51 ` mueller at gcc dot gnu dot org
@ 2006-03-10 11:10 ` rguenth at gcc dot gnu dot org
  2006-03-13 16:17 ` mueller at gcc dot gnu dot org
                   ` (14 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-03-10 11:10 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from rguenth at gcc dot gnu dot org  2006-03-10 11:10 -------

<L2>:;
  pretmp.23_2 = (union U *) &rv;

  # NMT.6_4 = PHI <NMT.6_5(2), NMT.6_6(5)>;
ovfl:;
  rv.0_1 = pretmp.23_2;
  #   NMT.6_6 = V_MAY_DEF <NMT.6_4>;
  rv.0_1->d = 42;
  #   VUSE <NMT.6_6>;
  D.1529_3 = rv.0_1->L;
  if (D.1529_3 != 0) goto <L5>; else goto <L1>;

<L5>:;
  goto <bb 3> (ovfl);

we prop pretmp.23_2 to rv.0_1 in rv.0_1->d = 42 -- but we don't have the
NMT associated with pretmp.23_2:

$5 = {pt_anything = 0, value_escapes_p = 0, is_dereferenced = 0, 
  pt_global_mem = 0, pt_null = 0, pt_vars = 0xb7dec890, name_mem_tag = 0x0, 
  escape_mask = 0}

As we have in alias after PRE:

Pointed-to sets for pointers in breakme

pretmp.23_2, points-to vars: { rv }
rv.0_1, name memory tag: NMT.6, is dereferenced, points-to vars: { rv }

which looks inconsistent.


-- 


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
                   ` (8 preceding siblings ...)
  2006-03-10 11:10 ` rguenth at gcc dot gnu dot org
@ 2006-03-13 16:17 ` mueller at gcc dot gnu dot org
  2006-03-13 16:52 ` dberlin at dberlin dot org
                   ` (13 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: mueller at gcc dot gnu dot org @ 2006-03-13 16:17 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from mueller at gcc dot gnu dot org  2006-03-13 16:17 -------
it looks to me that this commit exposed/introduced the ICE: 

r111300 | dberlin | 2006-02-20 14:38:01 +0100 (Mon, 20 Feb 2006) | 22 lines
Changed paths:
   M /trunk/gcc/ChangeLog
   M /trunk/gcc/passes.c
   M /trunk/gcc/tree-flow.h
   M /trunk/gcc/tree-pass.h
   M /trunk/gcc/tree-sra.c
   M /trunk/gcc/tree-ssa-alias.c
   M /trunk/gcc/tree-ssa-forwprop.c
   M /trunk/gcc/tree-ssa-operands.c
   M /trunk/gcc/tree.h

2006-02-20  Daniel Berlin  <dberlin@dberlin.org>

        * tree.h (struct tree_memory_tag): Add is_used_alone member.
        (TMT_USED_ALONE): New macro.
        * tree-pass.h (PROP_tmt_usage): New property.
        (TODO_update_tmt_usage): New todo.
        * tree-ssa-alias.c (updating_used_alone): New variable.
        (recalculate_used_alone): New function.   
        (compute_may_aliases): Set updating_used_alone, call
        recalculate_used_alone. 
        * tree-sra.c (pass_sra): Note that this pass destroys
        PROP_tmt_usage, and add TODO_update_tmt_usage.
        * tree-ssa-forwprop.c (pass_forwprop): Ditto.
        * tree-flow.h (updating_used_alone): Prototype.
        (recalculate_used_alone): Ditto.
        * passes.c (execute_todo): Add code to set updating_used_alone,
        and call recalculate.
        * tree-ssa-operands.c (add_virtual_operand): Only append bare def
        for clobber if used alone, and add assert to verify used_alone
        status.


-- 


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
                   ` (9 preceding siblings ...)
  2006-03-13 16:17 ` mueller at gcc dot gnu dot org
@ 2006-03-13 16:52 ` dberlin at dberlin dot org
  2006-03-13 16:56 ` mueller at gcc dot gnu dot org
                   ` (12 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: dberlin at dberlin dot org @ 2006-03-13 16:52 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from dberlin at gcc dot gnu dot org  2006-03-13 16:52 -------
Subject: Re:  [4.2 Regression] ICE in in
        add_virtual_operand

On Mon, 2006-03-13 at 16:17 +0000, mueller at gcc dot gnu dot org wrote:
> 
> ------- Comment #10 from mueller at gcc dot gnu dot org  2006-03-13 16:17 -------
> it looks to me that this commit exposed/introduced the ICE: 

Yes, we already know that :)
Thanks though.

This is just another case of us catching more illegal code with this ICE
(as we used to with the NMT ice).

The only solution in these cases it to remove the assert and let it
generate bad code, but I want to fix other issues first before removing
the assert.


-- 


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
                   ` (10 preceding siblings ...)
  2006-03-13 16:52 ` dberlin at dberlin dot org
@ 2006-03-13 16:56 ` mueller at gcc dot gnu dot org
  2006-04-02 13:09 ` fxcoudert at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: mueller at gcc dot gnu dot org @ 2006-03-13 16:56 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from mueller at gcc dot gnu dot org  2006-03-13 16:56 -------
ah, I see. I'm fine with working around the ICE locally and let you guys figure
out how to fix the actual cause :)


-- 


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
                   ` (11 preceding siblings ...)
  2006-03-13 16:56 ` mueller at gcc dot gnu dot org
@ 2006-04-02 13:09 ` fxcoudert at gcc dot gnu dot org
  2006-04-10 16:35 ` pinskia at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: fxcoudert at gcc dot gnu dot org @ 2006-04-02 13:09 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from fxcoudert at gcc dot gnu dot org  2006-04-02 13:09 -------
Created an attachment (id=11185)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11185&action=view)
Preprocessed source also causing the problem

Humpf, this ICE (same backtrace) also happens when building libgfortran under
certain (unusual) conditions (seems to be related to missing prototypes).
Preprocessed source attached in case you want to give it a look.


-- 


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
                   ` (12 preceding siblings ...)
  2006-04-02 13:09 ` fxcoudert at gcc dot gnu dot org
@ 2006-04-10 16:35 ` pinskia at gcc dot gnu dot org
  2006-04-27 13:14 ` fxcoudert at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-04-10 16:35 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from pinskia at gcc dot gnu dot org  2006-04-10 16:35 -------
*** Bug 27085 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |debian-gcc at lists dot
                   |                            |debian dot org


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
                   ` (13 preceding siblings ...)
  2006-04-10 16:35 ` pinskia at gcc dot gnu dot org
@ 2006-04-27 13:14 ` fxcoudert at gcc dot gnu dot org
  2006-04-27 15:39 ` dberlin at dberlin dot org
                   ` (8 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: fxcoudert at gcc dot gnu dot org @ 2006-04-27 13:14 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #15 from fxcoudert at gcc dot gnu dot org  2006-04-27 13:14 -------
(In reply to comment #11)
> The only solution in these cases it to remove the assert and let it
> generate bad code, but I want to fix other issues first before removing
> the assert.

What's the status on this? It makes libgfortran build crash with a patch I'd
like to submit.


-- 

fxcoudert at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |fxcoudert at gcc dot gnu dot
                   |                            |org
   Last reconfirmed|2006-03-09 22:52:29         |2006-04-27 13:14:03
               date|                            |


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
                   ` (14 preceding siblings ...)
  2006-04-27 13:14 ` fxcoudert at gcc dot gnu dot org
@ 2006-04-27 15:39 ` dberlin at dberlin dot org
  2006-04-27 16:43 ` rguenth at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: dberlin at dberlin dot org @ 2006-04-27 15:39 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #16 from dberlin at gcc dot gnu dot org  2006-04-27 15:39 -------
Subject: Re:  [4.2 Regression] ICE in in
        add_virtual_operand


> What's the status on this? It makes libgfortran build crash with a patch I'd
> like to submit.

Uh, okay, so, until someone debugs the other real problems this exposes,
i'm not going to remove the assert.
In particular, whenever that assert triggers, it's going to generate bad
code because somebody somewhere (either user or compiler pass, it
varies) has done something wrong.

So if it's triggering during your libgfortran builds with a patch, you
really need to examine where it's triggering.

If it is triggering because there is a bare NMT there, then something
has screwed up aliasing.

> 
> 


-- 


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
                   ` (15 preceding siblings ...)
  2006-04-27 15:39 ` dberlin at dberlin dot org
@ 2006-04-27 16:43 ` rguenth at gcc dot gnu dot org
  2006-04-27 16:55 ` dberlin at dberlin dot org
                   ` (6 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-04-27 16:43 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #17 from rguenth at gcc dot gnu dot org  2006-04-27 16:43 -------
As followup to comment #9, copyprop propagates pretmp.23_2 into rv.0_1->d, and
in
may_propagate_copy we see that rv.0_1 has both an SMT and NMT associated with,
while pretmp.23_2 has none of the two.


-- 


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
                   ` (16 preceding siblings ...)
  2006-04-27 16:43 ` rguenth at gcc dot gnu dot org
@ 2006-04-27 16:55 ` dberlin at dberlin dot org
  2006-04-27 16:56 ` rguenth at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: dberlin at dberlin dot org @ 2006-04-27 16:55 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #18 from dberlin at gcc dot gnu dot org  2006-04-27 16:55 -------
Subject: Re:  [4.2 Regression] ICE in in
        add_virtual_operand

On Thu, 2006-04-27 at 16:43 +0000, rguenth at gcc dot gnu dot org wrote:
> 
> ------- Comment #17 from rguenth at gcc dot gnu dot org  2006-04-27 16:43 -------
> As followup to comment #9, copyprop propagates pretmp.23_2 into rv.0_1->d, and
> in
> may_propagate_copy we see that rv.0_1 has both an SMT and NMT associated with,
> while pretmp.23_2 has none of the two.

Except that may_alias is rerun right after PRE, so it should have the
same symbols :)


-- 


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
                   ` (17 preceding siblings ...)
  2006-04-27 16:55 ` dberlin at dberlin dot org
@ 2006-04-27 16:56 ` rguenth at gcc dot gnu dot org
  2006-04-27 17:08 ` rguenth at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-04-27 16:56 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #19 from rguenth at gcc dot gnu dot org  2006-04-27 16:56 -------
This one ICEs the same way, already during the first copyprop pass:

typedef union {
    int d;
} U;

int rv;
void breakme()
{
    U *rv0;
    U *pretmp = (U*)&rv;
    rv0 = pretmp;
    rv0->d = 42;
}


-- 


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
                   ` (18 preceding siblings ...)
  2006-04-27 16:56 ` rguenth at gcc dot gnu dot org
@ 2006-04-27 17:08 ` rguenth at gcc dot gnu dot org
  2006-04-28 18:26 ` dannyb at google dot com
                   ` (3 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-04-27 17:08 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #20 from rguenth at gcc dot gnu dot org  2006-04-27 17:08 -------
Happens with  -O -quiet t.c -dumpbase t.c -fdump-tree-alias1-vops
-fstrict-aliasing -fno-tree-fre -fno-tree-ccp -fdump-tree-all -fno-tree-dce
-fno-tree-copyrename -fno-tree-salias and manually disabled forwprop.

So that leaves may_alias and copyprop itself to blame.  -fno-strict-aliasing
"fixes" it, too.


-- 


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
                   ` (19 preceding siblings ...)
  2006-04-27 17:08 ` rguenth at gcc dot gnu dot org
@ 2006-04-28 18:26 ` dannyb at google dot com
  2006-05-03  3:19 ` dberlin at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  23 siblings, 0 replies; 26+ messages in thread
From: dannyb at google dot com @ 2006-04-28 18:26 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #21 from dberlin at gcc dot gnu dot org  2006-04-28 18:26 -------
Subject: Bug 26626

Try this patch, it should work :)


------- Comment #22 from dberlin at gcc dot gnu dot org  2006-04-28 18:26 -------
Created an attachment (id=11345)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11345&action=view)


-- 


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
                   ` (20 preceding siblings ...)
  2006-04-28 18:26 ` dannyb at google dot com
@ 2006-05-03  3:19 ` dberlin at gcc dot gnu dot org
  2006-05-03 13:02 ` mueller at gcc dot gnu dot org
  2006-05-03 14:15 ` dberlin at dberlin dot org
  23 siblings, 0 replies; 26+ messages in thread
From: dberlin at gcc dot gnu dot org @ 2006-05-03  3:19 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #23 from dberlin at gcc dot gnu dot org  2006-05-03 03:19 -------
Subject: Bug 26626

Author: dberlin
Date: Wed May  3 03:19:22 2006
New Revision: 113493

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113493
Log:
2006-05-02  Daniel Berlin  <dberlin@dberlin.org>

        Fix PR tree-optimization/26626
        * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
        always.
        * tree-ssa-operands.c (access_can_touch_variable): Allow
        typecasting through union pointers.


Added:
    trunk/gcc/testsuite/gcc.c-torture/compile/pr26626.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/tree-ssa-operands.c
    trunk/gcc/tree-ssa-structalias.c


-- 


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
                   ` (21 preceding siblings ...)
  2006-05-03  3:19 ` dberlin at gcc dot gnu dot org
@ 2006-05-03 13:02 ` mueller at gcc dot gnu dot org
  2006-05-03 14:15 ` dberlin at dberlin dot org
  23 siblings, 0 replies; 26+ messages in thread
From: mueller at gcc dot gnu dot org @ 2006-05-03 13:02 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #24 from mueller at gcc dot gnu dot org  2006-05-03 13:02 -------
closing as fixed then. Thanks !


-- 

mueller at gcc dot gnu dot org changed:

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


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


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

* [Bug tree-optimization/26626] [4.2 Regression] ICE in in add_virtual_operand
  2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
                   ` (22 preceding siblings ...)
  2006-05-03 13:02 ` mueller at gcc dot gnu dot org
@ 2006-05-03 14:15 ` dberlin at dberlin dot org
  23 siblings, 0 replies; 26+ messages in thread
From: dberlin at dberlin dot org @ 2006-05-03 14:15 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #25 from dberlin at gcc dot gnu dot org  2006-05-03 14:15 -------
Subject: Re:  [4.2 Regression] ICE in in
        add_virtual_operand

On Wed, 2006-05-03 at 13:02 +0000, mueller at gcc dot gnu dot org wrote:
> 
> ------- Comment #24 from mueller at gcc dot gnu dot org  2006-05-03 13:02 -------
> closing as fixed then. Thanks !
> 
> 

Sorry about the delay in fixing this, i was changing jobs :)


-- 


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


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

end of thread, other threads:[~2006-05-03 14:15 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-03-09 22:40 [Bug tree-optimization/26626] New: ICE in in add_virtual_operand mueller at gcc dot gnu dot org
2006-03-09 22:40 ` [Bug tree-optimization/26626] " mueller at gcc dot gnu dot org
2006-03-09 22:52 ` [Bug tree-optimization/26626] [4.2 Regression] " pinskia at gcc dot gnu dot org
2006-03-09 22:54 ` pinskia at gcc dot gnu dot org
2006-03-09 23:31   ` Daniel Berlin
2006-03-09 23:31 ` dberlin at dberlin dot org
2006-03-09 23:58 ` pinskia at gcc dot gnu dot org
2006-03-10  0:39 ` dberlin at dberlin dot org
2006-03-10 10:40 ` rguenth at gcc dot gnu dot org
2006-03-10 10:51 ` mueller at gcc dot gnu dot org
2006-03-10 11:10 ` rguenth at gcc dot gnu dot org
2006-03-13 16:17 ` mueller at gcc dot gnu dot org
2006-03-13 16:52 ` dberlin at dberlin dot org
2006-03-13 16:56 ` mueller at gcc dot gnu dot org
2006-04-02 13:09 ` fxcoudert at gcc dot gnu dot org
2006-04-10 16:35 ` pinskia at gcc dot gnu dot org
2006-04-27 13:14 ` fxcoudert at gcc dot gnu dot org
2006-04-27 15:39 ` dberlin at dberlin dot org
2006-04-27 16:43 ` rguenth at gcc dot gnu dot org
2006-04-27 16:55 ` dberlin at dberlin dot org
2006-04-27 16:56 ` rguenth at gcc dot gnu dot org
2006-04-27 17:08 ` rguenth at gcc dot gnu dot org
2006-04-28 18:26 ` dannyb at google dot com
2006-05-03  3:19 ` dberlin at gcc dot gnu dot org
2006-05-03 13:02 ` mueller at gcc dot gnu dot org
2006-05-03 14:15 ` dberlin at dberlin dot 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).