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

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.

Referenced by 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.

◆ 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: