GCC Middle and Back End API Reference
|
#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "backend.h"
#include "tree.h"
#include "gimple.h"
#include "ssa.h"
#include "gimple-pretty-print.h"
#include "gimple-range.h"
Data Structures | |
class | gori_stmt_info |
Functions | |
static bool | is_gimple_logical_p (const gimple *gs) |
DEBUG_FUNCTION void | debug (gori_map &g) |
static bool | range_is_either_true_or_false (const irange &r) |
static void | gori_calc_operands (vrange &lhs, gimple *stmt, ssa_cache &r, range_query *q) |
bool | gori_on_edge (ssa_cache &r, edge e, range_query *q) |
bool | gori_name_helper (vrange &r, tree name, vrange &lhs, gimple *stmt, range_query *q) |
bool | gori_name_on_edge (vrange &r, tree name, edge e, range_query *q) |
DEBUG_FUNCTION void debug | ( | gori_map & | g | ) |
References g.
|
static |
References gimple_range_op_handler::lhs(), r, si, and gimple_range_op_handler::stmt().
Referenced by gori_on_edge().
References gimple_range_op_handler::calc_op1(), if(), gimple_range_op_handler::lhs(), r, si, and gimple_range_op_handler::stmt().
Referenced by gori_name_on_edge().
bool gori_name_on_edge | ( | vrange & | r, |
tree | name, | ||
edge | e, | ||
range_query * | q ) |
References gcond_edge_range(), gimple_outgoing_range_stmt_p(), gori_name_helper(), is_a(), gimple_range_op_handler::lhs(), r, and gimple_range_op_handler::stmt().
Referenced by dom_ranger::range_on_edge(), and remove_unreachable::remove().
bool gori_on_edge | ( | ssa_cache & | r, |
edge | e, | ||
range_query * | q ) |
References cfun, gimple_outgoing_range::edge_range_p(), get_range_query(), range_query::gori(), gori_calc_operands(), gimple_range_op_handler::lhs(), r, and gimple_range_op_handler::stmt().
Referenced by dom_ranger::pre_bb().
Gimple range GORI functions. Copyright (C) 2017-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 boolean_type_node, gimple_assign_rhs1(), gimple_expr_code(), is_gimple_assign(), TREE_TYPE, and types_compatible_p().
Referenced by gori_compute::compute_operand_range(), and gori_stmt_info::gori_stmt_info().
References boolean_type_node, gcc_checking_assert, r, range_compatible_p(), TYPE_PRECISION, and wi::zero().
Referenced by gori_compute::logical_combine().