rtl.h (recompute_reg_usage): Add second argument.
* rtl.h (recompute_reg_usage): Add second argument. * flow.c (recompute_reg_usage): Likewise. * toplev.c (rest_of_compilation): Supply second argument to recompute_reg_usage. From-SVN: r24291
This commit is contained in:
parent
867cbbbe72
commit
213c498330
|
@ -4,6 +4,11 @@
|
|||
|
||||
Sun Dec 13 00:24:14 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
|
||||
|
||||
* rtl.h (recompute_reg_usage): Add second argument.
|
||||
* flow.c (recompute_reg_usage): Likewise.
|
||||
* toplev.c (rest_of_compilation): Supply second argument to
|
||||
recompute_reg_usage.
|
||||
|
||||
* reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0
|
||||
after reload.
|
||||
|
||||
|
|
12
gcc/flow.c
12
gcc/flow.c
|
@ -4267,12 +4267,18 @@ count_reg_references (x)
|
|||
register allocators to prioritize pseudos for allocation to hard regs.
|
||||
More accurate reference counts generally lead to better register allocation.
|
||||
|
||||
F is the first insn to be scanned.
|
||||
LOOP_STEP denotes how much loop_depth should be incremented per
|
||||
loop nesting level in order to increase the ref count more for references
|
||||
in a loop.
|
||||
|
||||
It might be worthwhile to update REG_LIVE_LENGTH, REG_BASIC_BLOCK and
|
||||
possibly other information which is used by the register allocators. */
|
||||
|
||||
void
|
||||
recompute_reg_usage (f)
|
||||
recompute_reg_usage (f, loop_step)
|
||||
rtx f;
|
||||
int loop_step;
|
||||
{
|
||||
rtx insn;
|
||||
int i, max_reg;
|
||||
|
@ -4295,9 +4301,9 @@ recompute_reg_usage (f)
|
|||
{
|
||||
/* Look for loop boundaries. */
|
||||
if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_END)
|
||||
loop_depth--;
|
||||
loop_depth -= loop_step;
|
||||
else if (NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_BEG)
|
||||
loop_depth++;
|
||||
loop_depth += loop_step;
|
||||
|
||||
/* If we have LOOP_DEPTH == 0, there has been a bookkeeping error.
|
||||
Abort now rather than setting register status incorrectly. */
|
||||
|
|
|
@ -1394,7 +1394,7 @@ extern void stupid_life_analysis PROTO ((rtx, int, FILE *));
|
|||
|
||||
/* In flow.c */
|
||||
extern void allocate_for_life_analysis PROTO ((void));
|
||||
extern void recompute_reg_usage PROTO ((rtx));
|
||||
extern void recompute_reg_usage PROTO ((rtx, int));
|
||||
#ifdef BUFSIZ
|
||||
extern void dump_flow_info PROTO ((FILE *));
|
||||
#endif
|
||||
|
|
|
@ -3929,7 +3929,7 @@ rest_of_compilation (decl)
|
|||
if (!obey_regdecls)
|
||||
TIMEVAR (local_alloc_time,
|
||||
{
|
||||
recompute_reg_usage (insns);
|
||||
recompute_reg_usage (insns, ! optimize_size);
|
||||
regclass (insns, max_reg_num ());
|
||||
local_alloc ();
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue