diff --git a/llvm/lib/Analysis/RegionPass.cpp b/llvm/lib/Analysis/RegionPass.cpp --- a/llvm/lib/Analysis/RegionPass.cpp +++ b/llvm/lib/Analysis/RegionPass.cpp @@ -14,6 +14,7 @@ //===----------------------------------------------------------------------===// #include "llvm/Analysis/RegionPass.h" #include "llvm/IR/OptBisect.h" +#include "llvm/IR/PrintPasses.h" #include "llvm/IR/PassTimingInfo.h" #include "llvm/IR/StructuralHash.h" #include "llvm/Support/Debug.h" @@ -187,12 +188,14 @@ } bool runOnRegion(Region *R, RGPassManager &RGM) override { - Out << Banner; - for (const auto *BB : R->blocks()) { - if (BB) - BB->print(Out); + if (isFunctionInPrintList(R->getEntry()->getParent()->getName())) { + Out << Banner; + for (const auto *BB : R->blocks()) { + if (BB) + BB->print(Out); else - Out << "Printing Block"; + Out << "Printing Block"; + } } return false;