------- Comment #21 from bonzini at gnu dot org 2007-12-19 12:43 ------- Created an attachment (id=14793) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14793&action=view) two hunks only from the previous patch
Indeed, if I only use the regclass.c and local-alloc.c hunks, I get only one spill! pushl %ebx movl 8(%esp), %edx movl 16(%esp), %eax movl 20(%esp), %ecx imull %edx, %ecx movl 12(%esp), %ebx imull %eax, %ebx addl %ebx, %ecx mull %edx leal (%ecx,%edx), %edx popl %ebx and no reg-reg move. With Uros' patch it does use memory imull's, but also adds reg-reg moves. The next step should be to figure out why (with my patch and without his) reload feels the need to put the memory operands from insns 7 and 8 into regs. -- bonzini at gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #14792|0 |1 is obsolete| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17236