This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: BLK mode move pattern ?
- From: Martien de Jong <maurits dot de dot jong at ericsson dot com>
- To: Jeff Law <law at redhat dot com>
- Cc: <gcc-help at gcc dot gnu dot org>
- Date: Thu, 13 Oct 2016 15:05:49 +0100
- Subject: Re: BLK mode move pattern ?
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=none (sender IP is ) smtp.mailfrom=maurits dot de dot jong at ericsson dot com;
- References: <8332453c-45c9-0b1c-2843-5560173b00e9@ericsson.com> <856d6c1a-54d4-c1ca-ce7b-99b2cda17703@redhat.com>
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:99
Hi,
Sorry to bother you again, but I am stuck.
First, movmem is only invoked if move_by_pieces gives up,
which means it will expand using DImode moves before attempting
movmem. I have tweaked MOVE_RATIO for now, but that is far
from optimal (! by_pieces, ! memmov => libcall).
Second, can I use TI mode in my movti_internal? I guess reload will have
trouble handling any TI register (and I have seen some reload failures
in my experiments,) since it will look for movti in vain.
If I can't use TI mode, how do I tell the register allocator the size
of the quad register?
Kind regards,
Martien
On 12/10/16 17:54, Jeff Law wrote:
I'd look at defining a movmem/movstr patterns.
That may in turn involve creating a pattern which implements movti, but
don't call it movti. Lots of stuff is going to trigger off the
existence of movXX patterns, which is precisely what you're trying to
avoid. So change the name of your pattern from "movti" to
"movti_internal" or somesuch. You can then generate that pattern via
gen_movti_internal (args...)