LLVM 20.0.0git
|
Option class for critical edge splitting. More...
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
Public Member Functions | |
CriticalEdgeSplittingOptions (DominatorTree *DT=nullptr, LoopInfo *LI=nullptr, MemorySSAUpdater *MSSAU=nullptr, PostDominatorTree *PDT=nullptr) | |
CriticalEdgeSplittingOptions & | setMergeIdenticalEdges () |
CriticalEdgeSplittingOptions & | setKeepOneInputPHIs () |
CriticalEdgeSplittingOptions & | setPreserveLCSSA () |
CriticalEdgeSplittingOptions & | setIgnoreUnreachableDests () |
CriticalEdgeSplittingOptions & | unsetPreserveLoopSimplify () |
Public Attributes | |
DominatorTree * | DT |
PostDominatorTree * | PDT |
LoopInfo * | LI |
MemorySSAUpdater * | MSSAU |
bool | MergeIdenticalEdges = false |
bool | KeepOneInputPHIs = false |
bool | PreserveLCSSA = false |
bool | IgnoreUnreachableDests = false |
bool | PreserveLoopSimplify = true |
SplitCriticalEdge is guaranteed to preserve loop-simplify form if LI is provided. | |
Option class for critical edge splitting.
This provides a builder interface for overriding the default options used during critical edge splitting.
Definition at line 145 of file BasicBlockUtils.h.
|
inline |
Definition at line 159 of file BasicBlockUtils.h.
|
inline |
Definition at line 180 of file BasicBlockUtils.h.
References IgnoreUnreachableDests.
|
inline |
Definition at line 170 of file BasicBlockUtils.h.
References KeepOneInputPHIs.
|
inline |
Definition at line 165 of file BasicBlockUtils.h.
References MergeIdenticalEdges.
|
inline |
Definition at line 175 of file BasicBlockUtils.h.
References PreserveLCSSA.
Referenced by llvm::SplitEdge().
|
inline |
Definition at line 185 of file BasicBlockUtils.h.
References PreserveLoopSimplify.
DominatorTree* llvm::CriticalEdgeSplittingOptions::DT |
Definition at line 146 of file BasicBlockUtils.h.
bool llvm::CriticalEdgeSplittingOptions::IgnoreUnreachableDests = false |
Definition at line 153 of file BasicBlockUtils.h.
Referenced by setIgnoreUnreachableDests().
bool llvm::CriticalEdgeSplittingOptions::KeepOneInputPHIs = false |
Definition at line 151 of file BasicBlockUtils.h.
Referenced by setKeepOneInputPHIs().
LoopInfo* llvm::CriticalEdgeSplittingOptions::LI |
Definition at line 148 of file BasicBlockUtils.h.
bool llvm::CriticalEdgeSplittingOptions::MergeIdenticalEdges = false |
Definition at line 150 of file BasicBlockUtils.h.
Referenced by setMergeIdenticalEdges().
MemorySSAUpdater* llvm::CriticalEdgeSplittingOptions::MSSAU |
Definition at line 149 of file BasicBlockUtils.h.
PostDominatorTree* llvm::CriticalEdgeSplittingOptions::PDT |
Definition at line 147 of file BasicBlockUtils.h.
bool llvm::CriticalEdgeSplittingOptions::PreserveLCSSA = false |
Definition at line 152 of file BasicBlockUtils.h.
Referenced by setPreserveLCSSA().
SplitCriticalEdge is guaranteed to preserve loop-simplify form if LI is provided.
If it cannot be preserved, no splitting will take place. If it is not set, preserve loop-simplify form if possible.
Definition at line 157 of file BasicBlockUtils.h.
Referenced by unsetPreserveLoopSimplify().