LLVM 20.0.0git
Macros | Functions | Variables
FixIrreducible.cpp File Reference
#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
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "fix-irreducible"

Definition at line 94 of file FixIrreducible.cpp.

Function Documentation

◆ fixIrreducible()

static bool fixIrreducible ( Cycle C,
CycleInfo CI,
DominatorTree DT,
LoopInfo LI 
)
static

◆ FixIrreducibleImpl()

static bool FixIrreducibleImpl ( Function F,
CycleInfo CI,
DominatorTree DT,
LoopInfo LI 
)
static

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( FixIrreducible  ,
"fix-irreducible"  ,
"Convert irreducible control-flow into natural loops"  ,
false  ,
false   
)

◆ reconnectChildLoops()

fix Convert irreducible control flow into natural static false void reconnectChildLoops ( LoopInfo LI,
Loop ParentLoop,
Loop NewLoop,
BasicBlock OldHeader 
)
static

Definition at line 132 of file FixIrreducible.cpp.

References llvm::dbgs(), LLVM_DEBUG, and std::swap().

Referenced by updateLoopInfo().

◆ updateLoopInfo()

static void updateLoopInfo ( LoopInfo LI,
Cycle C,
ArrayRef< BasicBlock * >  GuardBlocks 
)
static

Variable Documentation

◆ false

fix Convert irreducible control flow into natural false

Definition at line 128 of file FixIrreducible.cpp.

◆ irreducible

fix irreducible

Definition at line 126 of file FixIrreducible.cpp.

◆ loops

fix Convert irreducible control flow into natural loops

Definition at line 127 of file FixIrreducible.cpp.