diff options
Diffstat (limited to 'contrib/gcc/regs.h')
-rw-r--r-- | contrib/gcc/regs.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/contrib/gcc/regs.h b/contrib/gcc/regs.h index bb1f43d..e9ab2d8 100644 --- a/contrib/gcc/regs.h +++ b/contrib/gcc/regs.h @@ -59,6 +59,7 @@ typedef struct reg_info_def int deaths; /* # of times (REG n) dies */ int live_length; /* # of instructions (REG n) is live */ int calls_crossed; /* # of calls (REG n) is live across */ + int throw_calls_crossed; /* # of calls that may throw (REG n) is live across */ int basic_block; /* # of basic blocks (REG n) is used in */ char changes_mode; /* whether (SUBREG (REG n)) exists and is illegal. */ @@ -125,6 +126,12 @@ extern varray_type reg_n_info; #define REG_N_CALLS_CROSSED(N) (VARRAY_REG (reg_n_info, N)->calls_crossed) +/* Indexed by N, gives number of CALL_INSNS that may throw, across which + (REG n) is live. */ + +#define REG_N_THROWING_CALLS_CROSSED(N) \ + (VARRAY_REG (reg_n_info, N)->throw_calls_crossed) + /* Total number of instructions at which (REG n) is live. The larger this is, the less priority (REG n) gets for allocation in a hard register (in global-alloc). |