AM30/AM33: global simplification and standardization of patterns

Alexandre Oliva aoliva@cygnus.com
Fri Apr 21 16:25:00 GMT 2000


This patch factors out lots of redundant constraints in several
patterns scattered along mn10300.md.  In many cases, I've also
gratuitously reordered constraints within the same alternative so that
constraints always appear in the same order, and adds `*' in front of
`x's so as to reduce the probability of using extended registers, that
increase the code size.  This patch also fixes the `cc' attribute of
movdi and movdf insns, that can't be relied upon in any case.

I was glad to find out this patch considerably reduced the code size
on am33.  But I was sad that it increased the code size on am30 in
most cases.  I can't explain why.  Can anybody?

v gcc/am33/libgcc.a 26955 26909
^ gcc/libgcc.a 27022 27075
v mn10300-elf/am33/libiberty/libiberty.a 28025 27846
v mn10300-elf/am33/libio/libio.a 23733 23518
v mn10300-elf/am33/libio/libiostream.a 63987 63563
v mn10300-elf/am33/libstdc++/libstdc++.a 69850 69445
v mn10300-elf/am33/newlib/libc.a 47683 46974
v mn10300-elf/am33/newlib/libc/libc.a 46236 45549
^ mn10300-elf/am33/newlib/libc/locale/lib.a 130 131
v mn10300-elf/am33/newlib/libc/misc/lib.a 766 755
^ mn10300-elf/am33/newlib/libc/reent/lib.a 1010 1020
^ mn10300-elf/am33/newlib/libc/stdio/lib.a 16986 17067
v mn10300-elf/am33/newlib/libc/stdlib/lib.a 20373 19805
v mn10300-elf/am33/newlib/libc/string/lib.a 3038 2892
v mn10300-elf/am33/newlib/libc/time/lib.a 2866 2765
v mn10300-elf/am33/newlib/libg.a 47683 46974
v mn10300-elf/am33/newlib/libm.a 96510 96321
v mn10300-elf/am33/newlib/libm/common/lib.a 8330 8254
v mn10300-elf/am33/newlib/libm/libm.a 96510 96321
v mn10300-elf/am33/newlib/libm/math/lib.a 88180 88067
^ mn10300-elf/libiberty/libiberty.a 27926 27936
^ mn10300-elf/libio/libio.a 23710 23783
v mn10300-elf/libio/libiostream.a 63640 63505
v mn10300-elf/libstdc++/libstdc++.a 69442 69329
^ mn10300-elf/newlib/libc.a 46896 46932
^ mn10300-elf/newlib/libc/libc.a 45488 45512
^ mn10300-elf/newlib/libc/stdio/lib.a 17047 17082
^ mn10300-elf/newlib/libc/stdlib/lib.a 19865 19866
v mn10300-elf/newlib/libc/string/lib.a 2871 2863
v mn10300-elf/newlib/libc/time/lib.a 2720 2708
^ mn10300-elf/newlib/libg.a 46896 46932
^ mn10300-elf/newlib/libm.a 95892 96134
^ mn10300-elf/newlib/libm/common/lib.a 8259 8276
^ mn10300-elf/newlib/libm/libm.a 95892 96134
^ mn10300-elf/newlib/libm/math/lib.a 87633 87858

Here's the patch.  Ok to install?



More information about the Gcc-patches mailing list