This is the mail archive of the
mailing list for the GCC project.
Re: Fix problem with late insns in sibcall
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- To: rth at redhat dot com
- Cc: gcc-patches at gcc dot gnu dot org, hainque at act-europe dot fr
- Date: Thu, 1 May 03 06:45:20 EDT
- Subject: Re: Fix problem with late insns in sibcall
Personally, I think it would make the most sense for this to
be exposed to the compiler earlier. I.e. the Ada front end
tmp = Shift(Point.X);
Point.X = tmp;
I don't follow. What it generates is
Point.X = Shift (Point.X);
That could also occur in C code just as above. If a temporary is needed
for some reason, why shouldn't the middle-end make it?
In this way, the store into Point.X won't be hidden inside the
CALL_PLACEHOLDER, and optimize_sibling_and_tail_recursive_calls will
notice that the call is not the last thing performed by the function.
You lost me here. Why can't the above C code occur?