| GCC Middle and Back End API Reference
    | 
#include <gimple-range-edge.h>


| Public Member Functions | |
| gimple_outgoing_range (int max_sw_edges=0) | |
| virtual | ~gimple_outgoing_range () | 
| gimple * | edge_range_p (irange &r, edge e) | 
| void | set_switch_limit (int max_sw_edges=INT_MAX) | 
| virtual bool | edge_range_p (vrange &, edge, tree, range_query &) | 
| virtual bool | has_edge_range_p (tree, basic_block=NULL) | 
| virtual bool | has_edge_range_p (tree, edge) | 
| virtual void | dump (FILE *) | 
| virtual bool | compute_operand_range (vrange &, gimple *, const vrange &, tree, class fur_source &, class value_relation *=NULL) | 
| Private Member Functions | |
| void | calc_switch_ranges (gswitch *sw) | 
| bool | switch_edge_range (irange &r, gswitch *sw, edge e) | 
| Private Attributes | |
| int | m_max_edges | 
| hash_map< edge, vrange_storage * > * | m_edge_table | 
| class vrange_allocator * | m_range_allocator | 
Gimple range edge header file. Copyright (C) 2020-2025 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/>.
| gimple_outgoing_range::gimple_outgoing_range | ( | int | max_sw_edges = 0 | ) | 
References m_edge_table, m_max_edges, m_range_allocator, and NULL.
Referenced by gori_compute::gori_compute().
| 
 | virtual | 
References m_edge_table, and m_range_allocator.
| 
 | private | 
References CASE_HIGH, CASE_LOW, cfun, currently_expanding_to_rtl, gcc_assert, gcc_checking_assert, gimple_switch_default_edge(), gimple_switch_edge(), gimple_switch_index(), gimple_switch_label(), gimple_switch_num_labels(), irange::intersect(), irange::invert(), m_edge_table, m_range_allocator, NULL, range_cast(), irange::set_undefined(), wi::to_wide(), TREE_TYPE, irange::union_(), and vrange::varying_p().
Referenced by switch_edge_range().
| 
 | inlinevirtual | 
Reimplemented in gori_compute.
References NULL.
Referenced by assume_query::calculate_op(), and fold_using_range::condexpr_adjust().
| 
 | inlinevirtual | 
Reimplemented in gori_compute.
References as_a(), EDGE_COUNT, gcc_checking_assert, gcond_edge_range(), gimple_outgoing_range_stmt_p(), is_a(), m_max_edges, NULL, r, single_succ_p(), and switch_edge_range().
Referenced by gori_compute::edge_range_p(), and gori_on_edge().
| 
 | inlinevirtual | 
Reimplemented in gori_compute.
| 
 | inlinevirtual | 
Reimplemented in gori_compute.
References NULL.
Reimplemented in gori_compute.
| void gimple_outgoing_range::set_switch_limit | ( | int | max_sw_edges = INT_MAX | ) | 
References m_max_edges.
References calc_switch_ranges(), CASE_LOW, cfun, gcc_checking_assert, gimple_switch_index(), gimple_switch_label(), gimple_switch_num_labels(), m_edge_table, m_range_allocator, n_edges_for_fn, r, TREE_TYPE, and TYPE_PRECISION.
Referenced by edge_range_p().
| 
 | private | 
Referenced by calc_switch_ranges(), gimple_outgoing_range(), switch_edge_range(), and ~gimple_outgoing_range().
| 
 | private | 
Referenced by edge_range_p(), gimple_outgoing_range(), and set_switch_limit().
| 
 | private | 
Referenced by calc_switch_ranges(), gimple_outgoing_range(), switch_edge_range(), and ~gimple_outgoing_range().