1/* Reassociation for trees.
2 Copyright (C) 2020-2023 Free Software Foundation, Inc.
3
4This file is part of GCC.
5
6GCC is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 3, or (at your option)
9any later version.
10
11GCC is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GCC; see the file COPYING3. If not see
18<http://www.gnu.org/licenses/>. */
19
20#ifndef GCC_SSA_REASSOC_H
21#define GCC_SSA_REASSOC_H
22
23/* Operator, rank pair. */
24struct operand_entry
25{
26 unsigned int rank;
27 unsigned int id;
28 tree op;
29 unsigned int count;
30 gimple *stmt_to_insert;
31};
32
33struct range_entry
34{
35 tree exp;
36 tree low;
37 tree high;
38 bool in_p;
39 bool strict_overflow_p;
40 unsigned int idx, next;
41};
42
43void dump_range_entry (FILE *file, struct range_entry *r);
44void debug_range_entry (struct range_entry *r);
45void init_range_entry (struct range_entry *r, tree exp, gimple *stmt);
46bool no_side_effect_bb (basic_block bb);
47
48#endif /* GCC_SSA_REASSOC_H */
49

source code of gcc/tree-ssa-reassoc.h