GCC Middle and Back End API Reference
ssa_lazy_cache Class Reference

#include <gimple-range-cache.h>

Inheritance diagram for ssa_lazy_cache:
Collaboration diagram for ssa_lazy_cache:

Public Member Functions

 ssa_lazy_cache ()
 
 ~ssa_lazy_cache ()
 
bool empty_p () const
 
virtual bool has_range (tree name) const
 
virtual bool set_range (tree name, const vrange &r)
 
virtual bool merge_range (tree name, const vrange &r)
 
virtual bool get_range (vrange &r, tree name) const
 
virtual void clear_range (tree name)
 
virtual void clear ()
 
void dump (FILE *f=stderr)
 
virtual bool range_of_expr (vrange &r, tree expr, gimple *stmt=NULL)
 
virtual tree value_of_expr (tree expr, gimple *=NULL)
 
virtual tree value_on_edge (edge, tree expr)
 
virtual tree value_of_stmt (gimple *, tree name=NULL)
 
virtual tree value_on_entry (basic_block, tree expr)
 
virtual tree value_on_exit (basic_block, tree expr)
 
virtual bool range_on_edge (vrange &r, edge, tree expr)
 
virtual bool range_of_stmt (vrange &r, gimple *, tree name=NULL)
 
virtual bool range_on_entry (vrange &r, basic_block bb, tree expr)
 
virtual bool range_on_exit (vrange &r, basic_block bb, tree expr)
 
relation_kind query_relation (gimple *s, tree ssa1, tree ssa2, bool get_range=true)
 
relation_kind query_relation (edge e, tree ssa1, tree ssa2, bool get_range=true)
 
relation_oracleoracle () const
 

Protected Member Functions

bool get_tree_range (vrange &v, tree expr, gimple *stmt, basic_block bbentry=NULL, basic_block bbexit=NULL)
 
bool invoke_range_of_expr (vrange &v, tree expr, gimple *stmt, basic_block bbentry, basic_block bbexit)
 
bool get_arith_expr_range (vrange &r, tree expr, gimple *stmt)
 

Protected Attributes

bitmap active_p
 
vec< vrange_storage * > m_tab
 
vrange_allocatorm_range_allocator
 
relation_oraclem_oracle
 

Constructor & Destructor Documentation

◆ ssa_lazy_cache()

ssa_lazy_cache::ssa_lazy_cache ( )
inline

References active_p, BITMAP_ALLOC, and NULL.

◆ ~ssa_lazy_cache()

ssa_lazy_cache::~ssa_lazy_cache ( )
inline

References active_p, and BITMAP_FREE.

Member Function Documentation

◆ clear()

void ssa_lazy_cache::clear ( )
virtual

Reimplemented from ssa_cache.

References active_p, and bitmap_clear().

Referenced by path_range_query::reset_path().

◆ clear_range()

void ssa_lazy_cache::clear_range ( tree name)
virtual

◆ dump()

◆ empty_p()

bool ssa_lazy_cache::empty_p ( ) const
inline

References active_p, and bitmap_empty_p().

◆ get_arith_expr_range()

bool range_query::get_arith_expr_range ( vrange & r,
tree expr,
gimple * stmt )
protectedinherited

◆ get_range()

◆ get_tree_range()

◆ has_range()

bool ssa_lazy_cache::has_range ( tree name) const
virtual

Reimplemented from ssa_cache.

References active_p, bitmap_bit_p, and SSA_NAME_VERSION.

Referenced by dom_ranger::edge_range().

◆ invoke_range_of_expr()

bool range_query::invoke_range_of_expr ( vrange & v,
tree expr,
gimple * stmt,
basic_block bbentry,
basic_block bbexit )
protectedinherited

◆ merge_range()

◆ oracle()

◆ query_relation() [1/2]

◆ query_relation() [2/2]

◆ range_of_expr()

◆ range_of_stmt()

bool range_query::range_of_stmt ( vrange & r,
gimple * stmt,
tree name = NULL )
virtualinherited

◆ range_on_edge()

bool range_query::range_on_edge ( vrange & r,
edge ,
tree expr )
virtualinherited
Support routines for value queries.
   Copyright (C) 2020-2024 Free Software Foundation, Inc.
   Contributed by Aldy Hernandez <aldyh@redhat.com> and
   Andrew MacLeod <amacleod@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/>.   

Reimplemented in ranger_cache, dom_ranger, and gimple_ranger.

References r, and range_query::range_of_expr().

Referenced by fur_edge::get_operand(), fur_source::get_phi_operand(), fur_edge::get_phi_operand(), phi_analyzer::process_phi(), range_query::query_relation(), and range_query::value_on_edge().

◆ range_on_entry()

bool range_query::range_on_entry ( vrange & r,
basic_block bb,
tree expr )
virtualinherited

◆ range_on_exit()

bool range_query::range_on_exit ( vrange & r,
basic_block bb,
tree expr )
virtualinherited

◆ set_range()

◆ value_of_expr()

tree range_query::value_of_expr ( tree expr,
gimple * stmt = NULL )
virtualinherited

◆ value_of_stmt()

◆ value_on_edge()

◆ value_on_entry()

tree range_query::value_on_entry ( basic_block bb,
tree expr )
virtualinherited

◆ value_on_exit()

tree range_query::value_on_exit ( basic_block bb,
tree expr )
virtualinherited

Field Documentation

◆ active_p

◆ m_oracle

◆ m_range_allocator

◆ m_tab


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