GCC Middle and Back End API Reference
|
#include <pointer-query.h>
Data Structures | |
struct | cache_type |
Public Member Functions | |
pointer_query (range_query *=nullptr) | |
const access_ref * | get_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_query * | rvals |
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 |
Queries and caches compute_objsize results.
|
explicit |
Default ctor. Initialize object with pointers to the range_query instance to use or null.
|
private |
Dump statistics and, optionally, cache contents to DUMP_FILE.
References pointer_query::cache_type::access_refs, dump_file, failures, fputc(), ggc_alloc(), hits, i, pointer_query::cache_type::indices, max_depth, misses, print_generic_expr(), ssa_name, and var_cache.
void pointer_query::flush_cache | ( | ) |
Flush the cache if it's nonnull.
References pointer_query::cache_type::access_refs, pointer_query::cache_type::indices, and var_cache.
Referenced by strlen_pass::~strlen_pass().
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.
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().
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.
|
mutable |
Referenced by strlen_pass::before_dom_children(), and compute_objsize().
range_query* pointer_query::rvals |
|
private |
Referenced by dump(), flush_cache(), get_ref(), get_ref(), and put_ref().