GCC Middle and Back End API Reference
pointer_query Class Reference

#include <pointer-query.h>

Collaboration diagram for pointer_query:

Data Structures

struct  cache_type
 

Public Member Functions

 pointer_query (range_query *=nullptr)
 
const access_refget_ref (tree, int=1) const
 
bool get_ref (tree, gimple *, access_ref *, int=1)
 
void put_ref (tree, const access_ref &, int=1)
 
void flush_cache ()
 
void dump (FILE *, bool=false)
 

Data Fields

range_queryrvals
 
unsigned hits
 
unsigned misses
 
unsigned failures
 
unsigned depth
 
unsigned max_depth
 

Private Member Functions

 DISABLE_COPY_AND_ASSIGN (pointer_query)
 

Private Attributes

cache_type var_cache
 

Detailed Description

Queries and caches compute_objsize results.   

Constructor & Destructor Documentation

◆ pointer_query()

pointer_query::pointer_query ( range_query * qry = nullptr)
explicit
Default ctor.  Initialize object with pointers to the range_query
instance to use or null.   

Member Function Documentation

◆ DISABLE_COPY_AND_ASSIGN()

pointer_query::DISABLE_COPY_AND_ASSIGN ( pointer_query )
private

◆ dump()

void pointer_query::dump ( FILE * dump_file,
bool contents = false )

◆ flush_cache()

void pointer_query::flush_cache ( )

◆ get_ref() [1/2]

bool pointer_query::get_ref ( tree ptr,
gimple * stmt,
access_ref * pref,
int ostype = 1 )
Retrieve the access_ref instance for a variable from the cache if it's
there or compute it and insert it into the cache if it's nonnonull.   

References pointer_query::cache_type::access_refs, compute_objsize(), failures, ggc_alloc(), hits, pointer_query::cache_type::indices, misses, pref, SSA_NAME_VERSION, TREE_CODE, and var_cache.

◆ get_ref() [2/2]

const access_ref * pointer_query::get_ref ( tree ptr,
int ostype = 1 ) const
Return a pointer to the cached access_ref instance for the SSA_NAME
PTR if it's there or null otherwise.   

References pointer_query::cache_type::access_refs, ggc_alloc(), hits, pointer_query::cache_type::indices, misses, NULL, SSA_NAME_VERSION, and var_cache.

Referenced by array_bounds_checker::check_mem_ref(), and get_maxbound().

◆ put_ref()

void pointer_query::put_ref ( tree ptr,
const access_ref & ref,
int ostype = 1 )
Add a copy of the access_ref REF for the SSA_NAME to the cache if it's
nonnull.   

References pointer_query::cache_type::access_refs, gcc_checking_assert, ggc_alloc(), pointer_query::cache_type::indices, access_ref::ref, access_ref::sizrng, SSA_NAME_VERSION, and var_cache.

Field Documentation

◆ depth

unsigned pointer_query::depth
mutable

◆ failures

unsigned pointer_query::failures
mutable

Referenced by dump(), and get_ref().

◆ hits

unsigned pointer_query::hits
mutable

Referenced by dump(), get_ref(), and get_ref().

◆ max_depth

unsigned pointer_query::max_depth
mutable

Referenced by dump().

◆ misses

unsigned pointer_query::misses
mutable

Referenced by dump(), get_ref(), and get_ref().

◆ rvals

◆ var_cache

cache_type pointer_query::var_cache
private

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