diff options
Diffstat (limited to 'gnu/llvm/lib/CodeGen/TailDuplication.cpp')
| -rw-r--r-- | gnu/llvm/lib/CodeGen/TailDuplication.cpp | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/gnu/llvm/lib/CodeGen/TailDuplication.cpp b/gnu/llvm/lib/CodeGen/TailDuplication.cpp deleted file mode 100644 index 25cd7802264..00000000000 --- a/gnu/llvm/lib/CodeGen/TailDuplication.cpp +++ /dev/null @@ -1,85 +0,0 @@ -//===- TailDuplication.cpp - Duplicate blocks into predecessors' tails ----===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -/// \file This pass duplicates basic blocks ending in unconditional branches -/// into the tails of their predecessors, using the TailDuplicator utility -/// class. -// -//===----------------------------------------------------------------------===// - -#include "llvm/CodeGen/MachineBranchProbabilityInfo.h" -#include "llvm/CodeGen/MachineFunction.h" -#include "llvm/CodeGen/MachineFunctionPass.h" -#include "llvm/CodeGen/MachineRegisterInfo.h" -#include "llvm/CodeGen/Passes.h" -#include "llvm/CodeGen/TailDuplicator.h" -#include "llvm/Pass.h" - -using namespace llvm; - -#define DEBUG_TYPE "tailduplication" - -namespace { - -class TailDuplicateBase : public MachineFunctionPass { - TailDuplicator Duplicator; - bool PreRegAlloc; -public: - TailDuplicateBase(char &PassID, bool PreRegAlloc) - : MachineFunctionPass(PassID), PreRegAlloc(PreRegAlloc) {} - - bool runOnMachineFunction(MachineFunction &MF) override; - - void getAnalysisUsage(AnalysisUsage &AU) const override { - AU.addRequired<MachineBranchProbabilityInfo>(); - MachineFunctionPass::getAnalysisUsage(AU); - } -}; - -class TailDuplicate : public TailDuplicateBase { -public: - static char ID; - TailDuplicate() : TailDuplicateBase(ID, false) { - initializeTailDuplicatePass(*PassRegistry::getPassRegistry()); - } -}; - -class EarlyTailDuplicate : public TailDuplicateBase { -public: - static char ID; - EarlyTailDuplicate() : TailDuplicateBase(ID, true) { - initializeEarlyTailDuplicatePass(*PassRegistry::getPassRegistry()); - } -}; - -} // end anonymous namespace - -char TailDuplicate::ID; -char EarlyTailDuplicate::ID; - -char &llvm::TailDuplicateID = TailDuplicate::ID; -char &llvm::EarlyTailDuplicateID = EarlyTailDuplicate::ID; - -INITIALIZE_PASS(TailDuplicate, DEBUG_TYPE, "Tail Duplication", false, false) -INITIALIZE_PASS(EarlyTailDuplicate, "early-tailduplication", - "Early Tail Duplication", false, false) - -bool TailDuplicateBase::runOnMachineFunction(MachineFunction &MF) { - if (skipFunction(MF.getFunction())) - return false; - - auto MBPI = &getAnalysis<MachineBranchProbabilityInfo>(); - Duplicator.initMF(MF, PreRegAlloc, MBPI, /*LayoutMode=*/false); - - bool MadeChange = false; - while (Duplicator.tailDuplicateBlocks()) - MadeChange = true; - - return MadeChange; -} |
