This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH]: Reduce memory usage and compile time necessary for pruning
On 3/12/06, Daniel Berlin <dberlin@dberlin.org> wrote:
> On Sun, 2006-03-12 at 21:19 +0100, Eric Botcazou wrote:
> > > Try the attached, and let me know if it fixes your problem.
> >
> > Thanks. Unfortunately it doesn't, the SMT is call-clobbered. :-(
> >
> > # A.3_310 = V_MAY_DEF <A.3_305>;
> > # HEAP.18_311 = V_MAY_DEF <HEAP.18_306>;
> > # SMT.22_312 = V_MAY_DEF <SMT.22_307>;
> > # SMT.23_313 = V_MAY_DEF <SMT.23_308>;
> > # SMT.24_314 = V_MAY_DEF <SMT.24_309>;
> > D.739_214->ARRAY[1] = q__node_to_element_new (arg_node_7) [return slot
> > optimization];
> >
> > Variable: SMT.24, UID 919, struct ALLOC, is addressable, is global, call
> > clobbered, may aliases: { A.3 }
> >
> > Variable: D.739, UID 739, struct ALLOC *, symbol memory tag: SMT.24
> >
> >
> > I've attached a reduced testcase, just compile with 'gcc -O2 p.adb' on x86 but
> > you will need to build the Ada compiler. :-)
> >
>
> So diego, this means that on calls, we end up with a call clobbered def
> on the LHS in the above case, meaning we have V_MAY_DEF's for both the
> LHS and the RHS that we can't distinguish between.
>
> Any idea what to do here?
Require a temporary for correct gimple.
Richard.