[PATCH] D19640: Update opt-bisect code to avoid skipping AlwaysInliner

Andy Kaylor via llvm-commits llvm-commits at lists.llvm.org
Mon May 23 09:37:09 PDT 2016

andrew.w.kaylor added a comment.

In http://reviews.llvm.org/D19640#436283, @MatzeB wrote:

> I think we can achieve this without a virtual function by refactoring all the code inside Inliner::runOnScc() that comes below the skipSCC() check into an own function. The AlwaysInliner pass can then just override runOnSCC() which calls this common function but contrary to Inliner::runOnSCC() without checking skipSCC().

So you're thinking something like this?

  bool Inliner::runOnSCC(CallGraphSCC &SCC) {
    if (skipSCC(SCC))
      return false;
    return inlineCalls(SCC);
  bool AlwaysInliner::runOnSCC(CallGraphSCC &SCC) {
    return inlineCalls(SCC);

Alternatively, I could just add a "canSkipPass()" virtual method to Inliner, but I suppose the above is consistent with the way that passes are being migrated to the new pass manager.



More information about the llvm-commits mailing list