LLVM 20.0.0git
|
#include "llvm/Transforms/Utils/FixIrreducible.h"
#include "llvm/Analysis/CycleAnalysis.h"
#include "llvm/Analysis/DomTreeUpdater.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/InitializePasses.h"
#include "llvm/Pass.h"
#include "llvm/Transforms/Utils.h"
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
#include "llvm/Transforms/Utils/ControlFlowUtils.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "fix-irreducible" |
Functions | |
INITIALIZE_PASS_BEGIN (FixIrreducible, "fix-irreducible", "Convert irreducible control-flow into natural loops", false, false) INITIALIZE_PASS_END(FixIrreducible | |
fix Convert irreducible control flow into natural static false void | reconnectChildLoops (LoopInfo &LI, Loop *ParentLoop, Loop *NewLoop, BasicBlock *OldHeader) |
static void | updateLoopInfo (LoopInfo &LI, Cycle &C, ArrayRef< BasicBlock * > GuardBlocks) |
static bool | fixIrreducible (Cycle &C, CycleInfo &CI, DominatorTree &DT, LoopInfo *LI) |
static bool | FixIrreducibleImpl (Function &F, CycleInfo &CI, DominatorTree &DT, LoopInfo *LI) |
Variables | |
fix | irreducible |
fix Convert irreducible control flow into natural | loops |
fix Convert irreducible control flow into natural | false |
#define DEBUG_TYPE "fix-irreducible" |
Definition at line 94 of file FixIrreducible.cpp.
|
static |
Definition at line 229 of file FixIrreducible.cpp.
References llvm::GenericCycleInfo< ContextT >::addBlockToCycle(), llvm::ControlFlowHub::addBranch(), assert(), llvm::CallingConv::C, llvm::SetVector< T, Vector, Set, N >::clear(), llvm::dbgs(), llvm::ControlFlowHub::finalize(), G, llvm::Value::getName(), llvm::SetVector< T, Vector, Set, N >::insert(), LLVM_DEBUG, P, llvm::predecessors(), llvm::GenericCycleInfo< ContextT >::print(), updateLoopInfo(), and llvm::DominatorTreeBase< NodeT, IsPostDom >::verify().
Referenced by FixIrreducibleImpl().
|
static |
Definition at line 324 of file FixIrreducible.cpp.
References assert(), llvm::CallingConv::C, llvm::dbgs(), llvm::depth_first(), F, fixIrreducible(), llvm::hasOnlySimpleTerminator(), LLVM_DEBUG, llvm::GenericCycleInfo< ContextT >::toplevel_cycles(), llvm::GenericCycleInfo< ContextT >::verify(), and llvm::LoopInfoBase< BlockT, LoopT >::verify().
Referenced by llvm::FixIrreduciblePass::run().
INITIALIZE_PASS_BEGIN | ( | FixIrreducible | , |
"fix-irreducible" | , | ||
"Convert irreducible control-flow into natural loops" | , | ||
false | , | ||
false | |||
) |
|
static |
Definition at line 132 of file FixIrreducible.cpp.
References llvm::dbgs(), LLVM_DEBUG, and std::swap().
Referenced by updateLoopInfo().
|
static |
Definition at line 175 of file FixIrreducible.cpp.
References llvm::LoopBase< BlockT, LoopT >::addChildLoop(), llvm::LoopInfoBase< BlockT, LoopT >::addTopLevelLoop(), llvm::LoopInfoBase< BlockT, LoopT >::AllocateLoop(), llvm::CallingConv::C, llvm::LoopInfoBase< BlockT, LoopT >::changeLoopFor(), llvm::dbgs(), G, llvm::LoopBase< BlockT, LoopT >::getHeader(), llvm::LoopInfoBase< BlockT, LoopT >::getLoopFor(), llvm::LoopBase< BlockT, LoopT >::getParentLoop(), LLVM_DEBUG, llvm::LoopBase< BlockT, LoopT >::print(), reconnectChildLoops(), and llvm::LoopBase< BlockT, LoopT >::verifyLoop().
Referenced by fixIrreducible().
fix Convert irreducible control flow into natural false |
Definition at line 128 of file FixIrreducible.cpp.
fix irreducible |
Definition at line 126 of file FixIrreducible.cpp.
fix Convert irreducible control flow into natural loops |
Definition at line 127 of file FixIrreducible.cpp.