From 04864a4677563e47ce9adf9467f91ad42b41c0a0 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Tue, 12 Jun 2001 17:25:16 +0200 Subject: [PATCH] simplify-rtx.c (simplify_subreg): Allow volatile memory to be subregged in case we don't have move instruction. * simplify-rtx.c (simplify_subreg): Allow volatile memory to be subregged in case we don't have move instruction. From-SVN: r43261 --- gcc/ChangeLog | 13 +++++++++++++ gcc/simplify-rtx.c | 6 +++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9868b84..2663dae 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,16 @@ +Tue Jun 12 17:24:07 CEST 2001 Jan Hubicka + + * simplify-rtx.c (simplify_subreg): Allow volatile memory + to be subregged in case we don't have move instruction. + +Tue Jun 12 12:20:12 CEST 2001 Jan Hubicka + + * loop.c: Include predict.h + (strength_reduce): Drop branch prediction note in case + number of iterations is known. + * predict.def (PRED_LOOP_ITERATIONS): new. + * Makefile.in (loop.o): Add dependancy on predict.h + 2001-06-12 Kaveh R. Ghazi * c-decl.c (grokdeclarator): Use INTEGRAL_TYPE_P. diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index 3450f7b1..b2123c1 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -2409,7 +2409,11 @@ simplify_subreg (outermode, op, innermode, byte) if (GET_CODE (op) == MEM && ! mode_dependent_address_p (XEXP (op, 0)) - && ! MEM_VOLATILE_P (op) + /* Allow splitting of volatile memory references in case we don't + have instruction to move the whole thing. */ + && (! MEM_VOLATILE_P (op) + || (mov_optab->handlers[(int) innermode].insn_code + == CODE_FOR_nothing)) && GET_MODE_SIZE (outermode) <= GET_MODE_SIZE (GET_MODE (op))) { rtx new; -- 2.7.4