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]