Re: Teach gimple_canonical_types_compatible_p about incomplete types

2015-06-03 Thread Jan Hubicka
On Sat, 30 May 2015, Jan Hubicka wrote: Joseph, Richard, this is patch implementing the ENUM/INGEGER globbing and also POINTER/REFERENCE (though I don't know if that one follows by some standard rules). Joseph, does the attached testcase make sense for you? Is it defined? It is my

Re: Teach gimple_canonical_types_compatible_p about incomplete types

2015-06-03 Thread Richard Biener
On Sat, 30 May 2015, Jan Hubicka wrote: Joseph, Richard, this is patch implementing the ENUM/INGEGER globbing and also POINTER/REFERENCE (though I don't know if that one follows by some standard rules). Joseph, does the attached testcase make sense for you? Is it defined? It is my first

Re: Teach gimple_canonical_types_compatible_p about incomplete types

2015-06-02 Thread Jan Hubicka
thanks. I did not notice we have -fshort-enum by default targets. I suppose we want: /* { dg-xfail-if { arm-eabi-* } { * } { } } */ Well, not that (which matches eabi against the vendor part of the triplet), but skip for the short_enums effective-target keyword. Ok. Did not know

Re: Teach gimple_canonical_types_compatible_p about incomplete types

2015-06-02 Thread Jan Hubicka
On Sat, 30 May 2015, Jan Hubicka wrote: Joseph, does the attached testcase make sense for you? Is it defined? It is my first attempt to really interpret C standard to detail. I suppose it's defined if unsigned int is the type chosen as compatible with that enum. The test should be

Re: Teach gimple_canonical_types_compatible_p about incomplete types

2015-06-02 Thread Joseph Myers
On Tue, 2 Jun 2015, Jan Hubicka wrote: On Sat, 30 May 2015, Jan Hubicka wrote: Joseph, does the attached testcase make sense for you? Is it defined? It is my first attempt to really interpret C standard to detail. I suppose it's defined if unsigned int is the type chosen as

Re: Teach gimple_canonical_types_compatible_p about incomplete types

2015-06-01 Thread Joseph Myers
On Sat, 30 May 2015, Jan Hubicka wrote: Joseph, does the attached testcase make sense for you? Is it defined? It is my first attempt to really interpret C standard to detail. I suppose it's defined if unsigned int is the type chosen as compatible with that enum. The test should be skipped

Re: Teach gimple_canonical_types_compatible_p about incomplete types

2015-05-30 Thread Jan Hubicka
On May 30, 2015 12:56:26 AM GMT+02:00, Jan Hubicka hubi...@ucw.cz wrote: Index: tree.h === --- tree.h (revision 223877) +++ tree.h (working copy) @@ -4598,7 +4598,28 @@ extern void DEBUG_FUNCTION verify_type (const_tree

Re: Teach gimple_canonical_types_compatible_p about incomplete types

2015-05-30 Thread Bernhard Reutner-Fischer
On May 30, 2015 12:56:26 AM GMT+02:00, Jan Hubicka hubi...@ucw.cz wrote: Index: tree.h === --- tree.h (revision 223877) +++ tree.h (working copy) @@ -4598,7 +4598,28 @@ extern void DEBUG_FUNCTION verify_type (const_tree t);

Re: Teach gimple_canonical_types_compatible_p about incomplete types

2015-05-29 Thread Jan Hubicka
Joseph, Richard, this is patch implementing the ENUM/INGEGER globbing and also POINTER/REFERENCE (though I don't know if that one follows by some standard rules). Joseph, does the attached testcase make sense for you? Is it defined? It is my first attempt to really interpret C standard to detail.

Re: Teach gimple_canonical_types_compatible_p about incomplete types

2015-05-29 Thread Joseph Myers
On Tue, 26 May 2015, Jan Hubicka wrote: On May 25, 2015 1:49:45 AM GMT+02:00, Jan Hubicka hubi...@ucw.cz wrote: 2 Each enumerated type shall be compatible with char , a signed integer type, or an unsigned integer type. The choice of type is implementation-defined, but

Re: Teach gimple_canonical_types_compatible_p about incomplete types

2015-05-29 Thread Jan Hubicka
On Tue, 26 May 2015, Jan Hubicka wrote: On May 25, 2015 1:49:45 AM GMT+02:00, Jan Hubicka hubi...@ucw.cz wrote: 2 Each enumerated type shall be compatible with char , a signed integer type, or an unsigned integer type. The choice of type is implementation-defined,

Re: Teach gimple_canonical_types_compatible_p about incomplete types

2015-05-27 Thread Richard Biener
On Tue, 26 May 2015, Jan Hubicka wrote: Now the change does not really translate to great increase of disambiguations for Firefox (it seems more in noise). The reason is the pointer_type globbing in alias.c. Yeah, we only get the improvement because of some hack in the tree

Re: Teach gimple_canonical_types_compatible_p about incomplete types

2015-05-27 Thread Jan Hubicka
On Tue, 26 May 2015, Jan Hubicka wrote: Now the change does not really translate to great increase of disambiguations for Firefox (it seems more in noise). The reason is the pointer_type globbing in alias.c. Yeah, we only get the improvement because of some hack in

Re: Teach gimple_canonical_types_compatible_p about incomplete types

2015-05-26 Thread Richard Biener
On Mon, 25 May 2015, Jan Hubicka wrote: Richard, here is next patch of the series. It adds all the logic for defining type equivalence that globs all complete types together in order to make incomplete type equivalent to every complete variant. Effect of recursing on pointers

Re: Teach gimple_canonical_types_compatible_p about incomplete types

2015-05-26 Thread Jan Hubicka
Now the change does not really translate to great increase of disambiguations for Firefox (it seems more in noise). The reason is the pointer_type globbing in alias.c. Yeah, we only get the improvement because of some hack in the tree alias oracle which also uses the base object

Re: Teach gimple_canonical_types_compatible_p about incomplete types

2015-05-25 Thread Bernhard Reutner-Fischer
On May 25, 2015 1:49:45 AM GMT+02:00, Jan Hubicka hubi...@ucw.cz wrote: 2 Each enumerated type shall be compatible with char , a signed integer type, or an unsigned integer type. The choice of type is implementation-defined, but shall be capable of representing the values of all

Re: Teach gimple_canonical_types_compatible_p about incomplete types

2015-05-25 Thread Jan Hubicka
On May 25, 2015 1:49:45 AM GMT+02:00, Jan Hubicka hubi...@ucw.cz wrote: 2 Each enumerated type shall be compatible with char , a signed integer type, or an unsigned integer type. The choice of type is implementation-defined, but shall be capable of representing the values

Teach gimple_canonical_types_compatible_p about incomplete types

2015-05-24 Thread Jan Hubicka
Richard, here is next patch of the series. It adds all the logic for defining type equivalence that globs all complete types together in order to make incomplete type equivalent to every complete variant. Effect of recursing on pointers === This is, of course,