This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re : [gimple] temporary variable
Thank you for your answar Ian.
I would like to understand the gimplification step in GCC and I heard about unstructured and structured gimple produced from code (gcc summit 2005, gimplification improvment)
for example, to improve gimplification, Gimple code generated from.
if (a++ +b != 0) return 0; else return 1;
should be :
D.1715 = a + b;
a = a + 1;
if (D.1715 != 0) goto <D.1716>; else goto <D.1717>;
and this is not what gcc 4.4 produce (with interval.0...)
I do not think that no body pays attentions to details generated in gimple.
I think that each introduced variable should be justified.
Asma
----- Message d'origine ----
De : Ian Lance Taylor <iant@google.com>
À : charfi asma <charfiasma@yahoo.fr>
Cc : gcc-help@gcc.gnu.org
Envoyé le : Mar 27 avril 2010, 17 h 06 min 37 s
Objet : Re: [gimple] temporary variable
charfi asma <charfiasma@yahoo.fr> writes:
> when generating gimple using gcc 4.4.2 from
>
> int a =5;
> int b=10;
> if (a++ +b != 0)
> return 0;
> else
> return 1;
>
> we obtain this code
>
> int a;
> int b;
> a = 5;
> b = 10;
> D.1715 = a + b;
> retval.0 = D.1715 != 0;
> a = a + 1;
> if (retval.0 != 0) goto <D.1716>; else goto <D.1717>;
> ....
>
> why retval.0 is added ? why we do not produce if (D.1715 !=0) directly ?
For a more precise answer it would help if you give a complete test
case and tell us which dump you are looking at.
In general GIMPLE is generated without optimizations. The expectation
is that future optimizations will clean up any issues. In other
words, nobody really pays attentions to details like whether another
variable is introduced early in the process.
Ian