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: [PATCH] lower-subreg: Decompose multiword shifts


Michael Matz <matz@suse.de> writes:

> ... this would be wrong of lower-subreg.  I thought it handled libcall 
> sequences correctly, Ian?  If lower-subreg manages to decompose _all_ 
> writing subreg references in the libcall sequence then the whole libcall 
> structure can and should be removed (which includes the introducing 
> clobber and the finishing self-move (with the RETVAL note)).  Removing 
> only part of that structure is going to cause confusion later on (as 
> here).

Well, I think it handles libcalls correctly, but I see now that the
sequences emitted by emit_no_conflict_block get a bit strange.
lower-subreg is going to tend to throw away the work done by
emit_no_conflict_block, in that it will decompose the registers making
the REG_NO_CONFLICT notes useless.  I think the result is still
correct, except that the initial clobbers are now useless.

I'm testing a patch to remove that initial clobber.

Ian


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