[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