gccint: Tree SSA

1 
1 13 Analysis and Optimization of GIMPLE tuples
1 *********************************************
1 
1 GCC uses three main intermediate languages to represent the program
1 during compilation: GENERIC, GIMPLE and RTL.  GENERIC is a
1 language-independent representation generated by each front end.  It is
1 used to serve as an interface between the parser and optimizer.  GENERIC
1 is a common representation that is able to represent programs written in
1 all the languages supported by GCC.
1 
1  GIMPLE and RTL are used to optimize the program.  GIMPLE is used for
1 target and language independent optimizations (e.g., inlining, constant
1 propagation, tail call elimination, redundancy elimination, etc).  Much
1 like GENERIC, GIMPLE is a language independent, tree based
1 representation.  However, it differs from GENERIC in that the GIMPLE
1 grammar is more restrictive: expressions contain no more than 3 operands
1 (except function calls), it has no control flow structures and
1 expressions with side effects are only allowed on the right hand side of
1 assignments.  See the chapter describing GENERIC and GIMPLE for more
1 details.
1 
1  This chapter describes the data structures and functions used in the
1 GIMPLE optimizers (also known as "tree optimizers" or "middle end").  In
1 particular, it focuses on all the macros, data structures, functions and
1 programming constructs needed to implement optimization passes for
1 GIMPLE.
1 

Menu