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
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)) {