http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49452

--- Comment #24 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2011-09-16 
21:24:30 UTC ---
> It seems postreload.c should be changed to the following to avoid combining
> 
> --- postreload.c    (revision 178904)
> +++ postreload.c    (working copy)
> @@ -1312,7 +1312,7 @@ reload_combine (void)
>       is and then later disable any optimization that would cross it.  */
>        if (LABEL_P (insn))
>      last_label_ruid = reload_combine_ruid;
> -      else if (BARRIER_P (insn))
> +      else if (BARRIER_P (insn) || BLOCKAGE_P (insn))
>      for (r = 0; r < FIRST_PSEUDO_REGISTER; r++)
>        if (! fixed_regs[r])
>            reg_state[r].use_index = RELOAD_COMBINE_MAX_USES;
> 
> BLOCKAGE_P (insn) is used to detect if insn is a blockage insn, is there any
> available function/macro that implement this functionality?

volatile_insn_p would seem to be appropriate.

Reply via email to