class AllocaSliceRewriter
Declaration
class AllocaSliceRewriter : public InstVisitor { /* full declaration omitted */ };
Description
Visitor to rewrite instructions using p particular slice of an alloca to use a new alloca. Also implements the rewriting to vector-based accesses when the partition passes the isVectorPromotionViable predicate. Most of the rewriting logic lives here.
Declared at: llvm/lib/Transforms/Scalar/SROA.cpp:2260
Inherits from: InstVisitor
Method Overview
- public AllocaSliceRewriter(const llvm::DataLayout & DL, llvm::sroa::AllocaSlices & AS, llvm::SROA & Pass, llvm::AllocaInst & OldAI, llvm::AllocaInst & NewAI, uint64_t NewAllocaBeginOffset, uint64_t NewAllocaEndOffset, bool IsIntegerPromotable, llvm::VectorType * PromotableVecTy, SmallSetVector<llvm::PHINode *, 8> & PHIUsers, SmallSetVector<llvm::SelectInst *, 8> & SelectUsers)
- public bool visit(AllocaSlices::const_iterator I)
Methods
¶AllocaSliceRewriter(
const llvm::DataLayout& DL,
llvm::sroa::AllocaSlices& AS,
llvm::SROA& Pass,
llvm::AllocaInst& OldAI,
llvm::AllocaInst& NewAI,
uint64_t NewAllocaBeginOffset,
uint64_t NewAllocaEndOffset,
bool IsIntegerPromotable,
llvm::VectorType* PromotableVecTy,
SmallSetVector<llvm::PHINode*, 8>& PHIUsers,
SmallSetVector<llvm::SelectInst*, 8>&
SelectUsers)
AllocaSliceRewriter(
const llvm::DataLayout& DL,
llvm::sroa::AllocaSlices& AS,
llvm::SROA& Pass,
llvm::AllocaInst& OldAI,
llvm::AllocaInst& NewAI,
uint64_t NewAllocaBeginOffset,
uint64_t NewAllocaEndOffset,
bool IsIntegerPromotable,
llvm::VectorType* PromotableVecTy,
SmallSetVector<llvm::PHINode*, 8>& PHIUsers,
SmallSetVector<llvm::SelectInst*, 8>&
SelectUsers)
Declared at: llvm/lib/Transforms/Scalar/SROA.cpp:2317
Parameters
- const llvm::DataLayout& DL
- llvm::sroa::AllocaSlices& AS
- llvm::SROA& Pass
- llvm::AllocaInst& OldAI
- llvm::AllocaInst& NewAI
- uint64_t NewAllocaBeginOffset
- uint64_t NewAllocaEndOffset
- bool IsIntegerPromotable
- llvm::VectorType* PromotableVecTy
- SmallSetVector<llvm::PHINode*, 8>& PHIUsers
- SmallSetVector<llvm::SelectInst*, 8>& SelectUsers
¶bool visit(AllocaSlices::const_iterator I)
bool visit(AllocaSlices::const_iterator I)
Declared at: llvm/lib/Transforms/Scalar/SROA.cpp:2346
Parameters
- AllocaSlices::const_iterator I