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>
|
2016-04-30 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
* regs.h (struct reg_info_t): Delete live_length.
|
* 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_BASIC_BLOCK (regno) = use_bb->index;
|
||||||
REG_N_CALLS_CROSSED (regno) = 0;
|
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))
|
if (use_insn == BB_HEAD (use_bb))
|
||||||
BB_HEAD (use_bb) = new_insn;
|
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 freq; /* # estimated frequency (REG n) is used or set */
|
||||||
int deaths; /* # of times (REG n) dies */
|
int deaths; /* # of times (REG n) dies */
|
||||||
int calls_crossed; /* # of calls (REG n) is live across */
|
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 */
|
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. */
|
/* 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_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.
|
/* Indexed by n, gives number of basic block that (REG n) is used in.
|
||||||
If the value is REG_BLOCK_GLOBAL (-1),
|
If the value is REG_BLOCK_GLOBAL (-1),
|
||||||
|
|
|
@ -94,8 +94,7 @@ regstat_free_n_sets_and_refs (void)
|
||||||
/*----------------------------------------------------------------------------
|
/*----------------------------------------------------------------------------
|
||||||
REGISTER INFORMATION
|
REGISTER INFORMATION
|
||||||
|
|
||||||
Process REG_N_DEATHS, REG_N_CALLS_CROSSED,
|
Process REG_N_DEATHS, REG_N_CALLS_CROSSED, and REG_BASIC_BLOCK.
|
||||||
REG_N_THROWING_CALLS_CROSSED and REG_BASIC_BLOCK.
|
|
||||||
|
|
||||||
----------------------------------------------------------------------------*/
|
----------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
@ -156,16 +155,10 @@ regstat_bb_compute_ri (basic_block bb, bitmap live)
|
||||||
/* Process the defs. */
|
/* Process the defs. */
|
||||||
if (CALL_P (insn))
|
if (CALL_P (insn))
|
||||||
{
|
{
|
||||||
bool can_throw = can_throw_internal (insn);
|
|
||||||
bool set_jump = (find_reg_note (insn, REG_SETJMP, NULL) != NULL);
|
bool set_jump = (find_reg_note (insn, REG_SETJMP, NULL) != NULL);
|
||||||
EXECUTE_IF_SET_IN_BITMAP (live, 0, regno, bi)
|
EXECUTE_IF_SET_IN_BITMAP (live, 0, regno, bi)
|
||||||
{
|
{
|
||||||
REG_N_CALLS_CROSSED (regno)++;
|
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
|
/* We have a problem with any pseudoreg that lives
|
||||||
across the setjmp. ANSI says that if a user variable
|
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)
|
EXECUTE_IF_SET_IN_BITMAP (live, 0, regno, bi)
|
||||||
{
|
{
|
||||||
REG_N_CALLS_CROSSED (regno)++;
|
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);
|
fputs ("; crosses 1 call", file);
|
||||||
else if (REG_N_CALLS_CROSSED (i))
|
else if (REG_N_CALLS_CROSSED (i))
|
||||||
fprintf (file, "; crosses %d calls", 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
|
if (regno_reg_rtx[i] != NULL
|
||||||
&& PSEUDO_REGNO_BYTES (i) != UNITS_PER_WORD)
|
&& PSEUDO_REGNO_BYTES (i) != UNITS_PER_WORD)
|
||||||
fprintf (file, "; %d bytes", PSEUDO_REGNO_BYTES (i));
|
fprintf (file, "; %d bytes", PSEUDO_REGNO_BYTES (i));
|
||||||
|
|
Loading…
Add table
Reference in a new issue