This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]