1 /* Reassociation for trees. 2 Copyright (C) 2020-2021 Free Software Foundation, Inc. 3 4 This file is part of GCC. 5 6 GCC is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 3, or (at your option) 9 any later version. 10 11 GCC is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along 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. */ 24 struct 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 33 struct 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 43 void dump_range_entry (FILE *file, struct range_entry *r); 44 void debug_range_entry (struct range_entry *r); 45 void init_range_entry (struct range_entry *r, tree exp, gimple *stmt); 46 bool no_side_effect_bb (basic_block bb); 47 48 #endif /* GCC_SSA_REASSOC_H */ 49