IonMonkey/Optimization passes: Difference between revisions
Jump to navigation
Jump to search
(Created page with "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 m...") |
|||
Line 5: | Line 5: | ||
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. | 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. | ||
* [[RegExp hoisting]] | * [[IonMonkey/RegExp hoisting]] | ||
* [[Pruning of branches]] | * [[IonMonkey/Pruning of branches]] | ||
* [[Fold tests]] | * [[IonMonkey/Fold tests]] | ||
* [[Split critical edges]] | * [[IonMonkey/Split critical edges]] | ||
* [[Eliminate phis]] | * [[IonMonkey/Eliminate phis]] | ||
* [[Scalar replacement]] | * [[IonMonkey/Scalar replacement]] | ||
* [[Eager SIMD unboxing]] | * [[IonMonkey/Eager SIMD unboxing]] | ||
* [[Alignment mask analysis]] | * [[IonMonkey/Alignment mask analysis]] | ||
* [[Alias analysis]] | * [[IonMonkey/Alias analysis]] | ||
* [[Global value numbering]] | * [[IonMonkey/Global value numbering]] | ||
* [[Loop invariant code motion]] | * [[IonMonkey/Loop invariant code motion]] | ||
* [[Range analysis]] | * [[IonMonkey/Range analysis]] | ||
* [[Unreachable code elimination]] | * [[IonMonkey/Unreachable code elimination]] | ||
* [[Remove unnecessary bitops]] | * [[IonMonkey/Remove unnecessary bitops]] | ||
* [[Fold linear arithmetic constants]] | * [[IonMonkey/Fold linear arithmetic constants]] | ||
* [[Dead code elimination]] | * [[IonMonkey/Dead code elimination]] | ||
* [[Bounds check elimination]] | * [[IonMonkey/Bounds check elimination]] |
Latest revision as of 09:57, 2 November 2016
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