Movatterモバイル変換


[0]ホーム

URL:


Next:, Previous:, Up:Introduction   [Contents][Index]


12 Analysis and Optimization of GIMPLE tuples

GCC uses three main intermediate languages to represent the programduring compilation: GENERIC, GIMPLE and RTL. GENERIC is alanguage-independent representation generated by each front end. Itis used to serve as an interface between the parser and optimizer.GENERIC is a common representation that is able to represent programswritten in all the languages supported by GCC.

GIMPLE and RTL are used to optimize the program. GIMPLE is used fortarget and language independent optimizations (e.g., inlining,constant propagation, tail call elimination, redundancy elimination,etc). Much like GENERIC, GIMPLE is a language independent, tree basedrepresentation. However, it differs from GENERIC in that the GIMPLEgrammar is more restrictive: expressions contain no more than 3operands (except function calls), it has no control flow structuresand expressions with side effects are only allowed on the right handside of assignments. See the chapter describing GENERIC and GIMPLEfor more details.

This chapter describes the data structures and functions used in theGIMPLE optimizers (also known as “tree optimizers” or “middleend”). In particular, it focuses on all the macros, data structures,functions and programming constructs needed to implement optimizationpasses for GIMPLE.


[8]ページ先頭

©2009-2026 Movatter.jp