This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: find_reloads_address_1 question
- To: weigand at immd1 dot informatik dot uni-erlangen dot de (Ulrich Weigand)
- Subject: Re: find_reloads_address_1 question
- From: Joern Rennecke <amylaar at onetel dot net dot uk>
- Date: Sun, 7 Oct 2001 21:25:37 +0100 (BST)
- Cc: gcc at gcc dot gnu dot org, uweigand at de dot ibm dot com, hpenner at de dot ibm dot com
> Specifically I've tried to declare addresses of the form
> (plus (plus (reg) (const_int)) (plus (reg) (const_int)))
...
> But this caused bootstrap failure because reload simply
> didn't reload the registers to hard registers and left
> pseudos in ...
>
> Am I just trying something stupid here, or would this be
> considered a bug in reload?
Yes. Both. You are allowing non-canonical RTL, and AFAICT there is
no good reason to do this here. On the other hand, gcc would be easier
to port if find_reloads_address either had a fallback method to reload
all kinds of addressing modes, or at least aborted for ones that it
doesn't handle. Note that there is a comment at the start of this function
that hints at this defect: ...this is not fully machine-customizable;... .