This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/28778] [4.0/4.1/4.2 Regression] alias bug with cast and call clobbered
- From: "dberlin at dberlin dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 27 Aug 2006 04:12:10 -0000
- Subject: [Bug tree-optimization/28778] [4.0/4.1/4.2 Regression] alias bug with cast and call clobbered
- References: <bug-28778-1447@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #19 from dberlin at gcc dot gnu dot org 2006-08-27 04:12 -------
Subject: Re: [4.0/4.1/4.2 Regression] alias
bug with cast and call clobbered
rguenth at gcc dot gnu dot org wrote:
> ------- Comment #17 from rguenth at gcc dot gnu dot org 2006-08-26 20:42 -------
> So, making pointer arguments effectively using alias-set zero for alias and
> call clobbering computation would fix this.
>
Yes, if you change it so *everything passed to calls* is assumed to be
aliasing every variable with it's address taken, you will get the right
result in this case.
So what do you think will happen when you add one level of indirection
to the mess, and TBAA now prunes out *that* alias instead, so you miss
it again? (IE break the chain of clobber transitivity one link in the
other direcftion).
IMHO, i'd rather just see this bug, which has been in our compiler for 3
releases now, fixed properly in the next one, than hacked around.
It's relatively easy to fix this testcase in some hacky way, but i'm not
sure why we'd want to, when we know it will only fix this testcase, and
not the underlying problem.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28778