From: Richard Kenner Date: Mon, 14 Apr 2003 21:33:05 +0000 (+0000) Subject: integrate.c (expand_inline_function): Don't inline if would lose /u on a BLKmode... X-Git-Tag: releases/gcc-3.4.0~7303 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2443af37208590b754984ffd04b8ac19db5eff9f;p=thirdparty%2Fgcc.git integrate.c (expand_inline_function): Don't inline if would lose /u on a BLKmode TARGET. * integrate.c (expand_inline_function): Don't inline if would lose /u on a BLKmode TARGET. From-SVN: r65594 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a53b3b686b52..8b0dafc18f97 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-04-14 Richard Kenner + + * integrate.c (expand_inline_function): Don't inline if would + lose /u on a BLKmode TARGET. + 2003-04-14 Joel Brobecker * dwarf2out.c (gen_compile_unit_die): Emit DW_LANG_Ada95 instead diff --git a/gcc/integrate.c b/gcc/integrate.c index f26a94c66a11..7a1865881c66 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -736,6 +736,14 @@ expand_inline_function (fndecl, parms, target, ignore, type, return (rtx) (size_t) -1; } + /* If there is a TARGET which is a readonly BLKmode MEM and DECL_RESULT + is also a mem, we are going to lose the readonly on the stores, so don't + inline. */ + if (target != 0 && GET_CODE (target) == MEM && GET_MODE (target) == BLKmode + && RTX_UNCHANGING_P (target) && DECL_RTL_SET_P (DECL_RESULT (fndecl)) + && GET_CODE (DECL_RTL (DECL_RESULT (fndecl))) == MEM) + return (rtx) (size_t) -1; + /* Extra arguments are valid, but will be ignored below, so we must evaluate them here for side-effects. */ for (; actual; actual = TREE_CHAIN (actual))