[Bug tree-optimization/21982] GCC should combine adjacent stdio calls
dnovillo at redhat dot com
gcc-bugzilla@gcc.gnu.org
Thu Jun 9 19:03:00 GMT 2005
------- Additional Comments From dnovillo at redhat dot com 2005-06-09 19:03 -------
Subject: Re: GCC should combine adjacent stdio calls
On Thu, Jun 09, 2005 at 05:02:28PM -0000, ghazi at gcc dot gnu dot org wrote:
> int i=0, j=2;
> printf("%d", i);
> j++;
> printf("%d", j);
>
> Pushing the first printf further down, this could be reordered as:
> int i=0, j=2;
> j++;
> printf("%d", i);
> printf("%d", j);
>
> which would expose another combination possibility.
>
> Paul seemed to think this wasn't hard with the existing infrastructure, and
> that was two years ago.
>
Oh, absolutely. The algorithm I'm using will naturally do this.
This is a purely local transformation, we obviously cannot merge
builtins in different control flow paths, so the transformation
goes like this: when we get to a builtin, we try to merge it with
a previously found builtin. The only time we reset the concept
of "previously found builtin" is when we find a CALL_EXPR or an
ASM_EXPR which are the only ones that may have side-effects
affecting the output of the program.
If the program manipulates the same FILE * that is being used by
the stdio calls, then we'd lose. But I think that's fair game,
right?
Diego.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21982
More information about the Gcc-bugs
mailing list