--- Comment #7 from rguenth at gcc dot gnu dot org 2005-10-09 09:47 ---
The non-null check is now removed for the foo_char() case by VRP (note that
the non-null check for the two viod-cases are _not_ removed by VRP but by DOM1.
The propagation of the initialization in foo_void_offset is
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-09-21
01:46 ---
Note these are all questionable in aliasing.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19637
--- Additional Comments From giovannibajo at libero dot it 2005-04-16
16:38 ---
Notice that the frontend shouldn't *ever* call fold. It's the optimizers' job
to adjust these things.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19637
--- Additional Comments From pinskia at gcc dot gnu dot org 2005-04-16
16:32 ---
Confirmed.
--
What|Removed |Added
Status|UNCONFIRMED |NEW
E
--- Additional Comments From rguenth at gcc dot gnu dot org 2005-02-10
10:20 ---
The C++ frontend doesn't give us the opportunity to canonicalize &i to &i[0] as
it doesn't call fold in typeck:build_address or decay_conversion.
I'm lost here.
--
http://gcc.gnu.org/bugzilla/show_bug.c
--- Additional Comments From rguenth at gcc dot gnu dot org 2005-02-10
09:49 ---
The difference between foo_void and foo_void_offset is that for foo_void PRE
cannot see that (struct Foo *) &i[0] is equivalent to (struct Foo *) &i. As
such, for foo_void we end up with
:
__p_2 = &i[0];
--- Additional Comments From rguenth at gcc dot gnu dot org 2005-02-10
09:39 ---
It's CCP that for foo_void is able to propagate &i[0] into the comparison here:
struct Foo * const this;
void * D.1798;
size_t D.1795;
void * __p;
int i[2];
struct Foo * i.6;
int D.1786;
str
--
What|Removed |Added
Severity|normal |enhancement
Keywords||missed-optimization
http://gcc.gnu.org/bugzilla/s