LLVM  12.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"

Collaboration diagram for llvm::RuntimeCheckingPtrGroup:
Collaboration graph
[legend]

Public Member Functions

 RuntimeCheckingPtrGroup (unsigned Index, RuntimePointerChecking &RtCheck)
 Create a new pointer checking group containing a single pointer, with index Index in RtCheck. More...
 
bool addPointer (unsigned Index)
 Tries to add the pointer recorded in RtCheck at index Index to this pointer checking group. More...
 

Public Attributes

RuntimePointerCheckingRtCheck
 Constitutes the context of this pointer checking group. More...
 
const SCEVHigh
 The SCEV expression which represents the upper bound of all the pointers in this group. More...
 
const SCEVLow
 The SCEV expression which represents the lower bound of all the pointers in this group. More...
 
SmallVector< unsigned, 2 > Members
 Indices of all the pointers that constitute this grouping. More...
 

Detailed Description

A grouping of pointers.

A single memcheck is required between two groups.

Definition at line 330 of file LoopAccessAnalysis.h.

Constructor & Destructor Documentation

◆ RuntimeCheckingPtrGroup()

RuntimeCheckingPtrGroup::RuntimeCheckingPtrGroup ( unsigned  Index,
RuntimePointerChecking RtCheck 
)

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

Definition at line 175 of file LoopAccessAnalysis.cpp.

Member Function Documentation

◆ addPointer()

bool RuntimeCheckingPtrGroup::addPointer ( unsigned  Index)

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 285 of file LoopAccessAnalysis.cpp.

Member Data Documentation

◆ High

const SCEV* llvm::RuntimeCheckingPtrGroup::High

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

Definition at line 348 of file LoopAccessAnalysis.h.

◆ Low

const SCEV* llvm::RuntimeCheckingPtrGroup::Low

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

Definition at line 351 of file LoopAccessAnalysis.h.

◆ Members

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

Indices of all the pointers that constitute this grouping.

Definition at line 353 of file LoopAccessAnalysis.h.

Referenced by expandBounds(), and llvm::RuntimePointerChecking::needsChecking().

◆ RtCheck

RuntimePointerChecking& llvm::RuntimeCheckingPtrGroup::RtCheck

Constitutes the context of this pointer checking group.

For each pointer that is a member of this group we will retain the index at which it appears in RtCheck.

Definition at line 345 of file LoopAccessAnalysis.h.

Referenced by expandBounds(), isNoWrap(), and llvm::RuntimePointerChecking::print().


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