struct FlattenInfo

Declaration

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

Declared at: llvm/lib/Transforms/Scalar/LoopFlatten.cpp:110

Member Variables

public llvm::Loop* OuterLoop = nullptr
public llvm::Loop* InnerLoop = nullptr
public llvm::PHINode* InnerInductionPHI = nullptr
public llvm::PHINode* OuterInductionPHI = nullptr
public llvm::Value* InnerTripCount = nullptr
public llvm::Value* OuterTripCount = nullptr
public SmallPtrSet<llvm::Value*, 4> LinearIVUses
public llvm::BinaryOperator* InnerIncrement = nullptr
public llvm::BinaryOperator* OuterIncrement = nullptr
public llvm::BranchInst* InnerBranch = nullptr
public llvm::BranchInst* OuterBranch = nullptr
public SmallPtrSet<llvm::PHINode*, 4> InnerPHIsToTransform
public bool Widened = false
public llvm::PHINode* NarrowInnerInductionPHI = nullptr
public llvm::PHINode* NarrowOuterInductionPHI = nullptr

Method Overview

Methods

FlattenInfo(llvm::Loop* OL, llvm::Loop* IL)

Declared at: llvm/lib/Transforms/Scalar/LoopFlatten.cpp:145

Parameters

llvm::Loop* OL
llvm::Loop* IL

bool checkInnerInductionPhiUsers(
    SmallPtrSet<llvm::Value*, 4>&
        ValidOuterPHIUses)

Declared at: llvm/lib/Transforms/Scalar/LoopFlatten.cpp:236

Parameters

SmallPtrSet<llvm::Value*, 4>& ValidOuterPHIUses

bool checkOuterInductionPhiUsers(
    SmallPtrSet<llvm::Value*, 4>&
        ValidOuterPHIUses)

Declared at: llvm/lib/Transforms/Scalar/LoopFlatten.cpp:163

Parameters

SmallPtrSet<llvm::Value*, 4>& ValidOuterPHIUses

bool isInnerLoopIncrement(llvm::User* U)

Declared at: llvm/lib/Transforms/Scalar/LoopFlatten.cpp:153

Parameters

llvm::User* U

bool isInnerLoopTest(llvm::User* U)

Declared at: llvm/lib/Transforms/Scalar/LoopFlatten.cpp:159

Parameters

llvm::User* U

bool isNarrowInductionPhi(llvm::PHINode* Phi)

Declared at: llvm/lib/Transforms/Scalar/LoopFlatten.cpp:147

Parameters

llvm::PHINode* Phi

bool isOuterLoopIncrement(llvm::User* U)

Declared at: llvm/lib/Transforms/Scalar/LoopFlatten.cpp:156

Parameters

llvm::User* U

bool matchLinearIVUser(
    llvm::User* U,
    llvm::Value* InnerTripCount,
    SmallPtrSet<llvm::Value*, 4>&
        ValidOuterPHIUses)

Declared at: llvm/lib/Transforms/Scalar/LoopFlatten.cpp:192

Parameters

llvm::User* U
llvm::Value* InnerTripCount
SmallPtrSet<llvm::Value*, 4>& ValidOuterPHIUses