GCC Middle and Back End API Reference
gimple_outgoing_range Class Reference

#include <gimple-range-edge.h>

Inheritance diagram for gimple_outgoing_range:
Collaboration diagram for gimple_outgoing_range:

Public Member Functions

 gimple_outgoing_range (int max_sw_edges=0)
 
virtual ~gimple_outgoing_range ()
 
gimpleedge_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_allocatorm_range_allocator
 

Detailed Description

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/>.

Constructor & Destructor Documentation

◆ gimple_outgoing_range()

gimple_outgoing_range::gimple_outgoing_range ( int max_sw_edges = 0)

◆ ~gimple_outgoing_range()

gimple_outgoing_range::~gimple_outgoing_range ( )
virtual

References m_edge_table, and m_range_allocator.

Member Function Documentation

◆ calc_switch_ranges()

◆ compute_operand_range()

virtual bool gimple_outgoing_range::compute_operand_range ( vrange & ,
gimple * ,
const vrange & ,
tree ,
class fur_source & ,
class value_relation * = NULL )
inlinevirtual

Reimplemented in gori_compute.

References NULL.

Referenced by assume_query::calculate_op(), and fold_using_range::condexpr_adjust().

◆ dump()

virtual void gimple_outgoing_range::dump ( FILE * )
inlinevirtual

Reimplemented in gori_compute.

◆ edge_range_p() [1/2]

◆ edge_range_p() [2/2]

virtual bool gimple_outgoing_range::edge_range_p ( vrange & ,
edge ,
tree ,
range_query &  )
inlinevirtual

Reimplemented in gori_compute.

◆ has_edge_range_p() [1/2]

virtual bool gimple_outgoing_range::has_edge_range_p ( tree ,
basic_block = NULL )
inlinevirtual

Reimplemented in gori_compute.

References NULL.

◆ has_edge_range_p() [2/2]

virtual bool gimple_outgoing_range::has_edge_range_p ( tree ,
edge  )
inlinevirtual

Reimplemented in gori_compute.

◆ set_switch_limit()

void gimple_outgoing_range::set_switch_limit ( int max_sw_edges = INT_MAX)

References m_max_edges.

◆ switch_edge_range()

Field Documentation

◆ m_edge_table

hash_map<edge, vrange_storage *>* gimple_outgoing_range::m_edge_table
private

◆ m_max_edges

int gimple_outgoing_range::m_max_edges
private

◆ m_range_allocator

class vrange_allocator* gimple_outgoing_range::m_range_allocator
private

The documentation for this class was generated from the following files: