This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]