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:
J"orn Rennecke 1998-10-14 14:50:40 -06:00 committed by Jeff Law
parent b1966eeb0b
commit 972b320cbf
2 changed files with 8 additions and 0 deletions

View File

@ -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. */

View File

@ -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))