On 15/3/30 下午5:40, "Richard Biener" <richard.guent...@gmail.com> wrote:

>On Mon, Mar 30, 2015 at 11:36 AM, Richard Biener
><richard.guent...@gmail.com> wrote:
>> On Fri, Mar 27, 2015 at 4:00 PM, xue yinsong <xyshh94...@hotmail.com> wrote:
>>> Thanks for your reply to my proposal.
>>> AFAIS, most of the files generated by -fdump-tree-all are presented in 
>>> C-like form instead
>>> of in lisp-like tuple form.
>>> So it’s better to implement a front end for the C-like gimple 
>>> representations.
>>>
>>> I want to make sure if I get the idea right.
>>>
>>> Besides, I’m uncertain about the following questions:
>>> 1.I suppose the syntax of the original gimple file generated by 
>>> -fdump-tree-gimple would cover
>>> the syntax of those generated in later stages. Could some one tell me if 
>>> that’s correct?
>>
>> Well - in 004t.gimple there is still no CFG and we are not in SSA
>> form, so syntax of 'gimple'
>> would change slightly dependent on properties of the IL.  GCC goes to
>> various lowering stages
>> (also for things like OpenMP, nested function and exception handling 
>> support).
>
>Btw, I wouldn't necessarily try to parse exactly those dump format -
>streamlining it for
>easier parsing would be ok, especially for the basic-block markers.
>There was a request
>multiple times to make it easier to adjust a function cut&pasted from
>a dump produced
>by -fdump-tree to valid C (thus accepted by gcc).  One annoying
>road-block is how we
>dump labels and goto destinations.

I tried to compile some simple programs with -fdump-treep-all and 
read some of the dumped files. I have the following comments. 
If I said something wrong please correct me. 


I suppose our goal is to translate the dumped program back to 
the C source code (otherwise we can simply retain the gotos and 
labels since they are already `valid’ in C). In this case we have to 
convert the gotos back to if-elses and whiles. As long as 
CFG informations are given, it’s possible to get rid of these gotos.
 
 Apart from this, Gimple and C also have some differences 
in PHI nodes and exception handling code. They also need to be 
converted back to corresponding C syntax.

—
Yinsong


>
>>> 2.On my computer, it seems both -fdump-tree-gimple and 
>>> -fdump-tree-gimple-raw dump the code to <filename>.004t.gimple.
>>> tf -fdump-tree-all is used, only the result of -fdump-tree-gimple will be 
>>> presented.
>>> Does gcc behave this way on purpose?
>>
>> I think so.  -raw is a dump modifier while -all selects '-gimple' and
>> all others.
>>
>> Richard.
>>
>>>
>>>
>>>
>>> ——
>>> Best regards,
>>> Yinsong Xue
>>>

Reply via email to