This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: code gen for C string literals
kevin diggs <diggskevin38@gmail.com> writes:
> On Tue, Feb 15, 2011 at 11:25 AM, Ian Lance Taylor <iant@google.com> wrote:
>> kevin diggs <diggskevin38@gmail.com> writes:
>>
>>
>> GIMPLE is the representation used by the middle-end.
>
> ??? what is the relationship between GIMPLE and RTL, which at my VERY
> EARLY understanding of what goes on under the hood I would have
> thought was the middle-end representation? Is RTL "the back-end
> representation" (my guess would have been asm though maybe that is the
> output)?
Yes, RTL is also a representation used by the middle-end. RTL is much
more machine specific than GIMPLE. The middle-end starts with the
conversion to GIMPLE. It runs a bunch of general optimization passes.
Then the GIMPLE is converted to RTL. Then comes a few more optimization
passes, then stuff like register allocation, instruction scheduling, and
final code generation.
>> SSA is a compiler optimization technique which heavily influences the
>> design of the intermediate representation. ÂSee
>> http://en.wikipedia.org/wiki/Static_single_assignment_form .
>>
> Is SSA new? i.e. in what gcc version did it start getting used?
SSA was introduced into gcc in version 4.0.
Ian