forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-11-20 2e7bd41e4e8ab3d1efdabd9e263a2f7fe79bff8c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/* If-conversion header file.
   Copyright (C) 2014-2016 Free Software Foundation, Inc.
 
   This file is part of GCC.
 
   GCC is free software; you can redistribute it and/or modify it
   under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3, or (at your option)
   any later version.
 
   GCC is distributed in the hope that it will be useful, but WITHOUT
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
   License for more details.
 
   You should have received a copy of the GNU General Public License
   along with GCC; see the file COPYING3.  If not see
   <http://www.gnu.org/licenses/>.  */
 
#ifndef GCC_IFCVT_H
#define GCC_IFCVT_H
 
/* Structure to group all of the information to process IF-THEN and
   IF-THEN-ELSE blocks for the conditional execution support.  */
 
struct ce_if_block
{
  basic_block test_bb;            /* First test block.  */
  basic_block then_bb;            /* THEN block.  */
  basic_block else_bb;            /* ELSE block or NULL.  */
  basic_block join_bb;            /* Join THEN/ELSE blocks.  */
  basic_block last_test_bb;        /* Last bb to hold && or || tests.  */
  int num_multiple_test_blocks;        /* # of && and || basic blocks.  */
  int num_and_and_blocks;        /* # of && blocks.  */
  int num_or_or_blocks;            /* # of || blocks.  */
  int num_multiple_test_insns;        /* # of insns in && and || blocks.  */
  int and_and_p;            /* Complex test is &&.  */
  int num_then_insns;            /* # of insns in THEN block.  */
  int num_else_insns;            /* # of insns in ELSE block.  */
  int pass;                /* Pass number.  */
};
 
#endif /* GCC_IFCVT_H */