Goodbye REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED
* regs.h (struct reg_info_t): Delete freq_calls_crossed and throw_calls_crossed. (REG_FREQ_CALLS_CROSSED): Delete. (REG_N_THROWING_CALLS_CROSSED): Delete. * regstat.c (regstat_bb_compute_ri): Don't calculate REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED. (dump_reg_info): Don't print call cross frequency. * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED. From-SVN: r235664
This commit is contained in:
parent
91dabbb2c7
commit
725842d06f
4 changed files with 13 additions and 23 deletions
|
@ -1,3 +1,15 @@
|
|||
2016-04-30 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* regs.h (struct reg_info_t): Delete freq_calls_crossed and
|
||||
throw_calls_crossed.
|
||||
(REG_FREQ_CALLS_CROSSED): Delete.
|
||||
(REG_N_THROWING_CALLS_CROSSED): Delete.
|
||||
* regstat.c (regstat_bb_compute_ri): Don't calculate
|
||||
REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
|
||||
(dump_reg_info): Don't print call cross frequency.
|
||||
* ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
|
||||
and REG_N_THROWING_CALLS_CROSSED.
|
||||
|
||||
2016-04-30 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* regs.h (struct reg_info_t): Delete live_length.
|
||||
|
|
|
@ -3738,8 +3738,6 @@ combine_and_move_insns (void)
|
|||
|
||||
REG_BASIC_BLOCK (regno) = use_bb->index;
|
||||
REG_N_CALLS_CROSSED (regno) = 0;
|
||||
REG_FREQ_CALLS_CROSSED (regno) = 0;
|
||||
REG_N_THROWING_CALLS_CROSSED (regno) = 0;
|
||||
|
||||
if (use_insn == BB_HEAD (use_bb))
|
||||
BB_HEAD (use_bb) = new_insn;
|
||||
|
|
|
@ -106,8 +106,6 @@ struct reg_info_t
|
|||
int freq; /* # estimated frequency (REG n) is used or set */
|
||||
int deaths; /* # of times (REG n) dies */
|
||||
int calls_crossed; /* # of calls (REG n) is live across */
|
||||
int freq_calls_crossed; /* # estimated frequency (REG n) crosses call */
|
||||
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 */
|
||||
};
|
||||
|
||||
|
@ -162,12 +160,6 @@ extern size_t reg_info_p_size;
|
|||
/* Indexed by N, gives number of CALL_INSNS across which (REG n) is live. */
|
||||
|
||||
#define REG_N_CALLS_CROSSED(N) (reg_info_p[N].calls_crossed)
|
||||
#define REG_FREQ_CALLS_CROSSED(N) (reg_info_p[N].freq_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) (reg_info_p[N].throw_calls_crossed)
|
||||
|
||||
/* Indexed by n, gives number of basic block that (REG n) is used in.
|
||||
If the value is REG_BLOCK_GLOBAL (-1),
|
||||
|
|
|
@ -94,8 +94,7 @@ regstat_free_n_sets_and_refs (void)
|
|||
/*----------------------------------------------------------------------------
|
||||
REGISTER INFORMATION
|
||||
|
||||
Process REG_N_DEATHS, REG_N_CALLS_CROSSED,
|
||||
REG_N_THROWING_CALLS_CROSSED and REG_BASIC_BLOCK.
|
||||
Process REG_N_DEATHS, REG_N_CALLS_CROSSED, and REG_BASIC_BLOCK.
|
||||
|
||||
----------------------------------------------------------------------------*/
|
||||
|
||||
|
@ -156,16 +155,10 @@ regstat_bb_compute_ri (basic_block bb, bitmap live)
|
|||
/* Process the defs. */
|
||||
if (CALL_P (insn))
|
||||
{
|
||||
bool can_throw = can_throw_internal (insn);
|
||||
bool set_jump = (find_reg_note (insn, REG_SETJMP, NULL) != NULL);
|
||||
EXECUTE_IF_SET_IN_BITMAP (live, 0, regno, bi)
|
||||
{
|
||||
REG_N_CALLS_CROSSED (regno)++;
|
||||
REG_FREQ_CALLS_CROSSED (regno) += REG_FREQ_FROM_BB (bb);
|
||||
REG_FREQ_CALLS_CROSSED (regno) =
|
||||
MIN (REG_FREQ_CALLS_CROSSED (regno), REG_FREQ_MAX);
|
||||
if (can_throw)
|
||||
REG_N_THROWING_CALLS_CROSSED (regno)++;
|
||||
|
||||
/* We have a problem with any pseudoreg that lives
|
||||
across the setjmp. ANSI says that if a user variable
|
||||
|
@ -344,9 +337,6 @@ regstat_bb_compute_calls_crossed (unsigned int bb_index, bitmap live)
|
|||
EXECUTE_IF_SET_IN_BITMAP (live, 0, regno, bi)
|
||||
{
|
||||
REG_N_CALLS_CROSSED (regno)++;
|
||||
REG_FREQ_CALLS_CROSSED (regno) += REG_FREQ_FROM_BB (bb);
|
||||
REG_FREQ_CALLS_CROSSED (regno) =
|
||||
MIN (REG_FREQ_CALLS_CROSSED (regno), REG_FREQ_MAX);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -445,8 +435,6 @@ dump_reg_info (FILE *file)
|
|||
fputs ("; crosses 1 call", file);
|
||||
else if (REG_N_CALLS_CROSSED (i))
|
||||
fprintf (file, "; crosses %d calls", REG_N_CALLS_CROSSED (i));
|
||||
if (REG_FREQ_CALLS_CROSSED (i))
|
||||
fprintf (file, "; crosses call with %d frequency", REG_FREQ_CALLS_CROSSED (i));
|
||||
if (regno_reg_rtx[i] != NULL
|
||||
&& PSEUDO_REGNO_BYTES (i) != UNITS_PER_WORD)
|
||||
fprintf (file, "; %d bytes", PSEUDO_REGNO_BYTES (i));
|
||||
|
|
Loading…
Add table
Reference in a new issue