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.   

References depth, failures, hits, max_depth, misses, rvals, and var_cache.

Referenced by DISABLE_COPY_AND_ASSIGN().

Member Function Documentation

◆ DISABLE_COPY_AND_ASSIGN()

pointer_query::DISABLE_COPY_AND_ASSIGN ( pointer_query )
private

References pointer_query().

◆ dump()

void pointer_query::dump ( FILE * dump_file,
bool contents = false )
Dump statistics and, optionally, cache contents to DUMP_FILE.   

References access_ref::dump(), dump_file, failures, fputc(), hits, i, max_depth, misses, print_generic_expr(), access_ref::ref, ssa_name, and var_cache.

◆ flush_cache()

void pointer_query::flush_cache ( )
Flush the cache if it's nonnull.   

References var_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 compute_objsize(), failures, hits, 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 hits, misses, NULL, access_ref::ref, SSA_NAME_VERSION, and var_cache.

Referenced by get_maxbound(), and handle_ssa_name().

◆ 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 gcc_checking_assert, access_ref::ref, access_ref::sizrng, SSA_NAME_VERSION, and var_cache.

Referenced by compute_objsize_r(), handle_ssa_name(), and access_ref::merge_ref().

Field Documentation

◆ depth

unsigned pointer_query::depth
mutable

◆ failures

unsigned pointer_query::failures
mutable

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

◆ hits

unsigned pointer_query::hits
mutable

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

◆ max_depth

unsigned pointer_query::max_depth
mutable

◆ misses

unsigned pointer_query::misses
mutable

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

◆ rvals

◆ var_cache

cache_type pointer_query::var_cache
private

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