From: Uros Bizjak Date: Tue, 9 Dec 2008 07:16:57 +0000 (+0100) Subject: alpha.c (alpha_set_memflags): Process memory references in full insn sequence. X-Git-Tag: releases/gcc-4.4.0~1291 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=13a4e57765a90e8a4eea8f61874f85b9da15a47f;p=thirdparty%2Fgcc.git alpha.c (alpha_set_memflags): Process memory references in full insn sequence. * config/alpha/alpha.c (alpha_set_memflags): Process memory references in full insn sequence. From-SVN: r142581 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a8b338f59daa..fe7ef41c1a11 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2008-12-08 Uros Bizjak + + * config/alpha/alpha.c (alpha_set_memflags): Process memory + references in full insn sequence. + 2008-12-09 Jason Merrill PR c++/38410 diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 26feea52ddad..52ae122f6eda 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -1603,18 +1603,17 @@ alpha_set_memflags_1 (rtx *xp, void *data) return -1; } -/* Given INSN, which is an INSN list or the PATTERN of a single insn - generated to perform a memory operation, look for any MEMs in either +/* Given SEQ, which is an INSN list, look for any MEMs in either a SET_DEST or a SET_SRC and copy the in-struct, unchanging, and volatile flags from REF into each of the MEMs found. If REF is not a MEM, don't do anything. */ void -alpha_set_memflags (rtx insn, rtx ref) +alpha_set_memflags (rtx seq, rtx ref) { - rtx *base_ptr; + rtx insn; - if (GET_CODE (ref) != MEM) + if (!MEM_P (ref)) return; /* This is only called from alpha.md, after having had something @@ -1627,11 +1626,11 @@ alpha_set_memflags (rtx insn, rtx ref) && !MEM_READONLY_P (ref)) return; - if (INSN_P (insn)) - base_ptr = &PATTERN (insn); - else - base_ptr = &insn; - for_each_rtx (base_ptr, alpha_set_memflags_1, (void *) ref); + for (insn = seq; insn; insn = NEXT_INSN (insn)) + if (INSN_P (insn)) + for_each_rtx (&PATTERN (insn), alpha_set_memflags_1, (void *) ref); + else + gcc_unreachable (); } static rtx alpha_emit_set_const (rtx, enum machine_mode, HOST_WIDE_INT,