GCC Middle and Back End API Reference
|
#include <value-relation.h>
Public Member Functions | |
virtual | ~relation_oracle () |
void | register_stmt (gimple *, relation_kind, tree, tree) |
void | register_edge (edge, relation_kind, tree, tree) |
virtual void | register_relation (basic_block, relation_kind, tree, tree)=0 |
virtual relation_kind | query_relation (basic_block, tree, tree)=0 |
relation_kind | validate_relation (relation_kind, tree, tree) |
relation_kind | validate_relation (relation_kind, vrange &, vrange &) |
virtual void | dump (FILE *, basic_block) const =0 |
virtual void | dump (FILE *) const =0 |
void | debug () const |
Protected Member Functions | |
virtual const_bitmap | equiv_set (tree, basic_block)=0 |
virtual const class pe_slice * | partial_equiv_set (tree) |
void | valid_equivs (bitmap b, const_bitmap equivs, basic_block bb) |
virtual relation_kind | query_relation (basic_block, const_bitmap, const_bitmap)=0 |
Friends | |
class | equiv_relation_iterator |
class | path_oracle |
|
inlinevirtual |
void relation_oracle::debug | ( | ) | const |
References dump(), and ggc_alloc().
Implemented in path_oracle, dom_oracle, and equiv_oracle.
|
pure virtual |
Implemented in path_oracle, dom_oracle, and equiv_oracle.
Referenced by debug(), and ranger_cache::dump_bb().
|
protectedpure virtual |
Implemented in equiv_oracle, and path_oracle.
Referenced by equiv_relation_iterator::equiv_relation_iterator(), path_oracle::equiv_set(), and valid_equivs().
Reimplemented in equiv_oracle.
References NULL.
Referenced by equiv_relation_iterator::equiv_relation_iterator(), and equiv_relation_iterator::get_name().
|
protectedpure virtual |
Implemented in dom_oracle, path_oracle, and equiv_oracle.
|
pure virtual |
Implemented in dom_oracle, path_oracle, and equiv_oracle.
Referenced by path_oracle::query_relation(), range_query::query_relation(), range_query::query_relation(), and jt_fur_source::query_relation().
void relation_oracle::register_edge | ( | edge | e, |
relation_kind | k, | ||
tree | op1, | ||
tree | op2 ) |
References value_relation::dump(), dump_file, dump_flags, gcc_checking_assert, ggc_alloc(), register_relation(), single_pred_p(), TDF_DETAILS, TREE_CODE, and VREL_VARYING.
Referenced by fur_depend::register_relation().
|
pure virtual |
Implemented in dom_oracle, equiv_oracle, and path_oracle.
Referenced by path_range_query::maybe_register_phi_relation(), register_edge(), jt_fur_source::register_relation(), jt_fur_source::register_relation(), and register_stmt().
void relation_oracle::register_stmt | ( | gimple * | stmt, |
relation_kind | k, | ||
tree | op1, | ||
tree | op2 ) |
References value_relation::dump(), dump_file, dump_flags, gcc_checking_assert, ggc_alloc(), gimple_bb(), gimple_phi_result(), print_generic_expr(), print_gimple_stmt(), register_relation(), SSA_NAME_DEF_STMT, TDF_DETAILS, TDF_SLIM, TREE_CODE, VREL_EQ, and VREL_VARYING.
Referenced by fur_depend::register_relation().
|
protected |
References b, bitmap_set_bit, equiv_set(), EXECUTE_IF_SET_IN_BITMAP, ggc_alloc(), i, ssa_name, and SSA_NAME_IN_FREE_LIST.
Referenced by equiv_oracle::register_equiv(), path_oracle::register_equiv(), and equiv_oracle::register_equiv().
relation_kind relation_oracle::validate_relation | ( | relation_kind | rel, |
tree | ssa1, | ||
tree | ssa2 ) |
References ggc_alloc(), Value_Range::set_varying(), TREE_TYPE, and validate_relation().
Referenced by validate_relation().
relation_kind relation_oracle::validate_relation | ( | relation_kind | rel, |
vrange & | op1, | ||
vrange & | op2 ) |
|
friend |
|
friend |