This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Correct fix for scheduler bug PR11320
- From: Richard Henderson <rth at redhat dot com>
- To: Bernd Schmidt <bernds at codesourcery dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Eric Botcazou <ebotcazou at adacore dot com>, Steve Ellcey <sje at cup dot hp dot com>, "Vladimir N. Makarov" <vmakarov at redhat dot com>
- Date: Thu, 14 Jul 2011 09:03:40 -0700
- Subject: Re: Correct fix for scheduler bug PR11320
- References: <4E1EBEFE.3080002@codesourcery.com>
On 07/14/2011 03:03 AM, Bernd Schmidt wrote:
> +++ gcc/config/ia64/ia64.c (working copy)
> @@ -1047,7 +1047,7 @@
> tmp = gen_rtx_PLUS (Pmode, tmp, pic_offset_table_rtx);
> emit_insn (gen_rtx_SET (VOIDmode, dest, tmp));
>
> - tmp = gen_rtx_LO_SUM (Pmode, dest, src);
> + tmp = gen_rtx_LO_SUM (Pmode, gen_rtx_MEM (Pmode, dest), src);
And the bug stems from ... what?
Is this bug still fixed if you change this to gen_const_mem?
This is a load from the .got. It's constant memory, and it's
always present. There's nowhere in the function that we cannot
move this load (assuming the address is computed properly)
where this load will fail.
It's difficult to tell if your raw gen_rtx_MEM with no aliasing
info doesn't just paper over a problem by preventing it from
being moved.
r~