LLVM 20.0.0git
Public Member Functions | Public Attributes | List of all members
llvm::RuntimeCheckingPtrGroup Struct Reference

A grouping of pointers. More...

#include "llvm/Analysis/LoopAccessAnalysis.h"

Public Member Functions

 RuntimeCheckingPtrGroup (unsigned Index, const RuntimePointerChecking &RtCheck)
 Create a new pointer checking group containing a single pointer, with index Index in RtCheck.
 
bool addPointer (unsigned Index, const RuntimePointerChecking &RtCheck)
 Tries to add the pointer recorded in RtCheck at index Index to this pointer checking group.
 
bool addPointer (unsigned Index, const SCEV *Start, const SCEV *End, unsigned AS, bool NeedsFreeze, ScalarEvolution &SE)
 

Public Attributes

const SCEVHigh
 The SCEV expression which represents the upper bound of all the pointers in this group.
 
const SCEVLow
 The SCEV expression which represents the lower bound of all the pointers in this group.
 
SmallVector< unsigned, 2 > Members
 Indices of all the pointers that constitute this grouping.
 
unsigned AddressSpace
 Address space of the involved pointers.
 
bool NeedsFreeze = false
 Whether the pointer needs to be frozen after expansion, e.g.
 

Detailed Description

A grouping of pointers.

A single memcheck is required between two groups.

Definition at line 398 of file LoopAccessAnalysis.h.

Constructor & Destructor Documentation

◆ RuntimeCheckingPtrGroup()

RuntimeCheckingPtrGroup::RuntimeCheckingPtrGroup ( unsigned  Index,
const RuntimePointerChecking RtCheck 
)

Create a new pointer checking group containing a single pointer, with index Index in RtCheck.

Definition at line 183 of file LoopAccessAnalysis.cpp.

References Members, and llvm::SmallVectorTemplateBase< T, bool >::push_back().

Member Function Documentation

◆ addPointer() [1/2]

bool RuntimeCheckingPtrGroup::addPointer ( unsigned  Index,
const RuntimePointerChecking RtCheck 
)

Tries to add the pointer recorded in RtCheck at index Index to this pointer checking group.

We can only add a pointer to a checking group if we will still be able to get the upper and lower bounds of the check. Returns true in case of success, false otherwise.

Definition at line 421 of file LoopAccessAnalysis.cpp.

References addPointer(), and llvm::RuntimePointerChecking::Pointers.

Referenced by addPointer().

◆ addPointer() [2/2]

bool RuntimeCheckingPtrGroup::addPointer ( unsigned  Index,
const SCEV Start,
const SCEV End,
unsigned  AS,
bool  NeedsFreeze,
ScalarEvolution SE 
)

Member Data Documentation

◆ AddressSpace

unsigned llvm::RuntimeCheckingPtrGroup::AddressSpace

Address space of the involved pointers.

Definition at line 422 of file LoopAccessAnalysis.h.

Referenced by expandBounds().

◆ High

const SCEV* llvm::RuntimeCheckingPtrGroup::High

The SCEV expression which represents the upper bound of all the pointers in this group.

Definition at line 415 of file LoopAccessAnalysis.h.

Referenced by addPointer(), and expandBounds().

◆ Low

const SCEV* llvm::RuntimeCheckingPtrGroup::Low

The SCEV expression which represents the lower bound of all the pointers in this group.

Definition at line 418 of file LoopAccessAnalysis.h.

Referenced by addPointer(), and expandBounds().

◆ Members

SmallVector<unsigned, 2> llvm::RuntimeCheckingPtrGroup::Members

Indices of all the pointers that constitute this grouping.

Definition at line 420 of file LoopAccessAnalysis.h.

Referenced by addPointer(), and RuntimeCheckingPtrGroup().

◆ NeedsFreeze

bool llvm::RuntimeCheckingPtrGroup::NeedsFreeze = false

Whether the pointer needs to be frozen after expansion, e.g.

because it may be poison outside the loop.

Definition at line 425 of file LoopAccessAnalysis.h.

Referenced by addPointer(), and expandBounds().


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