Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Compiler
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==== Back end ==== The back end is responsible for the CPU architecture specific optimizations and for [[code generation (compiler)|code generation]].<ref name="Hjort Blindell, Gabriel"/> The main phases of the back end include the following: * ''Machine dependent optimizations'': optimizations that depend on the details of the CPU architecture that the compiler targets.<ref>Cooper and Toczon (2012), p. 540</ref> A prominent example is [[peephole optimization]]s, which rewrites short sequences of assembler instructions into more efficient instructions. * ''[[Code generation (compiler)|Code generation]]'': the transformed intermediate language is translated into the output language, usually the native [[machine language]] of the system. This involves resource and storage decisions, such as deciding which variables to fit into [[Register allocation|registers]] and memory and the [[Instruction selection|selection]] and [[Instruction scheduling|scheduling]] of appropriate machine instructions along with their associated [[addressing mode]]s (see also [[Sethi–Ullman algorithm]]). Debug data may also need to be generated to facilitate [[debugging]].
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)