GCC Middle and Back End API Reference
|
#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "backend.h"
#include "tree.h"
#include "gimple.h"
#include "ssa.h"
#include "tree-pretty-print.h"
#include "value-range-pretty-print.h"
#include "fold-const.h"
#include "gimple-range.h"
Namespaces | |
namespace | inchash |
Macros | |
#define | DEFINE_INT_RANGE_INSTANCE(N) |
Functions | |
static irange_bitmask | get_bitmask_from_range (tree type, const wide_int &min, const wide_int &max) |
DEBUG_FUNCTION void | debug (const value_range &r) |
DEBUG_FUNCTION void | debug (const irange_bitmask &bm) |
void | inchash::add_vrange (const vrange &v, inchash::hash &hstate, unsigned int) |
static value_range_kind | get_legacy_range (const irange &r, tree &min, tree &max) |
static value_range_kind | get_legacy_range (const prange &r, tree &min, tree &max) |
value_range_kind | get_legacy_range (const vrange &v, tree &min, tree &max) |
static wide_int | subtract_one (const wide_int &x, tree type, wi::overflow_type &overflow) |
static wide_int | add_one (const wide_int &x, tree type, wi::overflow_type &overflow) |
void | dump_value_range (FILE *file, const vrange *vr) |
DEBUG_FUNCTION void | debug (const vrange *vr) |
DEBUG_FUNCTION void | debug (const vrange &vr) |
bool | vrp_operand_equal_p (const_tree val1, const_tree val2) |
#define DEFINE_INT_RANGE_INSTANCE | ( | N | ) |
|
inlinestatic |
DEBUG_FUNCTION void debug | ( | const irange_bitmask & | bm | ) |
References irange_bitmask::dump().
DEBUG_FUNCTION void debug | ( | const value_range & | r | ) |
References r.
DEBUG_FUNCTION void debug | ( | const vrange & | vr | ) |
References debug.
DEBUG_FUNCTION void debug | ( | const vrange * | vr | ) |
References dump_value_range().
void dump_value_range | ( | FILE * | file, |
const vrange * | vr ) |
References vrange::dump().
Referenced by debug().
|
static |
Support routines for value ranges. Copyright (C) 2019-2024 Free Software Foundation, Inc. Major hacks 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 wi::clz(), wi::mask(), TYPE_PRECISION, and wi::zero().
Referenced by irange::get_bitmask(), prange::intersect(), and prange::set().
|
static |
References irange::invert(), irange::lower_bound(), wi::max_value(), wi::min_value(), NULL_TREE, r, TYPE_PRECISION, TYPE_SIGN, irange::upper_bound(), VR_ANTI_RANGE, VR_RANGE, VR_UNDEFINED, VR_VARYING, and wide_int_to_tree().
Referenced by array_bounds_checker::check_array_ref(), check_out_of_bounds_and_warn(), determine_block_size(), find_case_label_ranges(), get_legacy_range(), get_range(), get_size_range(), maybe_diag_stxncpy_trunc(), set_switch_stmt_execution_predicate(), simplify_using_ranges::simplify_switch_using_ranges(), split_constant_offset(), and vect_get_range_info().
|
static |
References build_zero_cst(), NULL_TREE, r, VR_ANTI_RANGE, VR_RANGE, VR_UNDEFINED, and VR_VARYING.
value_range_kind get_legacy_range | ( | const vrange & | v, |
tree & | min, | ||
tree & | max ) |
References as_a(), get_legacy_range(), and is_a< irange >().
|
inlinestatic |
bool vrp_operand_equal_p | ( | const_tree | val1, |
const_tree | val2 ) |
Return true, if VAL1 and VAL2 are equal values for VRP purposes.
References operand_equal_p().
Referenced by ipa_predicate::add_clause(), add_condition(), adjust_pointer_diff_expr(), and expr_eval_ops_equal_p().