Re: [patch] Fix ICE during RTL expansion at -O1

2013-04-17 Thread Eric Botcazou
+ if (type1 != type2 || TREE_CODE (type1) != RECORD_TYPE) +goto may_overlap; ick, can TREE_CODE (type1) != RECORD_TYPE happen as well here? Please add a comment similar to the Fortran ??? above. It can happen because we stop at unions (and qualified unions) and for them we

Re: [patch] Fix ICE during RTL expansion at -O1

2013-04-16 Thread Eric Botcazou
Note that looking at the access path _is_ assuming TBAA constraints as soon as the base objects are not the same (in the above case '*p' and 'a' are not the same and p could alias a in a way that all f1 and f2 overlap). Right, but here I'm assuming (and asserting) that the base objects are the

Re: [patch] Fix ICE during RTL expansion at -O1

2013-04-16 Thread Richard Biener
On Tue, Apr 16, 2013 at 11:55 AM, Eric Botcazou ebotca...@adacore.com wrote: Note that looking at the access path _is_ assuming TBAA constraints as soon as the base objects are not the same (in the above case '*p' and 'a' are not the same and p could alias a in a way that all f1 and f2

Re: [patch] Fix ICE during RTL expansion at -O1

2013-04-15 Thread Richard Biener
On Sun, Apr 14, 2013 at 9:46 AM, Eric Botcazou ebotca...@adacore.com wrote: This is a quadratic algorithm and as such not ok. We already have aliasing_component_refs_p in tree-ssa-alias.c which is supposed to be the non-quadratic replacement. It's not used via decl_refs_may_alias_p, so that

Re: [patch] Fix ICE during RTL expansion at -O1

2013-04-15 Thread Richard Biener
On Mon, Apr 15, 2013 at 11:47 AM, Richard Biener richard.guent...@gmail.com wrote: On Sun, Apr 14, 2013 at 9:46 AM, Eric Botcazou ebotca...@adacore.com wrote: This is a quadratic algorithm and as such not ok. We already have aliasing_component_refs_p in tree-ssa-alias.c which is supposed to be

Re: [patch] Fix ICE during RTL expansion at -O1

2013-04-14 Thread Eric Botcazou
This is a quadratic algorithm and as such not ok. We already have aliasing_component_refs_p in tree-ssa-alias.c which is supposed to be the non-quadratic replacement. It's not used via decl_refs_may_alias_p, so that may be the thing to fix. aliasing_component_refs_p isn't powerful enough,

Re: [patch] Fix ICE during RTL expansion at -O1

2013-03-22 Thread Richard Biener
On Thu, Mar 21, 2013 at 5:24 PM, Eric Botcazou ebotca...@adacore.com wrote: Hi, this fixes an ICE on the mainline at -O1: eric@polaris:~/gnat/bugs/M129-026 ~/install/gcc/bin/gcc -S p.adb -O +===GNAT BUG DETECTED==+ | 4.9.0 20130320

[patch] Fix ICE during RTL expansion at -O1

2013-03-21 Thread Eric Botcazou
Hi, this fixes an ICE on the mainline at -O1: eric@polaris:~/gnat/bugs/M129-026 ~/install/gcc/bin/gcc -S p.adb -O +===GNAT BUG DETECTED==+ | 4.9.0 20130320 (experimental) [trunk revision 196816] (x86_64-suse-linux) GCC error:| | in