GCC Middle and Back End API Reference
|
#include <gimple-range-infer.h>
Public Member Functions | |
gimple_infer_range (gimple *s, range_query *q=NULL, bool use_rangeops=false) | |
gimple_infer_range (tree name, vrange &r) | |
unsigned | num () const |
tree | name (unsigned index) const |
const vrange & | range (unsigned index) const |
Private Member Functions | |
void | add_range (tree name, vrange &range) |
void | add_nonzero (tree name) |
void | check_assume_func (gcall *call) |
void | bump_index () |
Private Attributes | |
unsigned | num_args |
tree | m_names [size_limit] |
value_range | m_ranges [size_limit] |
Static Private Attributes | |
static const int | size_limit = 10 |
Friends | |
class | non_null_wrapper |
Header file for gimple range inference. Copyright (C) 2022-2025 Free Software Foundation, Inc. Contributed by 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/>.
gimple_infer_range::gimple_infer_range | ( | gimple * | s, |
range_query * | q = NULL, | ||
bool | use_rangeops = false ) |
References add_nonzero(), add_range(), as_a(), bitmap_bit_p, bitmap_empty_p(), BITMAP_FREE, check_assume_func(), gcc_checking_assert, get_global_range_query(), get_nonnull_args(), gimple_call_arg(), gimple_call_fntype(), gimple_call_internal_fn(), gimple_call_internal_p(), gimple_call_num_args(), gimple_clobber_p(), gimple_range_ssa_p(), i, integer_nonzerop(), integer_zerop(), INTEGRAL_TYPE_P, is_a(), lookup_attribute(), non_null_loadstore(), NULL, num_args, op2_range(), gimple_range_op_handler::operand1(), gimple_range_op_handler::operand2(), POINTER_TYPE_P, TREE_CHAIN, TREE_INT_CST_LOW, TREE_TYPE, TREE_VALUE, TYPE_ATTRIBUTES, value_range::varying_p(), and walk_stmt_load_store_ops().
References add_range(), name(), num_args, and r.
|
private |
References add_range(), gimple_range_ssa_p(), name(), prange::set_nonzero(), and TREE_TYPE.
Referenced by non_null_wrapper::add_nonzero(), and gimple_infer_range().
References m_names, m_ranges, name(), num_args, range(), size_limit, and vrange::varying_p().
Referenced by add_nonzero(), non_null_wrapper::add_range(), check_assume_func(), gimple_infer_range(), and gimple_infer_range().
|
inlineprivate |
References num_args, and size_limit.
|
private |
References add_range(), DECL_ARGUMENTS, DECL_CHAIN, DECL_STRUCT_FUNCTION, value_range::dump(), dump_file, fputc(), gimple_call_arg(), gimple_call_num_args(), gimple_range_global(), gimple_range_ssa_p(), i, print_generic_expr(), ssa_default_def(), value_range::supports_type_p(), TDF_SLIM, TREE_OPERAND, TREE_TYPE, and value_range::varying_p().
Referenced by gimple_infer_range().
|
inline |
References gcc_checking_assert, m_names, and num_args.
Referenced by add_nonzero(), add_range(), infer_range_manager::add_ranges(), ranger_cache::apply_inferred_ranges(), gimple_infer_range(), and infer_range_manager::register_all_uses().
|
inline |
References num_args.
Referenced by infer_range_manager::add_ranges(), ranger_cache::apply_inferred_ranges(), and infer_range_manager::register_all_uses().
|
inline |
References gcc_checking_assert, m_ranges, and num_args.
Referenced by add_range(), infer_range_manager::add_ranges(), ranger_cache::apply_inferred_ranges(), and infer_range_manager::register_all_uses().
|
friend |
|
private |
Referenced by add_range(), and name().
|
private |
Referenced by add_range(), and range().
|
private |
Referenced by add_range(), bump_index(), gimple_infer_range(), gimple_infer_range(), name(), num(), and range().
|
staticprivate |
Referenced by add_range(), and bump_index().