1/* If-conversion header file.
2   Copyright (C) 2014-2015 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
7   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, but WITHOUT
12   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
14   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_IFCVT_H
21#define GCC_IFCVT_H
22
23/* Structure to group all of the information to process IF-THEN and
24   IF-THEN-ELSE blocks for the conditional execution support.  */
25
26struct ce_if_block
27{
28  basic_block test_bb;			/* First test block.  */
29  basic_block then_bb;			/* THEN block.  */
30  basic_block else_bb;			/* ELSE block or NULL.  */
31  basic_block join_bb;			/* Join THEN/ELSE blocks.  */
32  basic_block last_test_bb;		/* Last bb to hold && or || tests.  */
33  int num_multiple_test_blocks;		/* # of && and || basic blocks.  */
34  int num_and_and_blocks;		/* # of && blocks.  */
35  int num_or_or_blocks;			/* # of || blocks.  */
36  int num_multiple_test_insns;		/* # of insns in && and || blocks.  */
37  int and_and_p;			/* Complex test is &&.  */
38  int num_then_insns;			/* # of insns in THEN block.  */
39  int num_else_insns;			/* # of insns in ELSE block.  */
40  int pass;				/* Pass number.  */
41};
42
43#endif /* GCC_IFCVT_H */
44