|
LLVM 22.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 141 of file FixIrreducible.cpp.
|
static |
Definition at line 275 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::dyn_cast(), E(), llvm::ControlFlowHub::finalize(), G, I, llvm::SetVector< T, Vector, Set, N >::insert(), LLVM_DEBUG, llvm_unreachable, P, llvm::predecessors(), llvm::GenericCycleInfo< ContextT >::print(), llvm::printBasicBlock(), llvm::SplitCallBrEdge(), updateLoopInfo(), and llvm::DominatorTreeBase< NodeT, IsPostDom >::verify().
Referenced by FixIrreducibleImpl().
|
static |
Definition at line 399 of file FixIrreducible.cpp.
References llvm::CallingConv::C, Changed, llvm::dbgs(), llvm::depth_first(), F, fixIrreducible(), 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 | ) |
References INITIALIZE_PASS_DEPENDENCY.
|
static |
Definition at line 179 of file FixIrreducible.cpp.
References llvm::dbgs(), llvm::SmallVectorImpl< T >::erase(), for(), LLVM_DEBUG, llvm::partition(), reconnectChildLoops(), and std::swap().
Referenced by reconnectChildLoops(), and updateLoopInfo().
|
static |
Definition at line 221 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 175 of file FixIrreducible.cpp.
| fix irreducible |
Definition at line 173 of file FixIrreducible.cpp.
| fix Convert irreducible control flow into natural loops |
Definition at line 174 of file FixIrreducible.cpp.