This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
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