GCC Middle and Back End API Reference
value-query.h File Reference
#include "value-relation.h"
Include dependency graph for value-query.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

class  range_query
class  global_range_query

Functions

range_queryget_global_range_query ()
ATTRIBUTE_RETURNS_NONNULL range_queryget_range_query (const struct function *fun)
range_queryset_range_query (struct function *fun, range_query *q)
void gimple_range_global (vrange &v, tree name, struct function *f=cfun)

Variables

global_range_query global_ranges

Function Documentation

◆ get_global_range_query()

◆ get_range_query()

ATTRIBUTE_RETURNS_NONNULL range_query * get_range_query ( const struct function * fun)
inline
Returns the currently active range access class.  When there is no active
range class, global ranges are used.  Never returns null.   

References get_range_query(), global_ranges, and function::x_range_query.

Referenced by infer_range_manager::add_range(), alloca_call_type(), array_bounds_checker::array_bounds_checker(), assume_query::calculate_phi(), check_bounds_or_overlap(), check_nul_terminated_array(), determine_block_size(), determine_value_range(), dr_step_indicator(), dump_strlen_info(), tree_switch_conversion::bit_test_cluster::emit(), expand_builtin_strnlen(), expr_not_equal_to(), expr_to_aff_combination(), find_var_cmp_const(), find_what_p_points_to(), fold_using_range::fold_stmt(), fur_source::fur_source(), get_len_nonzero_value(), strlen_pass::get_len_or_size(), get_min_precision(), get_range(), get_range_pos_neg(), get_range_query(), get_range_query(), get_ref_base_and_extent(), get_size_range(), gimple_match_range_of_expr(), gimple_set_modified(), gori_on_edge(), strlen_pass::handle_integral_assign(), infer_loop_bounds_from_signedness(), insert_into_preds_of_block(), ipa_compute_jump_functions_for_edge(), iv_can_overflow_p(), loop_static_stmt_p(), maybe_diag_stxncpy_trunc(), minmax_from_comparison(), near_pow2_divisor_range_p(), nonneg_scaled_offset_p(), number_of_iterations_cltz(), number_of_iterations_cltz_complement(), optimize_range_tests_to_bit_test(), assume_query::process_stmts(), fold_using_range::range_of_ssa_name_with_loop_info(), dom_oracle::recomputed_relation(), record_nonwrapping_iv(), refine_value_range_using_guard(), reset_flow_sensitive_info(), scev_var_range_cant_overflow(), set_range_info(), set_strlen_range(), set_switch_stmt_execution_predicate(), shifted_range_nonzero_p(), simplify_conversion_using_ranges(), simplify_count_zeroes(), simplify_rotate(), simplify_using_initial_conditions(), size_must_be_zero_p(), skip_a_safe_conversion_op(), split_constant_offset(), ssa_name_has_boolean_range(), static_loop_exit(), strlen_pass::strlen_pass(), tree_single_nonnegative_p(), vect_get_range_info(), and vect_recog_divmod_pattern().

◆ gimple_range_global()

◆ set_range_query()

range_query * set_range_query ( struct function * fun,
range_query * q )
Support routines for value queries.
   Copyright (C) 2020-2026 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/>.   

References range_query::active_query_compatible_p(), get_global_range_query(), NULL, set_range_query(), and function::x_range_query.

Referenced by disable_ranger(), enable_ranger(), execute_fast_vrp(), fold_using_range::fold_stmt(), and set_range_query().

Variable Documentation

◆ global_ranges