LLVM
17.0.0git
|
#include "llvm/Transforms/Utils/UnifyLoopExits.h"
#include "llvm/ADT/MapVector.h"
#include "llvm/Analysis/DomTreeUpdater.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/Dominators.h"
#include "llvm/InitializePasses.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Transforms/Utils.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
Go to the source code of this file.
Namespaces | |
llvm | |
This is an optimization pass for GlobalISel generic memory operations. | |
Macros | |
#define | DEBUG_TYPE "unify-loop-exits" |
Functions | |
INITIALIZE_PASS_BEGIN (UnifyLoopExitsLegacyPass, "unify-loop-exits", "Fixup each natural loop to have a single exit block", false, false) INITIALIZE_PASS_END(UnifyLoopExitsLegacyPass | |
unify loop Fixup each natural loop to have a single exit static false void | restoreSSA (const DominatorTree &DT, const Loop *L, const SetVector< BasicBlock * > &Incoming, BasicBlock *LoopExitBlock) |
static bool | unifyLoopExits (DominatorTree &DT, LoopInfo &LI, Loop *L) |
static bool | runImpl (LoopInfo &LI, DominatorTree &DT) |
Variables | |
static cl::opt< unsigned > | MaxBooleansInControlFlowHub ("max-booleans-in-control-flow-hub", cl::init(32), cl::Hidden, cl::desc("Set the maximum number of outgoing blocks for using a boolean " "value to record the exiting block in CreateControlFlowHub.")) |
unify loop | exits |
unify loop Fixup each natural loop to have a single exit | block |
unify loop Fixup each natural loop to have a single exit | false |
Definition at line 30 of file UnifyLoopExits.cpp.
INITIALIZE_PASS_BEGIN | ( | UnifyLoopExitsLegacyPass | , |
"unify-loop-exits" | , | ||
"Fixup each natural loop to have a single exit block" | , | ||
false | , | ||
false | |||
) |
|
static |
Definition at line 91 of file UnifyLoopExits.cpp.
References BB, llvm::PHINode::Create(), llvm::dbgs(), llvm::tgtok::Def, llvm::UndefValue::get(), I, llvm::tgtok::In, and LLVM_DEBUG.
Referenced by unifyLoopExits().
|
static |
Definition at line 219 of file UnifyLoopExits.cpp.
References llvm::dbgs(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopDepth(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopsInPreorder(), LLVM_DEBUG, Loops, and unifyLoopExits().
Referenced by llvm::UnifyLoopExitsPass::run().
|
static |
Definition at line 146 of file UnifyLoopExits.cpp.
References assert(), BB, llvm::LoopBase< BlockT, LoopT >::contains(), llvm::CreateControlFlowHub(), llvm::dbgs(), llvm::DomTreeUpdater::Eager, llvm::Sched::Fast, llvm::JumpTable::Full, G, llvm::LoopBase< BlockT, LoopT >::getExitingBlocks(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), llvm::SetVector< T, Vector, Set >::insert(), LLVM_DEBUG, MaxBooleansInControlFlowHub, restoreSSA(), S, llvm::successors(), llvm::DominatorTreeBase< NodeT, IsPostDom >::verify(), llvm::LoopInfoBase< BlockT, LoopT >::verify(), and llvm::LoopBase< BlockT, LoopT >::verifyLoop().
Referenced by runImpl().
Definition at line 72 of file UnifyLoopExits.cpp.
unify loop exits |
Definition at line 71 of file UnifyLoopExits.cpp.
Definition at line 73 of file UnifyLoopExits.cpp.