mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-18 18:49:51 +08:00
combine.c (combine_instructions): When finished, call init_recog.
8 * combine.c (combine_instructions): When finished, call init_recog. * regmove.c (optimize_reg_copy_3): Reject volatile MEMs. From-SVN: r23094
This commit is contained in:
parent
b1966eeb0b
commit
972b320cbf
@ -674,6 +674,9 @@ combine_instructions (f, nregs)
|
||||
total_successes += combine_successes;
|
||||
|
||||
nonzero_sign_valid = 0;
|
||||
|
||||
/* Make recognizer allow volatile MEMs again. */
|
||||
init_recog ();
|
||||
}
|
||||
|
||||
/* Wipe the reg_last_xxx arrays in preparation for another pass. */
|
||||
|
@ -553,6 +553,11 @@ optimize_reg_copy_3 (insn, dest, src)
|
||||
|| SET_DEST (set) != src_reg)
|
||||
return;
|
||||
|
||||
/* Be conserative: although this optimization is also valid for
|
||||
volatile memory references, that could cause trouble in later passes. */
|
||||
if (MEM_VOLATILE_P (SET_SRC (set)))
|
||||
return;
|
||||
|
||||
/* Do not use a SUBREG to truncate from one mode to another if truncation
|
||||
is not a nop. */
|
||||
if (GET_MODE_BITSIZE (GET_MODE (src_reg)) <= GET_MODE_BITSIZE (GET_MODE (src))
|
||||
|
Loading…
Reference in New Issue
Block a user