On Mon, Jan 2, 2012 at 7:54 PM, Eric Botcazou <ebotca...@adacore.com> wrote: >> I'd say open a missed optimization bug with the testcase and go ahead >> with both patches. Let's see if Eric has some comments first though. > > None, but the m32c maintainer may have some. > > DJ, do you happen to know the rationale for the use of the MEM_SCALAR_P and > MEM_IN_STRUCT_P flags in m32c_immd_dbl_mov? What condition do these tests try > to model exactly?
Ping? I'm now running into wrong-code issues because of store_field setting MEM_IN_STRUCT_P of !MEM_SCALAR_P ... that's not a conservative guesstimate, and initial attribute finding already has discovered everything possible. Thus, I'm testing but was remembering your patch removing all traces of MEM_IN_STRUCT_P/MEM_SCALAR_P which would be of course even better. Given DJs lack of response I'd say he doesn't know or does not have any objection. Thanks, Richard. 2012-01-24 Richard Guenther <rguent...@suse.de> * expr.c (store_field): Do not set MEM_IN_STRUCT_P. Index: gcc/expr.c =================================================================== --- gcc/expr.c (revision 183470) +++ gcc/expr.c (working copy) @@ -6429,8 +6432,6 @@ store_field (rtx target, HOST_WIDE_INT b if (to_rtx == target) to_rtx = copy_rtx (to_rtx); - if (!MEM_SCALAR_P (to_rtx)) - MEM_IN_STRUCT_P (to_rtx) = 1; if (!MEM_KEEP_ALIAS_SET_P (to_rtx) && MEM_ALIAS_SET (to_rtx) != 0) set_mem_alias_set (to_rtx, alias_set); > -- > Eric Botcazou