LLVM  3.7.0
Public Member Functions | Public Attributes | List of all members
llvm::CriticalEdgeSplittingOptions Struct Reference

Option class for critical edge splitting. More...

#include <BasicBlockUtils.h>

Collaboration diagram for llvm::CriticalEdgeSplittingOptions:
[legend]

Public Member Functions

 CriticalEdgeSplittingOptions ()
 
 CriticalEdgeSplittingOptions (AliasAnalysis *AA, DominatorTree *DT=nullptr, LoopInfo *LI=nullptr)
 Basic case of setting up all the analysis. More...
 
 CriticalEdgeSplittingOptions (DominatorTree *DT, LoopInfo *LI)
 A common pattern is to preserve the dominator tree and loop info but not care about AA. More...
 
CriticalEdgeSplittingOptionssetMergeIdenticalEdges ()
 
CriticalEdgeSplittingOptionssetDontDeleteUselessPHIs ()
 
CriticalEdgeSplittingOptionssetPreserveLCSSA ()
 

Public Attributes

AliasAnalysisAA
 
DominatorTreeDT
 
LoopInfoLI
 
bool MergeIdenticalEdges
 
bool DontDeleteUselessPHIs
 
bool PreserveLCSSA
 

Detailed Description

Option class for critical edge splitting.

This provides a builder interface for overriding the default options used during critical edge splitting.

Definition at line 84 of file BasicBlockUtils.h.

Constructor & Destructor Documentation

llvm::CriticalEdgeSplittingOptions::CriticalEdgeSplittingOptions ( )
inline

Definition at line 92 of file BasicBlockUtils.h.

llvm::CriticalEdgeSplittingOptions::CriticalEdgeSplittingOptions ( AliasAnalysis AA,
DominatorTree DT = nullptr,
LoopInfo LI = nullptr 
)
inline

Basic case of setting up all the analysis.

Definition at line 97 of file BasicBlockUtils.h.

llvm::CriticalEdgeSplittingOptions::CriticalEdgeSplittingOptions ( DominatorTree DT,
LoopInfo LI 
)
inline

A common pattern is to preserve the dominator tree and loop info but not care about AA.

Definition at line 104 of file BasicBlockUtils.h.

Member Function Documentation

CriticalEdgeSplittingOptions& llvm::CriticalEdgeSplittingOptions::setDontDeleteUselessPHIs ( )
inline

Definition at line 113 of file BasicBlockUtils.h.

References DontDeleteUselessPHIs.

CriticalEdgeSplittingOptions& llvm::CriticalEdgeSplittingOptions::setMergeIdenticalEdges ( )
inline

Definition at line 108 of file BasicBlockUtils.h.

References MergeIdenticalEdges.

Referenced by SplitCriticalSideEffectEdges().

CriticalEdgeSplittingOptions& llvm::CriticalEdgeSplittingOptions::setPreserveLCSSA ( )
inline

Definition at line 118 of file BasicBlockUtils.h.

References PreserveLCSSA.

Member Data Documentation

AliasAnalysis* llvm::CriticalEdgeSplittingOptions::AA

Definition at line 85 of file BasicBlockUtils.h.

Referenced by llvm::SplitCriticalEdge().

bool llvm::CriticalEdgeSplittingOptions::DontDeleteUselessPHIs

Definition at line 89 of file BasicBlockUtils.h.

Referenced by setDontDeleteUselessPHIs(), and llvm::SplitCriticalEdge().

DominatorTree* llvm::CriticalEdgeSplittingOptions::DT

Definition at line 86 of file BasicBlockUtils.h.

Referenced by llvm::SplitCriticalEdge().

LoopInfo* llvm::CriticalEdgeSplittingOptions::LI

Definition at line 87 of file BasicBlockUtils.h.

Referenced by llvm::SplitCriticalEdge().

bool llvm::CriticalEdgeSplittingOptions::MergeIdenticalEdges

Definition at line 88 of file BasicBlockUtils.h.

Referenced by setMergeIdenticalEdges(), and llvm::SplitCriticalEdge().

bool llvm::CriticalEdgeSplittingOptions::PreserveLCSSA

Definition at line 90 of file BasicBlockUtils.h.

Referenced by setPreserveLCSSA(), and llvm::SplitCriticalEdge().


The documentation for this struct was generated from the following file: