This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix i?86 eh regressions (PR middle-end/40304)


On Sat, May 30, 2009 at 02:24:42PM -0700, Richard Henderson wrote:
> Jakub Jelinek wrote:
>> lea.c regression seems to be unrelated, seems the presence of a frame
>> related insn later in the bb confuses following peepholing in the same bb.
>
> I havn't looked (as i don't remember seeing that error), but that
> may be due to
>
>         * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
>
> which I put in because try_split was throwing away my notes.  I
> suppose I could work harder in that function to preserve them
> somehow...
>
> I'll look at this more Monday.

The following patch seems to fix the peephole2 pass, seems just clearing
peep2_current_count is insufficient, I've tried to copy what is initialized
at the end of each basic block, bootstrapped/regtested on x86_64-linux and
i686-linux.

The second patch is needed to fix bootstrap with Ada,
apparently some of ada/rts/ files include tconfig.h and thus i386.h, without
including hwint.h, but it defines neither IN_LIBGCC2, nor IN_TARGET_LIBS,
but IN_RTS.  Instead of listing each such IN_* macro it seems better to test
for USED_FOR_TARGET (I've verified that whenever i386.h was included with
IN_LIBGCC2 or IN_TARGET_LIBS defined, USED_FOR_TARGET was defined as well).

	Jakub

Attachment: Y320
Description: Text document

Attachment: Y321
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]