This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [rfc] multi-word subreg lowering pass
BjÃrn Haase <bjoern.m.haase@web.de> writes:
> IIUC, everything would be fine, if after splitting all of the lowered
> instruction patterns are embraced by a libcall sequence of the type
>
> (clobber (destination))
> ... sequence of splitted insn
> (set (destination) (destination))
>
> where the individual splitted insn patterns carry the "REG_NO_CONFLICT" note
> for the input registers. If complete lowering succeeds, anything is fine
> anyway. If not, the register allocator would have the necessary hint.
>
> The present problem is, that the splitters right now are not able to add the
> desired notes.
>
> After looking at genemit.c, I made the observation, that without too much of a
> change, one could extend the splitter's capability to generate a complete
> libcall sequence, if desired.
I agree that this can work (although it's worth noting that at present
only the local register allocation pass recognizess NO_CONFLICT
notes). However, I also agree with Steven that register notes are not
the right way to implement this. The NO_CONFLICT notes are, in my
opinion, a hack, and an unreliable hack at that--they can easily get
messed up by the scheduler. It's better to improve the register
allocator so that these notes are not needed.
Ian