struct CriticalEdgeSplittingOptions

Declaration

struct CriticalEdgeSplittingOptions { /* full declaration omitted */ };

Description

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

Declared at: llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h:142

Member Variables

public llvm::DominatorTree* DT
public llvm::PostDominatorTree* PDT
public llvm::LoopInfo* LI
public llvm::MemorySSAUpdater* MSSAU
public bool MergeIdenticalEdges = false
public bool KeepOneInputPHIs = false
public bool PreserveLCSSA = false
public bool IgnoreUnreachableDests = false
public bool 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.

Method Overview

Methods

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

Declared at: llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h:156

Parameters

llvm::DominatorTree* DT = nullptr
llvm::LoopInfo* LI = nullptr
llvm::MemorySSAUpdater* MSSAU = nullptr
llvm::PostDominatorTree* PDT = nullptr

llvm::CriticalEdgeSplittingOptions&
setIgnoreUnreachableDests()

Declared at: llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h:177

llvm::CriticalEdgeSplittingOptions&
setKeepOneInputPHIs()

Declared at: llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h:167

llvm::CriticalEdgeSplittingOptions&
setMergeIdenticalEdges()

Declared at: llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h:162

llvm::CriticalEdgeSplittingOptions&
setPreserveLCSSA()

Declared at: llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h:172

llvm::CriticalEdgeSplittingOptions&
unsetPreserveLoopSimplify()

Declared at: llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h:182