source: trunk/third/gcc/basic-block.h @ 8834

Revision 8834, 2.3 KB checked in by ghudson, 28 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r8833, which included commits to RCS files with non-trunk default branches.
Line 
1/* Define control and data flow tables, and regsets.
2   Copyright (C) 1987 Free Software Foundation, Inc.
3
4This file is part of GNU CC.
5
6GNU CC is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 2, or (at your option)
9any later version.
10
11GNU CC is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with GNU CC; see the file COPYING.  If not, write to
18the Free Software Foundation, 59 Temple Place - Suite 330,
19Boston, MA 02111-1307, USA.  */
20
21
22/* Number of bits in each actual element of a regset.  */
23
24#define REGSET_ELT_BITS HOST_BITS_PER_WIDE_INT
25
26/* Type to use for a regset element.  Note that lots of code assumes
27   that the initial part of a regset that contains information on the
28   hard registers is the same format as a HARD_REG_SET.  */
29
30#define REGSET_ELT_TYPE unsigned HOST_WIDE_INT
31
32/* Define the type for a pointer to a set with a bit for each
33   (hard or pseudo) register.  */
34
35typedef REGSET_ELT_TYPE *regset;
36
37/* Size of a regset for the current function,
38   in (1) bytes and (2) elements.  */
39
40extern int regset_bytes;
41extern int regset_size;
42
43/* Number of basic blocks in the current function.  */
44
45extern int n_basic_blocks;
46
47/* Index by basic block number, get first insn in the block.  */
48
49extern rtx *basic_block_head;
50
51/* Index by basic block number, get last insn in the block.  */
52
53extern rtx *basic_block_end;
54
55/* Index by basic block number, get address of regset
56   describing the registers live at the start of that block.  */
57
58extern regset *basic_block_live_at_start;
59
60/* Indexed by n, gives number of basic block that  (REG n) is used in.
61   If the value is REG_BLOCK_GLOBAL (-2),
62   it means (REG n) is used in more than one basic block.
63   REG_BLOCK_UNKNOWN (-1) means it hasn't been seen yet so we don't know.
64   This information remains valid for the rest of the compilation
65   of the current function; it is used to control register allocation.  */
66
67#define REG_BLOCK_UNKNOWN -1
68#define REG_BLOCK_GLOBAL -2
69extern int *reg_basic_block;
Note: See TracBrowser for help on using the repository browser.