[llvm-commits] [llvm] r85016 - /llvm/trunk/lib/Transforms/Scalar/LoopRotation.cpp

Chris Lattner clattner at apple.com
Sat Oct 24 18:20:52 PDT 2009


On Oct 24, 2009, at 4:19 PM, Dan Gohman wrote:

> Author: djg
> Date: Sat Oct 24 18:19:52 2009
> New Revision: 85016
>
> URL: http://llvm.org/viewvc/llvm-project?rev=85016&view=rev
> Log:
> Rewrite LoopRotation's SSA updating code using SSAUpdater.

Awesome, I didn't remember loop rotate had its own ssa update code.

If, in your travels, you run into any cases where SSAUpdate is a  
significant compile time issue, please give me a testcase.  I have  
many less-than-crazy ideas for speeding it up.

> +
> +  // Now fix up users of the instructions in OrigHeader, insertting  
> PHI nodes

typo insertting.

> +  // as necessary.
> +  SSAUpdater SSA;
> +  for (I = OrigHeader->begin(); I != E; ++I) {
> +    Value *OrigHeaderVal = I;

Most instructions only have uses within their block and these don't  
need to be rewritten.  It would improve efficiency to do something  
like this if it is safe:
   if (I->hasOneUse() && I->use_back()->getParent() == I &&
       !isa<PHINode>(I->use_back()))
     continue;

Thanks for updating looprotate!

-Chris



More information about the llvm-commits mailing list