#include "llvm/ADT/BitVector.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/Analysis/CFG.h"
+#include "llvm/Analysis/EHPersonalities.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/Function.h"
BasicBlock *BB = RI->getParent();
new UnreachableInst(Ctx, RI);
RI->eraseFromParent();
- SimplifyCFG(BB, TTI, 1, TLI->getDataLayout());
+ SimplifyCFG(BB, TTI, 1);
}
}
Resumes.resize(ResumesLeft);
if (Resumes.empty())
return false;
+ // Check the personality, don't do anything if it's funclet-based.
+ EHPersonality Pers = classifyEHPersonality(Fn.getPersonalityFn());
+ if (isFuncletEHPersonality(Pers))
+ return false;
+
LLVMContext &Ctx = Fn.getContext();
size_t ResumesLeft = pruneUnreachableResumes(Fn, Resumes, CleanupLPads);