LLVM 22.0.0git
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 addInstruction(), I, and LSCEVAddRec.

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::BasicBlock::getTerminator(), I, InsertPt, llvm::isa(), MemI, and Writes.

Referenced by Prefetch().

Member Data Documentation

◆ InsertPt

Instruction* Prefetch::InsertPt = nullptr

The point of insertion for the prefetch instruction.

Definition at line 237 of file LoopDataPrefetch.cpp.

Referenced by addInstruction().

◆ LSCEVAddRec

const SCEVAddRecExpr* Prefetch::LSCEVAddRec

The address formula for this prefetch as returned by ScalarEvolution.

Definition at line 235 of file LoopDataPrefetch.cpp.

Referenced by Prefetch().

◆ MemI

Instruction* Prefetch::MemI = nullptr

The (first seen) prefetched instruction.

Definition at line 241 of file LoopDataPrefetch.cpp.

Referenced by addInstruction().

◆ Writes

bool Prefetch::Writes = false

True if targeting a write memory access.

Definition at line 239 of file LoopDataPrefetch.cpp.

Referenced by addInstruction().


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