Commit 9dadeeb8 by Uros Bizjak

alpha.h (alpha_expand_mov): Return false if force_const_mem returns NULL_RTX.

	* config/alpha/alpha.h (alpha_expand_mov): Return false if
	force_const_mem returns NULL_RTX.

From-SVN: r144450
parent 489ec4e3
2009-02-26 Uros Bizjak <ubizjak@gmail.com>
* config/alpha/alpha.h (alpha_expand_mov): Return false if
force_const_mem returns NULL_RTX.
2009-02-25 H.J. Lu <hongjiu.lu@intel.com> 2009-02-25 H.J. Lu <hongjiu.lu@intel.com>
PR rtl-optimization/39241 PR rtl-optimization/39241
...@@ -36,8 +41,7 @@ ...@@ -36,8 +41,7 @@
2009-02-24 Sandra Loosemore <sandra@codesourcery.com> 2009-02-24 Sandra Loosemore <sandra@codesourcery.com>
* doc/invoke.texi (Link Options): Document an easier way to pass * doc/invoke.texi (Link Options): Document an easier way to pass
options that take arguments to the GNU linker using -Xlinker and options that take arguments to the GNU linker using -Xlinker and -Wl.
-Wl.
2009-02-24 Steve Ellcey <sje@cup.hp.com> 2009-02-24 Steve Ellcey <sje@cup.hp.com>
...@@ -74,20 +78,21 @@ ...@@ -74,20 +78,21 @@
2009-02-23 Jan Hubicka <jh@suse.cz> 2009-02-23 Jan Hubicka <jh@suse.cz>
PR c/12245 PR c/12245
* ggc.h (htab_create_ggc): Use ggc_free to free hashtable when resizing. * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
resizing.
2009-02-23 Jan Hubicka <jh@suse.cz> 2009-02-23 Jan Hubicka <jh@suse.cz>
PR tree-optimization/37709 PR tree-optimization/37709
* tree.c (block_ultimate_origin): Move here from dwarf2out. * tree.c (block_ultimate_origin): Move here from dwarf2out.
* tree.h (block_ultimate_origin): Declare. * tree.h (block_ultimate_origin): Declare.
* dwarf2out.c (block_ultimate_origin): Move to tree.c * dwarf2out.c (block_ultimate_origin): Move to tree.c
* tree-ssa-live.c (remove_unused_scope_block_p): * tree-ssa-live.c (remove_unused_scope_block_p):
Eliminate blocks containig no instructions nor live variables nor Eliminate blocks containig no instructions nor live variables nor
nested blocks. nested blocks.
(dump_scope_block): New function. (dump_scope_block): New function.
(remove_unused_locals): Enable removal of dead blocks by default; (remove_unused_locals): Enable removal of dead blocks by default;
enable dumping at TDF_DETAILS. enable dumping at TDF_DETAILS.
2009-02-21 H.J. Lu <hongjiu.lu@intel.com> 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
......
...@@ -2124,6 +2124,8 @@ alpha_split_const_mov (enum machine_mode mode, rtx *operands) ...@@ -2124,6 +2124,8 @@ alpha_split_const_mov (enum machine_mode mode, rtx *operands)
bool bool
alpha_expand_mov (enum machine_mode mode, rtx *operands) alpha_expand_mov (enum machine_mode mode, rtx *operands)
{ {
rtx tmp;
/* If the output is not a register, the input must be. */ /* If the output is not a register, the input must be. */
if (GET_CODE (operands[0]) == MEM if (GET_CODE (operands[0]) == MEM
&& ! reg_or_0_operand (operands[1], mode)) && ! reg_or_0_operand (operands[1], mode))
...@@ -2132,8 +2134,6 @@ alpha_expand_mov (enum machine_mode mode, rtx *operands) ...@@ -2132,8 +2134,6 @@ alpha_expand_mov (enum machine_mode mode, rtx *operands)
/* Allow legitimize_address to perform some simplifications. */ /* Allow legitimize_address to perform some simplifications. */
if (mode == Pmode && symbolic_operand (operands[1], mode)) if (mode == Pmode && symbolic_operand (operands[1], mode))
{ {
rtx tmp;
tmp = alpha_legitimize_address (operands[1], operands[0], mode); tmp = alpha_legitimize_address (operands[1], operands[0], mode);
if (tmp) if (tmp)
{ {
...@@ -2158,14 +2158,18 @@ alpha_expand_mov (enum machine_mode mode, rtx *operands) ...@@ -2158,14 +2158,18 @@ alpha_expand_mov (enum machine_mode mode, rtx *operands)
} }
/* Otherwise we've nothing left but to drop the thing to memory. */ /* Otherwise we've nothing left but to drop the thing to memory. */
operands[1] = force_const_mem (mode, operands[1]); tmp = force_const_mem (mode, operands[1]);
if (tmp == NULL_RTX)
return false;
if (reload_in_progress) if (reload_in_progress)
{ {
emit_move_insn (operands[0], XEXP (operands[1], 0)); emit_move_insn (operands[0], XEXP (tmp, 0));
operands[1] = replace_equiv_address (operands[1], operands[0]); operands[1] = replace_equiv_address (tmp, operands[0]);
} }
else else
operands[1] = validize_mem (operands[1]); operands[1] = validize_mem (tmp);
return false; return false;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment