struct RuntimeCheckingPtrGroup

Declaration

struct RuntimeCheckingPtrGroup { /* full declaration omitted */ };

Description

A grouping of pointers. A single memcheck is required between two groups.

Declared at: llvm/include/llvm/Analysis/LoopAccessAnalysis.h:336

Member Variables

public const llvm::SCEV* High
The SCEV expression which represents the upper bound of all the pointers in this group.
public const llvm::SCEV* Low
The SCEV expression which represents the lower bound of all the pointers in this group.
public SmallVector<unsigned int, 2> Members
Indices of all the pointers that constitute this grouping.
public unsigned int AddressSpace
Address space of the involved pointers.
public bool NeedsFreeze = false
Whether the pointer needs to be frozen after expansion, e.g. because it may be poison outside the loop.

Method Overview

  • public RuntimeCheckingPtrGroup(unsigned int Index, llvm::RuntimePointerChecking & RtCheck)
  • public bool addPointer(unsigned int Index, llvm::RuntimePointerChecking & RtCheck)
  • public bool addPointer(unsigned int Index, const llvm::SCEV * Start, const llvm::SCEV * End, unsigned int AS, bool NeedsFreeze, llvm::ScalarEvolution & SE)

Methods

RuntimeCheckingPtrGroup(
    unsigned int Index,
    llvm::RuntimePointerChecking& RtCheck)

Description

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

Declared at: llvm/include/llvm/Analysis/LoopAccessAnalysis.h:339

Parameters

unsigned int Index
llvm::RuntimePointerChecking& RtCheck

bool addPointer(
    unsigned int Index,
    llvm::RuntimePointerChecking& RtCheck)

Description

Tries to add the pointer recorded in RtCheck at index\p 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.

Declared at: llvm/include/llvm/Analysis/LoopAccessAnalysis.h:346

Parameters

unsigned int Index
llvm::RuntimePointerChecking& RtCheck

bool addPointer(unsigned int Index,
                const llvm::SCEV* Start,
                const llvm::SCEV* End,
                unsigned int AS,
                bool NeedsFreeze,
                llvm::ScalarEvolution& SE)

Declared at: llvm/include/llvm/Analysis/LoopAccessAnalysis.h:347

Parameters

unsigned int Index
const llvm::SCEV* Start
const llvm::SCEV* End
unsigned int AS
bool NeedsFreeze
llvm::ScalarEvolution& SE