Patch. Fix redundent copies between nodes with different but compatible register classes

Yin Ma yinma at codeaurora.org
Mon Oct 14 11:20:30 PDT 2013


Hi Tim,

For thumb code, register coalescing cannot remove all copies that could be
removed
by this patch.  If you apply this patch and do a comparison, you will see
the difference.
Because the copy is removed from the very beginning, it will make all
backend passes
more efficient. It will also improve compilation speed. 

I have attached the test case we used for this patch. 

Thanks for reviewing. 

Yin 

-----Original Message-----
From: Tim Northover [mailto:t.p.northover at gmail.com] 
Sent: Monday, October 07, 2013 12:07 PM
To: Yin Ma
Cc: llvm-commits
Subject: Re: Patch. Fix redundent copies between nodes with different but
compatible register classes

Hi Yin,

> This patch will remove the copy between def-use nodes with two 
> different but compatible register classes.

What's the purpose of this patch? If it's purely to decrease compile-time,
then it may be ok. If it's an actual change to codegen:

1. Shouldn't register-coalescing be where this is dealt with? That's the
code which is designed to see through super/sub-register copies.
2. It presumably has an effect on code. Could we have a test?

Cheers.

Tim.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rccopy-remove.ii
Type: application/octet-stream
Size: 2523 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131014/be8b6bdf/attachment.obj>


More information about the llvm-commits mailing list