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

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)
CriticalEdgeSplittingOptionssetMergeIdenticalEdges ()
CriticalEdgeSplittingOptionssetKeepOneInputPHIs ()
CriticalEdgeSplittingOptionssetPreserveLCSSA ()
CriticalEdgeSplittingOptionssetIgnoreUnreachableDests ()
CriticalEdgeSplittingOptionsunsetPreserveLoopSimplify ()

Public Attributes

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.

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 145 of file BasicBlockUtils.h.

Constructor & Destructor Documentation

◆ CriticalEdgeSplittingOptions()

llvm::CriticalEdgeSplittingOptions::CriticalEdgeSplittingOptions ( DominatorTree DT = nullptr,
LoopInfo LI = nullptr,
MemorySSAUpdater MSSAU = nullptr,
PostDominatorTree PDT = nullptr 

Definition at line 159 of file BasicBlockUtils.h.

Member Function Documentation

◆ setIgnoreUnreachableDests()

CriticalEdgeSplittingOptions & llvm::CriticalEdgeSplittingOptions::setIgnoreUnreachableDests ( )

Definition at line 180 of file BasicBlockUtils.h.

References IgnoreUnreachableDests.

◆ setKeepOneInputPHIs()

CriticalEdgeSplittingOptions & llvm::CriticalEdgeSplittingOptions::setKeepOneInputPHIs ( )

Definition at line 170 of file BasicBlockUtils.h.

References KeepOneInputPHIs.

◆ setMergeIdenticalEdges()

CriticalEdgeSplittingOptions & llvm::CriticalEdgeSplittingOptions::setMergeIdenticalEdges ( )

Definition at line 165 of file BasicBlockUtils.h.

References MergeIdenticalEdges.

◆ setPreserveLCSSA()

CriticalEdgeSplittingOptions & llvm::CriticalEdgeSplittingOptions::setPreserveLCSSA ( )

Definition at line 175 of file BasicBlockUtils.h.

References PreserveLCSSA.

Referenced by llvm::SplitEdge().

◆ unsetPreserveLoopSimplify()

CriticalEdgeSplittingOptions & llvm::CriticalEdgeSplittingOptions::unsetPreserveLoopSimplify ( )

Definition at line 185 of file BasicBlockUtils.h.

References PreserveLoopSimplify.

Member Data Documentation

◆ DT

DominatorTree* llvm::CriticalEdgeSplittingOptions::DT

Definition at line 146 of file BasicBlockUtils.h.

◆ IgnoreUnreachableDests

bool llvm::CriticalEdgeSplittingOptions::IgnoreUnreachableDests = false

Definition at line 153 of file BasicBlockUtils.h.

Referenced by setIgnoreUnreachableDests().

◆ KeepOneInputPHIs

bool llvm::CriticalEdgeSplittingOptions::KeepOneInputPHIs = false

Definition at line 151 of file BasicBlockUtils.h.

Referenced by setKeepOneInputPHIs().

◆ LI

LoopInfo* llvm::CriticalEdgeSplittingOptions::LI

Definition at line 148 of file BasicBlockUtils.h.

◆ MergeIdenticalEdges

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.

◆ PreserveLCSSA

bool llvm::CriticalEdgeSplittingOptions::PreserveLCSSA = false

Definition at line 152 of file BasicBlockUtils.h.

Referenced by setPreserveLCSSA().

◆ PreserveLoopSimplify

bool llvm::CriticalEdgeSplittingOptions::PreserveLoopSimplify = true

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().

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