[llvm-dev] [RFC] Add IR level interprocedural outliner for code size.
llvm-dev at lists.llvm.org
Sun Jul 23 00:43:06 PDT 2017
Thanks for the reply!
> 23 июля 2017 г., в 1:05, River Riddle <riddleriver at gmail.com> написал(а):
> - The explanation as to why the improvements can vary between the IR and MIR outliner mainly boil down to the level of abstraction that each are working at. The MIR level has very accurate heuristics and is effectively the last post ISel target independent code gen pass. The IR outliner on the other hand has more estimation in the cost model, and can affect the decisions of function simplification passes, instruction selection, RA, etc. Taking this into account can lead to different results.
To clarify, I'm surprised not with % differences (this is understandable), but with differences in what benchmarks got improved. It seems odd that MO, working on lower abstraction level, managed to find redundancies (say, in libquantum) that EO+LO missed. But indeed -- perhaps EO+LO cost model just considered these cases to be non-profitable. It would be interesting to know precisely.
More information about the llvm-dev