On 11/21/2011 11:31 AM, Georg-Johann Lay wrote:
> ;; The caveat is that if there are insns for some mode, there must also be a
> ;; respective move insn that describes reloads.  Therefore, this
> ;; implementation uses an accumulator-based model with two hard-coded,
> ;; accumulator-like registers
> ;;
> ;;    A[] = reg:DI 18
> ;;    B[] = reg:DI 10
> ;;
> ;; so that no DImode insn contains pseudos or needs reloading.

Well, rtl loop optimization will not work, but given that SSE optimizations 
ought to have been performed, that's probably acceptable.

It's definitely a hack, but perhaps you'll be able to get away with it.

I do wonder if you might even get smaller code if you force DImode quantities 
into the stack (just hack use_register_for_decl locally while testing; a new 
target hook if that pans out), and pass pointers to the variables instead.  At 
the moment you're having to use 8*3 insns inline to put the quantities in place 
and take them back out again.  With pointers this would seem to drop to 2*3.


r~

Reply via email to