GCC Middle and Back End API Reference
|
#include <gimple-range-fold.h>
Public Member Functions | |
fur_source (range_query *q=NULL) | |
range_query * | query () const |
gori_map * | gori_ssa () const |
class gimple_outgoing_range * | gori () |
virtual bool | get_operand (vrange &r, tree expr) |
virtual bool | get_phi_operand (vrange &r, tree expr, edge e) |
virtual relation_kind | query_relation (tree op1, tree op2) |
virtual void | register_relation (gimple *stmt, relation_kind k, tree op1, tree op2) |
virtual void | register_relation (edge e, relation_kind k, tree op1, tree op2) |
void | register_outgoing_edges (gcond *, irange &lhs_range, edge e0, edge e1) |
Protected Attributes | |
range_query * | m_query |
bool | m_depend_p |
fur_source::fur_source | ( | range_query * | q = NULL | ) |
Code for GIMPLE range related routines. Copyright (C) 2019-2024 Free Software Foundation, Inc. Contributed by Andrew MacLeod <amacleod@redhat.com> and Aldy Hernandez <aldyh@redhat.com>. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>.
References cfun, get_range_query(), m_depend_p, and m_query.
Reimplemented in fur_edge, fur_list, and fur_stmt.
References m_query, r, and range_query::range_of_expr().
Referenced by gori_compute::compute_logical_operands(), gori_compute::compute_operand1_range(), gori_compute::compute_operand2_range(), fold_using_range::condexpr_adjust(), fold_using_range::range_of_address(), fold_using_range::range_of_cond_expr(), fold_using_range::range_of_phi(), fold_using_range::range_of_range_op(), gori_compute::refine_using_relation(), and assume_query::update_parms().
Reimplemented in fur_edge, fur_list, and fur_stmt.
References m_query, r, and range_query::range_on_edge().
Referenced by fold_using_range::range_of_phi().
|
inline |
References range_query::gori(), m_depend_p, m_query, and NULL.
Referenced by assume_query::calculate_op(), fold_using_range::condexpr_adjust(), register_outgoing_edges(), and fold_using_range::relation_fold_and_or().
|
inline |
|
inline |
References m_query.
Referenced by fold_using_range::range_of_phi(), and fold_using_range::range_of_ssa_name_with_loop_info().
|
virtual |
Reimplemented in fur_stmt, and jt_fur_source.
References VREL_VARYING.
Referenced by fold_using_range::range_of_range_op().
References FOR_EACH_GORI_EXPORT_NAME, gcond_edge_range(), gimple_bb(), gimple_range_ssa_p(), gori(), gori_ssa(), irange::intersect(), m_query, NULL, range_op_handler::op1_op2_relation(), gimple_range_op_handler::operand1(), gimple_range_op_handler::operand2(), r, register_relation(), value_range::set_varying(), SSA_NAME_DEF_STMT, TREE_CODE, TREE_TYPE, vrange::undefined_p(), and VREL_VARYING.
Referenced by path_range_query::compute_outgoing_relations(), and fold_using_range::range_of_range_op().
|
virtual |
Reimplemented in fur_depend, fur_relation, and jt_fur_source.
|
virtual |
Reimplemented in fur_depend, fur_relation, and jt_fur_source.
Referenced by fold_using_range::range_of_phi(), fold_using_range::range_of_range_op(), and register_outgoing_edges().
|
protected |
Referenced by fur_depend::fur_depend(), fur_source(), gori(), and gori_ssa().
|
protected |
Referenced by fur_source(), fur_edge::get_operand(), fur_list::get_operand(), get_operand(), fur_stmt::get_operand(), fur_edge::get_phi_operand(), get_phi_operand(), fur_stmt::get_phi_operand(), gori(), gori_ssa(), query(), fur_stmt::query_relation(), jt_fur_source::query_relation(), register_outgoing_edges(), fur_depend::register_relation(), fur_depend::register_relation(), jt_fur_source::register_relation(), and jt_fur_source::register_relation().