Go to the source code of this file.
|
#define | FOR_EACH_EQUIVALENCE(oracle, bb, name, equiv_name) |
|
#define | FOR_EACH_PARTIAL_EQUIV(oracle, bb, name, equiv_name, equiv_rel) |
|
#define | FOR_EACH_PARTIAL_AND_FULL_EQUIV(oracle, bb, name, equiv_name, equiv_rel) |
|
#define | TRIO_VARYING relation_trio () |
|
#define | TRIO_SHIFT 4 |
|
#define | TRIO_MASK 0x000F |
|
|
enum | relation_kind_t {
VREL_VARYING = 0
, VREL_UNDEFINED
, VREL_LT
, VREL_LE
,
VREL_GT
, VREL_GE
, VREL_EQ
, VREL_NE
,
VREL_PE8
, VREL_PE16
, VREL_PE32
, VREL_PE64
,
VREL_LAST
} |
|
◆ FOR_EACH_EQUIVALENCE
#define FOR_EACH_EQUIVALENCE |
( |
| oracle, |
|
|
| bb, |
|
|
| name, |
|
|
| equiv_name ) |
Value:
((equiv_name) = iter.get_name ()); \
Definition value-relation.h:289
void next()
Definition value-relation.cc:1737
◆ FOR_EACH_PARTIAL_AND_FULL_EQUIV
#define FOR_EACH_PARTIAL_AND_FULL_EQUIV |
( |
| oracle, |
|
|
| bb, |
|
|
| name, |
|
|
| equiv_name, |
|
|
| equiv_rel ) |
◆ FOR_EACH_PARTIAL_EQUIV
#define FOR_EACH_PARTIAL_EQUIV |
( |
| oracle, |
|
|
| bb, |
|
|
| name, |
|
|
| equiv_name, |
|
|
| equiv_rel ) |
Value:
((equiv_name) = iter.get_name (&equiv_rel)); \
◆ TRIO_MASK
◆ TRIO_SHIFT
◆ TRIO_VARYING
Referenced by foperator_ltgt::fold_range(), foperator_unordered_equal::fold_range(), foperator_unordered_ge::fold_range(), foperator_unordered_gt::fold_range(), foperator_unordered_le::fold_range(), foperator_unordered_lt::fold_range(), fold_relations(), foperator_div::op1_range(), foperator_div::op2_range(), foperator_ltgt::op2_range(), foperator_ordered::op2_range(), foperator_unordered::op2_range(), foperator_unordered_equal::op2_range(), and range_operator::range_op_table.
◆ relation_kind
Header file for the value range relational processing.
Copyright (C) 2020-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/>.
◆ relation_kind_t
Header file for the value range relational processing.
Copyright (C) 2020-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/>.
Enumerator |
---|
VREL_VARYING | |
VREL_UNDEFINED | |
VREL_LT | |
VREL_LE | |
VREL_GT | |
VREL_GE | |
VREL_EQ | |
VREL_NE | |
VREL_PE8 | |
VREL_PE16 | |
VREL_PE32 | |
VREL_PE64 | |
VREL_LAST | |
◆ adjust_equivalence_range()
void adjust_equivalence_range |
( |
vrange & | range | ) |
|
◆ bits_to_pe()
◆ pe_min()
◆ pe_to_bits()
◆ print_relation()
◆ relation_equiv_p()
◆ relation_intersect()
◆ relation_lt_le_gt_ge_p()
◆ relation_negate()
◆ relation_partial_equiv_p()
◆ relation_swap()
◆ relation_union()
◆ default_relation_oracle