[LLVMdev] Landing my new development on the trunk ...

Brian West bnwest at rice.edu
Mon Nov 15 07:38:56 PST 2010


On 11/13/10 11:05 PM, Daniel Berlin wrote:
>
>     A big downside of the current LSR algorithm is it's slow.  I had
>     initially
>     hoped that some of the heuristics would protect it better, but the
>     problem is
>     more complex than I had expected.  I haven't done any measurements,
>     but it's likely that OSR is faster, which may interest some people
>     regardless
>     of how the output compares.
>
>
> There is one thing both the original paper, the original MSCP 
> implementation did (too bad the links to this point to ftp.cs.rice.edu 
> <http://ftp.cs.rice.edu>, which no longer works, the web files were a 
> great implementation resource) , and my GCC implementation did, which 
> is LFTR (Linear Function Test Replacement). LFTR after OSR can help 
> reduce register pressure since it enables eliminating the IV's that no 
> longer serve any useful purpose.  I don't see any implementation in 
> this code.
>
> --Dan
Dan,

LFTR (Linear Function Test Replacement) was mentioned in the original 
paper.  I considered including LFTR with OSR, but decided to get OSR to 
trunk first and then add LFTR (-lftr) as a separate pass later.  The 
LLVM development documentation suggests that new work be committed 
piecemeal over time.

LLVM does have an optimization pass, -instcombine, which will delete 
unused induction variables. I recommend that -instcombine be run after 
OSR.  It is my understanding that LFTR would attempt to remove induction 
variables whose only use is to participate in an end-loop-of-loop test 
condition.

thanks for your comments,
Brian West

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20101115/a1fb2e9b/attachment.html>


More information about the llvm-dev mailing list