Home | History | Annotate | Line # | Download | only in gcc
      1 /* Header file for middle end gimplification.
      2    Copyright (C) 2013-2022 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 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
      9 version.
     10 
     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
     14  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_GIMPLIFY_ME_H
     21 #define GCC_GIMPLIFY_ME_H
     22 
     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);
     27 
     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 *);
     36 
     37 #endif /* GCC_GIMPLIFY_ME_H */
     38