This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/32327] [4.2 Regression] Incorrect stack sharing causing removal of live code
- From: "pinskia at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 14 Jun 2007 01:14:46 -0000
- Subject: [Bug middle-end/32327] [4.2 Regression] Incorrect stack sharing causing removal of live code
- References: <bug-32327-91@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #18 from pinskia at gmail dot com 2007-06-14 01:14 -------
Subject: Re: [4.2 Regression] Incorrect stack sharing causing removal of live
code
On 14 Jun 2007 01:09:16 -0000, dougkwan at google dot com
<gcc-bugzilla@gcc.gnu.org> wrote:
> Unless the compiler can prove that f() does not save the pointer to c
> and use it later, it cannot share a stack slot for c & c1. This is
> true regardless of any block scoping in the source. Yeah, it looks
> like accessing c outside of the first block was undefined but I was
> told me that GIMPLE promote c & c1 all the function scope.
Yes but I don't think GIMPLE does that, it might promote register
based ones but not addressable ones (as mentioned before).
Really if we change the stack sharing, we are going to cause a large
number of regressions, I already have some regressions between 4.0 and
4.1 due to stack sharing changes with two large structs not being in
the same slot even though we can put them there with one having an
offset.
And yes I still need to file that bug.
-- Pinski
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32327