[Bug target/20813] [4.1 Regression] ICE in gen_reg_rtx for 3 spec tests

geoffk at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Fri Apr 29 22:11:00 GMT 2005


------- 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



More information about the Gcc-bugs mailing list