GCC Middle and Back End API Reference
|
#include <gimple-range-fold.h>
Public Member Functions | |
fur_source (range_query *q=NULL) | |
range_query * | query () |
class gori_compute * | 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 |
gori_compute * | m_gori |
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_gori, m_query, and NULL.
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(), gori_compute::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(), and gori_compute::refine_using_relation().
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 |
|
inline |
|
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(), ggc_alloc(), gimple_bb(), gimple_range_ssa_p(), gori(), m_query, NULL, range_op_handler::op1_op2_relation(), gimple_range_op_handler::operand1(), gimple_range_op_handler::operand2(), r, register_relation(), SSA_NAME_DEF_STMT, TREE_CODE, TREE_TYPE, and VREL_VARYING.
Referenced by path_range_query::compute_outgoing_relations(), and fold_using_range::range_of_range_op().
|
virtual |
Reimplemented in fur_relation, fur_depend, and jt_fur_source.
|
virtual |
Reimplemented in jt_fur_source, fur_relation, and fur_depend.
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(), and gori().
|
protected |