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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@355733
91177308-0d34-0410-b5e6-
96231b3b80d8
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)) {