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
- public FlattenInfo(llvm::Loop * OL, llvm::Loop * IL)
- public bool checkInnerInductionPhiUsers(SmallPtrSet<llvm::Value *, 4> & ValidOuterPHIUses)
- public bool checkOuterInductionPhiUsers(SmallPtrSet<llvm::Value *, 4> & ValidOuterPHIUses)
- public bool isInnerLoopIncrement(llvm::User * U)
- public bool isInnerLoopTest(llvm::User * U)
- public bool isNarrowInductionPhi(llvm::PHINode * Phi)
- public bool isOuterLoopIncrement(llvm::User * U)
- public bool matchLinearIVUser(llvm::User * U, llvm::Value * InnerTripCount, SmallPtrSet<llvm::Value *, 4> & ValidOuterPHIUses)
Methods
¶FlattenInfo(llvm::Loop* OL, llvm::Loop* IL)
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)
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)
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)
bool isInnerLoopIncrement(llvm::User* U)
Declared at: llvm/lib/Transforms/Scalar/LoopFlatten.cpp:153
Parameters
- llvm::User* U
¶bool isInnerLoopTest(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)
bool isNarrowInductionPhi(llvm::PHINode* Phi)
Declared at: llvm/lib/Transforms/Scalar/LoopFlatten.cpp:147
Parameters
- llvm::PHINode* Phi
¶bool isOuterLoopIncrement(llvm::User* U)
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)
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