public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* [lno] internal compiler error: in record_dependences_for_modify_expr, at tree-scalar-evolution.c:3236
@ 2004-02-26 17:21 Richard Guenther
  2004-02-26 17:33 ` Richard Guenther
  0 siblings, 1 reply; 4+ messages in thread
From: Richard Guenther @ 2004-02-26 17:21 UTC (permalink / raw)
  To: gcc

Hi!

With todays CVS I get the following ICE with the tramp3d-v2 testcase at
http://www.tat.physik.uni-tuebingen.de/~rguenth/gcc/tramp3d-v2.cpp.gz

~/ix86/gccssa-lno/bin/g++ -o tramp3d-v2 tramp3d-v2.cpp -O2 -msse2 
-ftree-vectorize
tramp3d-v2.cpp: In member function `void RelationList::setDirty() const':
tramp3d-v2.cpp:47400: internal compiler error: in 
record_dependences_for_modify_expr, at tree-scalar-evolution.c:3236
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

trying to debug this with gdb, my gdb version (5.3) segfaults at setting 
the breakpoint to the above location.  So you have to dig for your own - 
but maybe TREE_CODE_LENGTH (TREE_CODE (rhs)) is ... 3? (dunno, function 
call, I assume).

The code failing looks actually like

struct RelationList {
   void setDirty() const
     {
       for (int i = 0; i < list_m->size(); ++i)
         list_m->elem(i)->setDirty();
     }
private:
   RefCountedPtr<RelationListData> list_m;
};

where ->elem() returns an element of std::vector<RelationListItem *>.

Richard.

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

* Re: [lno] internal compiler error: in record_dependences_for_modify_expr, at tree-scalar-evolution.c:3236
  2004-02-26 17:21 [lno] internal compiler error: in record_dependences_for_modify_expr, at tree-scalar-evolution.c:3236 Richard Guenther
@ 2004-02-26 17:33 ` Richard Guenther
  2004-02-27 16:12   ` Richard Guenther
  0 siblings, 1 reply; 4+ messages in thread
From: Richard Guenther @ 2004-02-26 17:33 UTC (permalink / raw)
  To: Richard Guenther; +Cc: gcc

Richard Guenther wrote:
> Hi!
> 
> With todays CVS I get the following ICE with the tramp3d-v2 testcase at
> http://www.tat.physik.uni-tuebingen.de/~rguenth/gcc/tramp3d-v2.cpp.gz
> 
> ~/ix86/gccssa-lno/bin/g++ -o tramp3d-v2 tramp3d-v2.cpp -O2 -msse2 
> -ftree-vectorize
> tramp3d-v2.cpp: In member function `void RelationList::setDirty() const':
> tramp3d-v2.cpp:47400: internal compiler error: in 
> record_dependences_for_modify_expr, at tree-scalar-evolution.c:3236
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <URL:http://gcc.gnu.org/bugs.html> for instructions.
> 
> trying to debug this with gdb, my gdb version (5.3) segfaults at setting 
> the breakpoint to the above location.  So you have to dig for your own - 
> but maybe TREE_CODE_LENGTH (TREE_CODE (rhs)) is ... 3? (dunno, function 
> call, I assume).

Grepping through tree.def there are tree codes with lengths 3 and 4 
which encountered, whould ICE here.  Amongst them vtable-ref which seems 
to be a likely candidate (the elem(i)->setDirty() call is polymorphic).

Richard.

> 
> The code failing looks actually like
> 
> struct RelationList {
>   void setDirty() const
>     {
>       for (int i = 0; i < list_m->size(); ++i)
>         list_m->elem(i)->setDirty();
>     }
> private:
>   RefCountedPtr<RelationListData> list_m;
> };
> 
> where ->elem() returns an element of std::vector<RelationListItem *>.
> 
> Richard.
> 

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

* Re: [lno] internal compiler error: in record_dependences_for_modify_expr, at tree-scalar-evolution.c:3236
  2004-02-26 17:33 ` Richard Guenther
