IonMonkey/Optimization passes
From MozillaWiki
Over the years we accumulated different optimization passes that all try to optimize the generated MIR code in order to increase the execution speed.
Overview
One of the main properties of IonMonkey is to separate the different optimizations. The reason is to make it easier to work on one specific pass, without having to worry too much about the other passes.
- IonMonkey/RegExp hoisting
- IonMonkey/Pruning of branches
- IonMonkey/Fold tests
- IonMonkey/Split critical edges
- IonMonkey/Eliminate phis
- IonMonkey/Scalar replacement
- IonMonkey/Eager SIMD unboxing
- IonMonkey/Alignment mask analysis
- IonMonkey/Alias analysis
- IonMonkey/Global value numbering
- IonMonkey/Loop invariant code motion
- IonMonkey/Range analysis
- IonMonkey/Unreachable code elimination
- IonMonkey/Remove unnecessary bitops
- IonMonkey/Fold linear arithmetic constants
- IonMonkey/Dead code elimination
- IonMonkey/Bounds check elimination