reload.c (combine_reloads): Don't combine an output reload if there are other reloads around for part of...
* reload.c (combine_reloads): Don't combine an output reload if there are other reloads around for part of the output. From-SVN: r46734
This commit is contained in:
parent
1285011e67
commit
6b3736a12b
|
@ -1,5 +1,16 @@
|
|||
Sat Nov 3 10:37:56 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||||
|
||||
* reload.c (combine_reloads): Don't combine an output reload if there
|
||||
are other reloads around for part of the output.
|
||||
|
||||
* emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGINGP_P if T is a
|
||||
constant expression.
|
||||
(set_mem_decl): New function.
|
||||
* expr.h (set_mem_decl): New declaration.
|
||||
* final.c (get_decl_from_op): Don't use ORIGINAL_REGNO if not pseudo.
|
||||
(output_asm_operand_names): Add tab.
|
||||
* reload1.c (alter_reg): Set decl of MEM from REG_DECL.
|
||||
|
||||
* builtins.c (get_memory_rtx): Properly set MEM alias set and
|
||||
attributes.
|
||||
|
||||
|
|
10
gcc/reload.c
10
gcc/reload.c
|
@ -1641,6 +1641,16 @@ combine_reloads ()
|
|||
if (earlyclobber_operand_p (rld[output_reload].out))
|
||||
return;
|
||||
|
||||
/* If there is a reload for part of the address of this operand, we would
|
||||
need to chnage it to RELOAD_FOR_OTHER_ADDRESS. But that would extend
|
||||
its life to the point where doing this combine would not lower the
|
||||
number of spill registers needed. */
|
||||
for (i = 0; i < n_reloads; i++)
|
||||
if ((rld[i].when_needed == RELOAD_FOR_OUTPUT_ADDRESS
|
||||
|| rld[i].when_needed == RELOAD_FOR_OUTADDR_ADDRESS)
|
||||
&& rld[i].opnum == rld[output_reload].opnum)
|
||||
return;
|
||||
|
||||
/* Check each input reload; can we combine it? */
|
||||
|
||||
for (i = 0; i < n_reloads; i++)
|
||||
|
|
Loading…
Reference in New Issue