This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: init_reg_autoinc bug and how to describe regs that can't autoincdec
- From: Hans-Peter Nilsson <hans-peter dot nilsson at axis dot com>
- To: kenner at vlsi1 dot ultra dot nyu dot edu
- Cc: hans-peter dot nilsson at axis dot com, gcc-patches at gcc dot gnu dot org
- Date: Wed, 21 Nov 2007 22:30:24 +0100
- Subject: Re: init_reg_autoinc bug and how to describe regs that can't autoincdec
> From: kenner@vlsi1.ultra.nyu.edu (Richard Kenner)
> Date: Wed, 21 Nov 2007 16:20:04 EST
> > I don't understand what you mean; there's a misunderstanding
> > here. To be very brief, I can't have (post_inc (reg:SI 15)) and
> > a gdb session tells me this code is responsible for making sure
> > that's a valid allocation.
>
> You can't have that post_inc in the post-reload code, certainly,
> but if you have a post_inc of a pseudo that's assigned reg 15 and that
> register isn't valid for a post_inc, the normal reload mechanism should
> generate the in and out reloads to put reg 15 in a reload register of the
> appropriate class.
So for the actual bug I see, I need to find out why reload
doesn't do that, if I understand you correctly.
But still, why is forbidden_inc_dec_class all 0 here,
particularly for classes containing this register? Surely the
code should be changed to make it 1 for such classes, so there'd
be no invalid allocations for reload to fix up!
brgds, H-P