This is the mail archive of the
mailing list for the GCC project.
Re: [Patch,AVR] Fix PR46278, Take #3
2011/10/14 Georg-Johann Lay <firstname.lastname@example.org>:
> Weddington, Eric schrieb:
>>> This is yet another attempt to fix PR46278 (fake X addressing).
>>> After the previous clean-ups it is just a small change.
>>> caller-saves.c tries to eliminate call-clobbered hard-regs allocated to
>>> pseudos around function calls and that leads to situations that reload is
>>> no more capable to perform all requested spills because of the very few
>>> AVR's address registers.
>>> Thus, the patch adds a new target option -mstrict-X so that the user can
>>> turn that option if he like to do so, and then -fcaller-save is disabled.
>>> The patch passes the testsuite without regressions. Moreover, the
>>> testsuite passes without regressions if all test cases are run with
>>> -mstrict-X and all libraries (libgcc, avr-libc) are built with the new
>>> option turned on.
>> Hi Johann,
>> Sorry, I haven't been keeping up with the discussion on this PR.
>> But if all test cases pass with running -mstrict-X and everything built with
>> that option on, then why is this even an option? Is it because that it may
>> not always reduce code size?...
> An alternative would be to set -mstrict-X per default if -O or higher.
> Let's see what Denis thinks.
I think that it's just a great results.
I vote for committing this patch.
About "to set -mstrict-X per default": if it's possible to print
something like "Please use -mno-strict-X" instead of "Spill error
failure...." then we can use -mstrict-X by default.
i.e. how user can get a knowledge about a correlation between "Spill
error..." and -mstrict-X