@ 2004-02-27 16:12   ` Richard Guenther
  2004-02-27 23:57     ` Sebastian Pop
  0 siblings, 1 reply; 4+ messages in thread
From: Richard Guenther @ 2004-02-27 16:12 UTC (permalink / raw)
  To: Sebastian Pop; +Cc: gcc


Btw. - all the use of switch (TREE_CODE_LENGTH (TREE_CODE (x))) in 
tree-scalar-evolution.c looks fragile, no?  Shouldn't this switch for 
the TREE_CODE(x) instead to avoid surprises?  At least a comment should 
describe why this "optimization" is legal.

For the ICE below, s/abort()/return/ works for me, but that doesn't look 
less fragile either ;)

Richard.

Richard Guenther wrote:
> Richard Guenther wrote:
> 
>> Hi!
>>
>> With todays CVS I get the following ICE with the tramp3d-v2 testcase at
>> http://www.tat.physik.uni-tuebingen.de/~rguenth/gcc/tramp3d-v2.cpp.gz
>>
>> ~/ix86/gccssa-lno/bin/g++ -o tramp3d-v2 tramp3d-v2.cpp -O2 -msse2 
>> -ftree-vectorize
>> tramp3d-v2.cpp: In member function `void RelationList::setDirty() const':
>> tramp3d-v2.cpp:47400: internal compiler error: in 
>> record_dependences_for_modify_expr, at tree-scalar-evolution.c:3236
>> Please submit a full bug report,
>> with preprocessed source if appropriate.
>> See <URL:http://gcc.gnu.org/bugs.html> for instructions.
>>
>> trying to debug this with gdb, my gdb version (5.3) segfaults at 
>> setting the breakpoint to the above location.  So you have to dig for 
>> your own - but maybe TREE_CODE_LENGTH (TREE_CODE (rhs)) is ... 3? 
>> (dunno, function call, I assume).
> 
> 
> Grepping through tree.def there are tree codes with lengths 3 and 4 
> which encountered, whould ICE here.  Amongst them vtable-ref which seems 
> to be a likely candidate (the elem(i)->setDirty() call is polymorphic).
> 
> Richard.
> 
>>
>> The code failing looks actually like
>>
>> struct RelationList {
>>   void setDirty() const
>>     {
>>       for (int i = 0; i < list_m->size(); ++i)
>>         list_m->elem(i)->setDirty();
>>     }
>> private:
>>   RefCountedPtr<RelationListData> list_m;
>> };
>>
>> where ->elem() returns an element of std::vector<RelationListItem *>.
>>
>> Richard.
>>
> 

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

* Re: [lno] internal compiler error: in record_dependences_for_modify_expr, at tree-scalar-evolution.c:3236
  2004-02-27 16:12   ` Richard Guenther
@ 2004-02-27 23:57     ` Sebastian Pop
  0 siblings, 0 replies; 4+ messages in thread
From: Sebastian Pop @ 2004-02-27 23:57 UTC (permalink / raw)
  To: Richard Guenther; +Cc: Sebastian Pop, gcc

Hi,

On Fri, Feb 27, 2004 at 03:18:38PM +0100, Richard Guenther wrote:
> 
> Btw. - all the use of switch (TREE_CODE_LENGTH (TREE_CODE (x))) in 
> tree-scalar-evolution.c looks fragile, no?  Shouldn't this switch for 
> the TREE_CODE(x) instead to avoid surprises?  At least a comment should 
> describe why this "optimization" is legal.
> 
> For the ICE below, s/abort()/return/ works for me, but that doesn't look 
> less fragile either ;)
> 

I'm rewriting all this stuff, and probably this is already fixed in
the new version of the analyzer.  I plan to contribute it during this
weekend, and before I will check that this works in the new version.

Thanks for the bug report.

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

end of thread, other threads:[~2004-02-27 22:41 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-02-26 17:21 [lno] internal compiler error: in record_dependences_for_modify_expr, at tree-scalar-evolution.c:3236 Richard Guenther
2004-02-26 17:33 ` Richard Guenther
2004-02-27 16:12   ` Richard Guenther
2004-02-27 23:57     ` Sebastian Pop

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).