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