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