[Bug rtl-optimization/38644] [4.4/4.5/4.6/4.7 Regression] Optimization flag -O1 -fschedule-insns2 causes wrong code
mikpe at it dot uu.se
gcc-bugzilla@gcc.gnu.org
Mon Oct 31 08:34:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38644
--- Comment #57 from Mikael Pettersson <mikpe at it dot uu.se> 2011-10-31 08:32:09 UTC ---
(In reply to comment #56)
> (In reply to comment #54)
> > I tested with GCC 4.6.2 and the patch provided by Mikael Pettersson. It works
> > for -march=armv4t and -march=armv5t, but not for -march=armv5te:
> >
>
> Sebastian,
>
> Actually you may try this,
>
> diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
> index aed748c..8269c1a 100755
> --- a/gcc/config/arm/arm.c
> +++ b/gcc/config/arm/arm.c
> @@ -22273,6 +22273,8 @@ thumb1_expand_epilogue (void)
> gcc_assert (amount >= 0);
> if (amount)
> {
> + emit_insn (gen_blockage ());
> +
> if (amount < 512)
> emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx,
> GEN_INT (amount)));
>
> Thanks,
> -Jiangning
Yeah, that should be even better than my patch. Thanks.
More information about the Gcc-bugs
mailing list