|
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 |
|
private |
References pointer_query().
Dump statistics and, optionally, cache contents to DUMP_FILE.
References pointer_query::cache_type::access_refs, access_ref::dump(), dump_file, failures, fputc(), hits, i, pointer_query::cache_type::indices, max_depth, misses, print_generic_expr(), access_ref::ref, 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, hits, pointer_query::cache_type::indices, misses, 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, hits, pointer_query::cache_type::indices, misses, NULL, access_ref::ref, SSA_NAME_VERSION, and var_cache.
Referenced by array_bounds_checker::check_mem_ref(), get_maxbound(), and handle_ssa_name().
| 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, pointer_query::cache_type::indices, 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().
|
mutable |
Referenced by strlen_pass::before_dom_children(), compute_objsize(), handle_ssa_name(), and pointer_query().
|
mutable |
Referenced by dump(), get_ref(), and pointer_query().
|
mutable |
Referenced by dump(), get_ref(), get_ref(), and pointer_query().
|
mutable |
Referenced by dump(), handle_ssa_name(), and pointer_query().
|
mutable |
Referenced by dump(), get_ref(), get_ref(), and pointer_query().
| range_query* pointer_query::rvals |
Referenced by compute_objsize(), compute_objsize_r(), strlen_pass::count_nonzero_bytes_addr(), get_range_strlen_dynamic(), array_bounds_checker::get_value_range(), gimple_call_return_array(), handle_array_ref(), strlen_pass::handle_assign(), strlen_pass::handle_builtin_memset(), handle_mem_ref(), handle_printf_call(), handle_ssa_name(), strlen_pass::handle_store(), strlen_pass::maybe_warn_overflow(), and pointer_query().
|
private |
Referenced by dump(), flush_cache(), get_ref(), get_ref(), pointer_query(), and put_ref().