#include "llvm/CodeGen/UnreachableBlockElim.h"
#include "llvm/ADT/DepthFirstIterator.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/CodeGen/MachineDominators.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineLoopInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/IR/Dominators.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
usingnamespacellvm;
namespace {
class UnreachableBlockElimLegacyPass : public FunctionPass { … };
}
char UnreachableBlockElimLegacyPass::ID = …;
INITIALIZE_PASS(…)
FunctionPass *llvm::createUnreachableBlockEliminationPass() { … }
PreservedAnalyses UnreachableBlockElimPass::run(Function &F,
FunctionAnalysisManager &AM) { … }
namespace {
class UnreachableMachineBlockElim : public MachineFunctionPass { … };
}
char UnreachableMachineBlockElim::ID = …;
INITIALIZE_PASS(…)
char &llvm::UnreachableMachineBlockElimID = …;
void UnreachableMachineBlockElim::getAnalysisUsage(AnalysisUsage &AU) const { … }
bool UnreachableMachineBlockElim::runOnMachineFunction(MachineFunction &F) { … }