On 10/13/2016 08:05 AM, Martien de Jong wrote:
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).
Right. That's the path I expected you to be able to exploit. I'd
expect you to have to twiddle MOVE_RATIO and perhaps code in the expanders.
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?
Yes, you should be able to use TImode in movti_internal. You may need
to tweak other things that direct reload but as long as you don't have a
movti named pattern, much of the pain can be avoided.
This is all going to take some hacking on your part.
jeff