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, i386]: Macroize add and sub patterns


On Wed, Oct 7, 2009 at 2:20 PM, Jakub Jelinek <jakub@redhat.com> wrote:

> On Tue, Oct 06, 2009 at 03:53:16PM +0200, Uros Bizjak wrote:
>> Hello!
>>
>> As the $subject says.  Macroized in such a way that no functional
>> change was introduced (although it was tempting :] ). The patch
>> removes ~500 lines, otherwise it mostly moves code around.
>
> Unfortunately this broke bootstrap on x86_64-linux.
>
> ../../gcc/gnat1 -gnatwa -quiet -dumpbase a-strunb.adb -auxbase-strip a-strunb.o -O2 -W -Wall -fPIC -g -gnatpg -m32 -mtune=generic -gnatO a-strunb.o a-strunb.adb -o /tmp/ccSzLhJO.s
> +===========================GNAT BUG DETECTED==============================+
> | 4.5.0 20091007 (experimental) (x86_64-unknown-linux-gnu) GCC error:      |
> | in decompose_multiword_subregs, at lower-subreg.c:1262                   |
> | Error detected around a-strunb.adb:360:8                                 |
> | Please submit a bug report; see http://gcc.gnu.org/bugs.html.            |
> | Use a subject line meaningful to you and us to track the bug.            |
> | Include the entire contents of this bug box in the report.               |
> | Include the exact gcc or gnatmake command that you entered.              |
> | Also include sources listed below in gnatchop format                     |
> | (concatenated together with no headers between files).                   |
> +==========================================================================+
>
> ...
>
> (insn 8 7 9 2 a-strunb.adb:357 (set (reg:SI 99 [ D.8603 ])
>        (plus:SI (reg:SI 80)
>            (const_int 8 [0x8]))) -1 (nil))
>
> is now considered insn_invalid_p.  I think the bug is that while before
> lea_1 (etc.) were defined before addsi_1 (etc.), it is now defined after it.
> This means in this insn addsi_1 is matched instead of lea_1 in recog, with
> num_clobbers 1, clobbering a hard register.

Can you try attached patch?

Uros.

Attachment: r.diff.txt
Description: Text document


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