[PATCH] D53942: IR Outliner Pass

Tom Rix via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 1 17:33:10 PDT 2018


trixirt added a comment.

Jessica,

Thanks for the quick review!

Please keep in mind, this is not my original work, but River's. I 
inherited it once he moved on from Sony.  So I may not be able to answer 
all of your questions, nor break this into smaller pieces

On testing.
I believe there are a couple of tests in River's source.  I will import 
those.
Testing has been done mostly by csmith for correctness and then 
baselining a regression set.
The regression set does
   clang -Oz
   clang -Oz -mllvm -enable-cso
   checksize

checksize 'crashes' when iro produces a smaller object.
After a couple of thousand 'crashes', creduce minimizes them into a 
couple of thousand testcases.
This i believe will provide better coverage than the few tests in llvm's 
regression testsuite. The downside, is they would be brittle.  And so 
needs to be down wrt a stable branch, that is why I also have a 
release_70-iro.

I agree that there is overlap between MO and would agree that using what 
is in the tree is better than add more to it.  I have done a POC on how 
this would go, mostly it is generalizing the MO bits with templates.  
This would be a fairly large refactor with some risk of breaking MO and IRO.

So similar to IRO, I am also generating a 1000+ MO csmith/creduce baseline.

I agree on the clunkyness of the name 'codesizeoutliner',  I would 
rather it be ir-outliner, to be consistent with machine-outliner.

If you would like to help on the refactor, that would be good.

Tom


Repository:
  rL LLVM

https://reviews.llvm.org/D53942





More information about the llvm-commits mailing list