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 "gimple-range.h"
#include "tree-pretty-print.h"
#include "gimple-pretty-print.h"
#include "alloc-pool.h"
#include "dominance.h"
Data Structures | |
class | relation_chain |
Functions | |
void | print_relation (FILE *f, relation_kind rel) |
relation_kind | relation_negate (relation_kind r) |
relation_kind | relation_swap (relation_kind r) |
relation_kind | relation_intersect (relation_kind r1, relation_kind r2) |
relation_kind | relation_union (relation_kind r1, relation_kind r2) |
relation_kind | relation_transitive (relation_kind r1, relation_kind r2) |
void | adjust_equivalence_range (vrange &range) |
Variables | |
static const char *const | kind_string [VREL_LAST] |
static const unsigned char | rr_negate_table [VREL_LAST] |
static const unsigned char | rr_swap_table [VREL_LAST] |
static const unsigned char | rr_intersect_table [VREL_LAST][VREL_LAST] |
static const unsigned char | rr_union_table [VREL_LAST][VREL_LAST] |
static const unsigned char | rr_transitive_table [VREL_LAST][VREL_LAST] |
static const tree_code | relation_to_code [VREL_LAST] |
void adjust_equivalence_range | ( | vrange & | range | ) |
References as_a(), frange::contains_p(), dconst0, dconstm0, is_a< frange >(), vrange::type(), vrange::undefined_p(), vrange::union_(), and zeros.
Referenced by ranger_cache::fill_block_cache().
void print_relation | ( | FILE * | f, |
relation_kind | rel ) |
References kind_string.
Referenced by value_relation::dump(), ranger_cache::fill_block_cache(), and fold_using_range::range_of_range_op().
relation_kind relation_intersect | ( | relation_kind | r1, |
relation_kind | r2 ) |
relation_kind relation_negate | ( | relation_kind | r | ) |
References r, and rr_negate_table.
Referenced by value_relation::negate(), and fold_using_range::relation_fold_and_or().
relation_kind relation_swap | ( | relation_kind | r | ) |
References r, and rr_swap_table.
Referenced by value_relation::apply_transitive(), value_relation::create_trio(), relation_chain_head::find_relation(), dom_oracle::find_relation_block(), value_relation::intersect(), gori_compute::refine_using_relation(), fur_relation::register_relation(), relation_trio::swap_op1_op2(), and value_relation::union_().
relation_kind relation_transitive | ( | relation_kind | r1, |
relation_kind | r2 ) |
References rr_transitive_table.
Referenced by value_relation::apply_transitive().
relation_kind relation_union | ( | relation_kind | r1, |
relation_kind | r2 ) |
References rr_union_table.
Referenced by frelop_early_resolve(), fold_using_range::relation_fold_and_or(), relop_early_resolve(), and value_relation::union_().
|
static |
Header file for the value range relational processing. Copyright (C) 2020-2024 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/>.
Referenced by print_relation().
Referenced by relation_intersect().
|
static |
Referenced by relation_negate().
|
static |
Referenced by relation_swap().
Referenced by relation_transitive().
Referenced by relation_union().