------- Additional Comments From geoffk at gcc dot gnu dot org  2005-04-29 
22:11 -------
I have a fix for this.

The problem is like this:

- Sometimes, assign_stack_temp can generate an invalid memory address.  Even if 
the address was 
always valid, it's not always offsettable, which is what this pattern needs.
- instantiate_virtual_regs_1 might not be supposed to be making the address 
valid, but it's not 
unreasonable for it or something else to try.  If the address isn't valid, the 
insn can't be recognized, so 
it's not like we can try to keep the invalid address around until reload.
- After reload, the address had better be offsettable, since it's "=o".  Before 
reload, it might be 
offsettable, or we might be able to offset it anyway (if no_new_pseudos is 
clear).

I was mistaken earlier, it was a regression in my patch.  The regression was 
caused by a line which I 
didn't notice in a define_insn_and_split, changing '&& reload_completed' to '&& 
1'.  (That's now two 
stray changes in that patch that shouldn't have been there, sorry about that.)

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |geoffk at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20813

Reply via email to