This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: reload problems....
Alan Lehotsky <apl@alum.mit.edu> writes:
> At 2:13 AM +1200 7/24/01, thomas joseph wrote:
>
> >Hi Alan,
> >
> > thanks for your reply. I have already defined
> > SMALL_REGISTER_CLASSES and CLASSES_LIKELY_SPILLED
> >macros.
> >
> > Do I need to define LEGITIMIZE_RELOAD_ADDRESS macro
> > ??
>
> It may help. You can look at the SPARC port for an example. There are
> several other ports that do this too. The L_R_A macro is
> particularly useful if
> you have several different addressing modes, as reload has some very general ideas
> about how to create legal addresses during the reload phase, and often to get good code you
> need this "specialization".
>
The LEGITIMIZE_ADDRESS can't resolve all your problems.
It only "can help".
If you have a few pointer registers with the different characteristics
then you need to modify GCC itself. You need to modify reload.c or
reload1.c
Wrong code can be generated by reload pass because secondary reload
don't use LEGITIMIZE_RELOAD_ADDRESS.
Denis.