LLVM 19.0.0git
Public Member Functions | Friends | List of all members
AllocaSlices::SliceBuilder Class Reference

Builder for the alloca slices. More...

Inheritance diagram for AllocaSlices::SliceBuilder:
Inheritance graph

Public Member Functions

 SliceBuilder (const DataLayout &DL, AllocaInst &AI, AllocaSlices &AS)
- Public Member Functions inherited from llvm::PtrUseVisitor< SliceBuilder >
 PtrUseVisitor (const DataLayout &DL)
PtrInfo visitPtr (Instruction &I)
 Recursively visit the uses of the given pointer.


class PtrUseVisitor< SliceBuilder >
class InstVisitor< SliceBuilder >

Additional Inherited Members

- Protected Member Functions inherited from llvm::PtrUseVisitor< SliceBuilder >
void visitStoreInst (StoreInst &SI)
void visitBitCastInst (BitCastInst &BC)
void visitAddrSpaceCastInst (AddrSpaceCastInst &ASC)
void visitPtrToIntInst (PtrToIntInst &I)
void visitGetElementPtrInst (GetElementPtrInst &GEPI)
void visitDbgInfoIntrinsic (DbgInfoIntrinsic &I)
void visitMemIntrinsic (MemIntrinsic &I)
void visitIntrinsicInst (IntrinsicInst &II)
void visitCallBase (CallBase &CB)
- Protected Member Functions inherited from llvm::InstVisitor< SubClass, RetTy >
template<class Iterator >
void visit (Iterator Start, Iterator End)
void visit (Module &M)
void visit (Function &F)
void visit (BasicBlock &BB)
void visit (Module *M)
void visit (Function *F)
void visit (BasicBlock *BB)
RetTy visit (Instruction *I)
RetTy visit (Instruction &I)
void visitModule (Module &M)
void visitFunction (Function &F)
void visitBasicBlock (BasicBlock &BB)
RetTy visitICmpInst (ICmpInst &I)
RetTy visitFCmpInst (FCmpInst &I)
RetTy visitAllocaInst (AllocaInst &I)
RetTy visitLoadInst (LoadInst &I)
RetTy visitStoreInst (StoreInst &I)
RetTy visitAtomicCmpXchgInst (AtomicCmpXchgInst &I)
RetTy visitAtomicRMWInst (AtomicRMWInst &I)
RetTy visitFenceInst (FenceInst &I)
RetTy visitGetElementPtrInst (GetElementPtrInst &I)
RetTy visitPHINode (PHINode &I)
RetTy visitTruncInst (TruncInst &I)
RetTy visitZExtInst (ZExtInst &I)
RetTy visitSExtInst (SExtInst &I)
RetTy visitFPTruncInst (FPTruncInst &I)
RetTy visitFPExtInst (FPExtInst &I)
RetTy visitFPToUIInst (FPToUIInst &I)
RetTy visitFPToSIInst (FPToSIInst &I)
RetTy visitUIToFPInst (UIToFPInst &I)
RetTy visitSIToFPInst (SIToFPInst &I)
RetTy visitPtrToIntInst (PtrToIntInst &I)
RetTy visitIntToPtrInst (IntToPtrInst &I)
RetTy visitBitCastInst (BitCastInst &I)
RetTy visitAddrSpaceCastInst (AddrSpaceCastInst &I)
RetTy visitSelectInst (SelectInst &I)
RetTy visitVAArgInst (VAArgInst &I)
RetTy visitExtractElementInst (ExtractElementInst &I)
RetTy visitInsertElementInst (InsertElementInst &I)
RetTy visitShuffleVectorInst (ShuffleVectorInst &I)
RetTy visitExtractValueInst (ExtractValueInst &I)
RetTy visitInsertValueInst (InsertValueInst &I)
RetTy visitLandingPadInst (LandingPadInst &I)
RetTy visitFuncletPadInst (FuncletPadInst &I)
RetTy visitCleanupPadInst (CleanupPadInst &I)
RetTy visitCatchPadInst (CatchPadInst &I)
RetTy visitFreezeInst (FreezeInst &I)
RetTy visitDbgDeclareInst (DbgDeclareInst &I)
RetTy visitDbgValueInst (DbgValueInst &I)
RetTy visitDbgVariableIntrinsic (DbgVariableIntrinsic &I)
RetTy visitDbgLabelInst (DbgLabelInst &I)
RetTy visitDbgInfoIntrinsic (DbgInfoIntrinsic &I)
RetTy visitMemSetInst (MemSetInst &I)
RetTy visitMemSetInlineInst (MemSetInlineInst &I)
RetTy visitMemCpyInst (MemCpyInst &I)
RetTy visitMemCpyInlineInst (MemCpyInlineInst &I)
RetTy visitMemMoveInst (MemMoveInst &I)
RetTy visitMemTransferInst (MemTransferInst &I)
RetTy visitMemIntrinsic (MemIntrinsic &I)
RetTy visitVAStartInst (VAStartInst &I)
RetTy visitVAEndInst (VAEndInst &I)
RetTy visitVACopyInst (VACopyInst &I)
RetTy visitIntrinsicInst (IntrinsicInst &I)
RetTy visitCallInst (CallInst &I)
RetTy visitInvokeInst (InvokeInst &I)
RetTy visitCallBrInst (CallBrInst &I)
RetTy visitReturnInst (ReturnInst &I)
RetTy visitBranchInst (BranchInst &I)
RetTy visitSwitchInst (SwitchInst &I)
RetTy visitIndirectBrInst (IndirectBrInst &I)
RetTy visitResumeInst (ResumeInst &I)
RetTy visitUnreachableInst (UnreachableInst &I)
RetTy visitCleanupReturnInst (CleanupReturnInst &I)
RetTy visitCatchReturnInst (CatchReturnInst &I)
RetTy visitCatchSwitchInst (CatchSwitchInst &I)
RetTy visitTerminator (Instruction &I)
RetTy visitCastInst (CastInst &I)
RetTy visitUnaryOperator (UnaryOperator &I)
RetTy visitBinaryOperator (BinaryOperator &I)
RetTy visitCmpInst (CmpInst &I)
RetTy visitUnaryInstruction (UnaryInstruction &I)
RetTy visitCallBase (CallBase &I)
void visitInstruction (Instruction &I)
- Protected Member Functions inherited from llvm::detail::PtrUseVisitorBase
 PtrUseVisitorBase (const DataLayout &DL)
 Note that the constructor is protected because this class must be a base class, we can't create instances directly of this class.
