GCC: Difference between revisions
No edit summary |
No edit summary |
||
| Line 18: | Line 18: | ||
* <tt>nothrow</tt> (3.3) - marks the function as never throwing an exception, for optimization purposes. | * <tt>nothrow</tt> (3.3) - marks the function as never throwing an exception, for optimization purposes. | ||
* <tt>noreturn</tt> (2.5) - marks the function as never normally returning (<tt>longjmp(3)</tt> and exceptions may still be used). | * <tt>noreturn</tt> (2.5) - marks the function as never normally returning (<tt>longjmp(3)</tt> and exceptions may still be used). | ||
==Intermediate Representations== | |||
* [http://gcc.gnu.org/onlinedocs/gccint/index.html#toc_RTL RTL]: The Register Transfer Language, GCC's older IR (still used for late optimization passes) | |||
* GENERIC: A loose IR to which frontends must now compile | |||
* GIMPLE: A restricted subset of GENERIC, on which most optimizations are performed | |||
==See also== | ==See also== | ||
* [[Compiler design]] | |||
* [[Working with libraries#Building libraries|Building Libraries]] | * [[Working with libraries#Building libraries|Building Libraries]] | ||
* [http://nickclifton.livejournal.com/ Nick Clifton] keeps a good monthly-or-so livejournal regarding the GNU toolchain | * [http://nickclifton.livejournal.com/ Nick Clifton] keeps a good monthly-or-so livejournal regarding the GNU toolchain | ||
* "[http://www.cs.lth.se/home/Jonas_Skeppstedt/kongstad.pdf An Implementation of Global Value Numbering in the GNU Compiler Collection, with Performance Measurements]" (Kongstad 2004) | |||
* [gcc.gnu.org/onlinedocs/gccint/ GNU Compiler Collection Internals] | |||