LLVM 20.0.0git
Public Member Functions | Public Attributes | List of all members
Prefetch Struct Reference

A record for a potential prefetch made during the initial scan of the loop. More...

Public Member Functions

 Prefetch (const SCEVAddRecExpr *L, Instruction *I)
 Constructor to create a new Prefetch for I.
 
void addInstruction (Instruction *I, DominatorTree *DT=nullptr, int64_t PtrDiff=0)
 Add the instruction.
 

Public Attributes

const SCEVAddRecExprLSCEVAddRec
 The address formula for this prefetch as returned by ScalarEvolution.
 
InstructionInsertPt = nullptr
 The point of insertion for the prefetch instruction.
 
bool Writes = false
 True if targeting a write memory access.
 
InstructionMemI = nullptr
 The (first seen) prefetched instruction.
 

Detailed Description

A record for a potential prefetch made during the initial scan of the loop.

This is used to let a single prefetch target multiple memory accesses.

Definition at line 233 of file LoopDataPrefetch.cpp.

Constructor & Destructor Documentation

◆ Prefetch()

Prefetch::Prefetch ( const SCEVAddRecExpr L,
Instruction I 
)
inline

Constructor to create a new Prefetch for I.

Definition at line 244 of file LoopDataPrefetch.cpp.

References I.

Member Function Documentation

◆ addInstruction()

void Prefetch::addInstruction ( Instruction I,
DominatorTree DT = nullptr,
int64_t  PtrDiff = 0 
)
inline

Add the instruction.

Parameters
Ito this prefetch. If it's not the first one, 'InsertPt' and 'Writes' will be updated as required.
PtrDiffthe known constant address difference to the first added instruction.

Definition at line 252 of file LoopDataPrefetch.cpp.

References llvm::DominatorTree::findNearestCommonDominator(), llvm::ilist_detail::node_parent_access< NodeTy, ParentTy >::getParent(), llvm::BasicBlock::getTerminator(), I, and Writes.

Member Data Documentation

◆ InsertPt

Instruction* Prefetch::InsertPt = nullptr

The point of insertion for the prefetch instruction.

Definition at line 237 of file LoopDataPrefetch.cpp.

◆ LSCEVAddRec

const SCEVAddRecExpr* Prefetch::LSCEVAddRec

The address formula for this prefetch as returned by ScalarEvolution.

Definition at line 235 of file LoopDataPrefetch.cpp.

◆ MemI

Instruction* Prefetch::MemI = nullptr

The (first seen) prefetched instruction.

Definition at line 241 of file LoopDataPrefetch.cpp.

◆ Writes

bool Prefetch::Writes = false

True if targeting a write memory access.

Definition at line 239 of file LoopDataPrefetch.cpp.


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