- Run various algorithms to optimize the IR.
- Translate the final IR to machine code.
The optimizations include:
- Loop-Invariant Code Motion (LICM), or moving instructions outside of loops when possible.
- Sparse Global Value Numbering (GVN), a powerful form of redundant code elimination.
- Linear Scan Register Allocation (LSRA), the register allocation scheme used in the HotSpot JVM (and until recently, LLVM).
- Dead Code Elimination (DCE), removing unused instructions.
- Range Analysis; eliminating bounds checks
The code generation works for x86 both 32bit and 64 bit and for ARM.
Other new features in Firefox 18 are:
- Retina Display Support for Mac users to make Firefox even sharper when watching movies, playing games and browsing the Web.
- A facility to disable insecure content on HTTPS secure websites to maintain the privacy of your communication with the website. You can enable the feature in about:config.
- Support for standard W3C touch events in addition to MozTouch events.