void enqueueUsers (Instruction &I)
 Enqueue the users of this instruction in the visit worklist.
bool adjustOffsetForGEP (GetElementPtrInst &GEPI)
 Walk the operands of a GEP and adjust the offset as appropriate.
- Protected Attributes inherited from llvm::detail::PtrUseVisitorBase
const DataLayoutDL
PtrInfo PI
 The info collected about the pointer being visited thus far.
SmallVector< UseToVisit, 8 > Worklist
 The worklist of to-visit uses.
SmallPtrSet< Use *, 8 > VisitedUses
 A set of visited uses to break cycles in unreachable code.
 The use currently being visited.
bool IsOffsetKnown
 True if we have a known constant offset for the use currently being visited.
APInt Offset
 The constant offset of the use if that is known.

Detailed Description

Builder for the alloca slices.

This class builds a set of alloca slices by recursively visiting the uses of an alloca and making a slice for each load and store at each offset.

Definition at line 1017 of file SROA.cpp.

Constructor & Destructor Documentation

◆ SliceBuilder()

AllocaSlices::SliceBuilder::SliceBuilder ( const DataLayout DL,
AllocaInst AI,
AllocaSlices &  AS 

Definition at line 1033 of file SROA.cpp.

Friends And Related Function Documentation

◆ InstVisitor< SliceBuilder >

friend class InstVisitor< SliceBuilder >

Definition at line 977 of file SROA.cpp.

◆ PtrUseVisitor< SliceBuilder >

friend class PtrUseVisitor< SliceBuilder >

Definition at line 977 of file SROA.cpp.

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