LLVM  6.0.0svn
Public Member Functions | Public Attributes | List of all members
llvm::RuntimePointerChecking::CheckingPtrGroup Struct Reference

A grouping of pointers. More...

#include "llvm/Analysis/LoopAccessAnalysis.h"

Collaboration diagram for llvm::RuntimePointerChecking::CheckingPtrGroup:
Collaboration graph
[legend]

Public Member Functions

 CheckingPtrGroup (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 363 of file LoopAccessAnalysis.h.

Constructor & Destructor Documentation

◆ CheckingPtrGroup()

llvm::RuntimePointerChecking::CheckingPtrGroup::CheckingPtrGroup ( unsigned  Index,
RuntimePointerChecking RtCheck 
)
inline

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

Definition at line 366 of file LoopAccessAnalysis.h.

Member Function Documentation

◆ addPointer()

bool RuntimePointerChecking::CheckingPtrGroup::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 280 of file LoopAccessAnalysis.cpp.

References llvm::SmallVectorTemplateCommon< T >::begin(), llvm::SmallSet< T, N, C >::count(), llvm::SmallVectorTemplateCommon< T >::end(), llvm::WebAssembly::End, llvm::EquivalenceClasses< ElemTy >::findValue(), llvm::EquivalenceClasses< ElemTy >::getLeaderValue(), getMinFromExprs(), High, I, llvm::SmallSet< T, N, C >::insert(), llvm::EquivalenceClasses< ElemTy >::member_begin(), llvm::EquivalenceClasses< ElemTy >::member_end(), MemoryCheckMergeThreshold, and MI.

Member Data Documentation

◆ High

const SCEV* llvm::RuntimePointerChecking::CheckingPtrGroup::High

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

Definition at line 385 of file LoopAccessAnalysis.h.

Referenced by expandBounds().

◆ Low

const SCEV* llvm::RuntimePointerChecking::CheckingPtrGroup::Low

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

Definition at line 388 of file LoopAccessAnalysis.h.

Referenced by expandBounds().

◆ Members

SmallVector<unsigned, 2> llvm::RuntimePointerChecking::CheckingPtrGroup::Members

Indices of all the pointers that constitute this grouping.

Definition at line 390 of file LoopAccessAnalysis.h.

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

◆ RtCheck

RuntimePointerChecking& llvm::RuntimePointerChecking::CheckingPtrGroup::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 382 of file LoopAccessAnalysis.h.


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