[PATCH] D23299: [PM] Port the always inliner to the new pass manager in a much more minimal and boring form than the old pass manager's version.

David Li via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 11 11:55:02 PDT 2016


davidxl added a comment.

yes, I understand the module pass is quite simple and straightforward, but it seems to me the legacy always inliner is even simpler -- as it is simply one 'instantiation' of a common inliner implementation with one inline cost hook provided :) Have we compared the pros-and-cons of the two approaches?

The pro of using module pass include : avoid building CG so it might be a compile time win (depending on how expensive GlobalDCE is).

The cons I can see:

1. need to insert life time marker at O0 and depend on stack coloring to be turned on at O0 (which can be expensive)
2. need to run GlobalDCE
3. It is likely in the future CG is needed at O0 for other reasons, then the benefit of avoiding CG will be gone.
4. less code sharing.

Did I miss others?


https://reviews.llvm.org/D23299





More information about the llvm-commits mailing list