+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.
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 */
};
/* 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),
/*----------------------------------------------------------------------------
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.
----------------------------------------------------------------------------*/
/* 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
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);
}
}
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));