From 65c5821e3fac2b8c532ff9450120741a9c16883a Mon Sep 17 00:00:00 2001 From: Michael Kruse Date: Fri, 8 Mar 2019 21:03:06 +0000 Subject: [PATCH] [RegionPass] Fix forgotten "!". Commit r355068 "Fix IR/Analysis layering issue with OptBisect" uses the template return Gate.isEnabled() && !Gate.shouldRunPass(this, getDescription(...)); for all pass kinds. For the RegionPass, it left out the not operator, causing region passes to be skipped as soon as a pass gate is used. llvm-svn: 355733 --- llvm/lib/Analysis/RegionPass.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/lib/Analysis/RegionPass.cpp b/llvm/lib/Analysis/RegionPass.cpp index 901adbf27d90..f2bb1044abd3 100644 --- a/llvm/lib/Analysis/RegionPass.cpp +++ b/llvm/lib/Analysis/RegionPass.cpp @@ -285,7 +285,7 @@ static std::string getDescription(const Region &R) { bool RegionPass::skipRegion(Region &R) const { Function &F = *R.getEntry()->getParent(); OptPassGate &Gate = F.getContext().getOptPassGate(); - if (Gate.isEnabled() && Gate.shouldRunPass(this, getDescription(R))) + if (Gate.isEnabled() && !Gate.shouldRunPass(this, getDescription(R))) return true; if (F.hasFnAttribute(Attribute::OptimizeNone)) { -- GitLab