instcombine pass gives powerful performance than LICMPass, but only bubblesort case optimization harms performance.
Furious optimization idea
small values in one 64bit memory
Prerequisites: recognize continuous two similar operations in loop or elsewhere
Oracle pass idea
Extract some loop from code, push into oracle.
Or extract multiple 'small' loops and distinguish 'mode' inside oracle.
Before call oracle, store variable into memory. After call oracle, load variable from memory.
Final results
We decided to implement function inline pass, oracle pass, free-remove pass, and advance of arithmetic pass. Maybe more pass will be implemented in sprint 3.
Deep performance analysis
Furious optimization idea
Oracle pass idea
Final results We decided to implement function inline pass, oracle pass, free-remove pass, and advance of arithmetic pass. Maybe more pass will be implemented in sprint 3.
Merge NFC PR firstly.