1 /* Header file for middle end gimplification.
2 Copyright (C) 2013-2021 Free Software Foundation, Inc.
4 This file is part of GCC.
6 GCC is free software; you can redistribute it and/or modify it under
7 the terms of the GNU General Public License as published by the Free
8 Software Foundation; either version 3, or (at your option) any later
11 GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12 WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
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/>. */
20 #ifndef GCC_GIMPLIFY_ME_H
21 #define GCC_GIMPLIFY_ME_H
23 /* Validation of GIMPLE expressions. Note that these predicates only check
24 * the basic form of the expression, they don't recurse to make sure that
25 * underlying nodes are also of the right form. */
26 typedef bool (*gimple_predicate
)(tree
);
28 extern tree
force_gimple_operand_1 (tree
, gimple_seq
*, gimple_predicate
, tree
);
29 extern tree
force_gimple_operand (tree
, gimple_seq
*, bool, tree
);
30 extern tree
force_gimple_operand_gsi_1 (gimple_stmt_iterator
*, tree
,
31 gimple_predicate
, tree
,
32 bool, enum gsi_iterator_update
);
33 extern tree
force_gimple_operand_gsi (gimple_stmt_iterator
*, tree
, bool, tree
,
34 bool, enum gsi_iterator_update
);
35 extern void gimple_regimplify_operands (gimple
*, gimple_stmt_iterator
*);
37 #endif /* GCC_GIMPLIFY_ME_H */