[llvm-commits] [llvm] r125254 - /llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp

Cameron Zwarich zwarich at apple.com
Wed Feb 9 21:14:04 PST 2011


I found the cause of the problem:

Bug 9187 - LoopStrengthReduce violates LoopPass rules
http://llvm.org/bugs/show_bug.cgi?id=9187

Cameron

On Feb 9, 2011, at 8:08 PM, Cameron Zwarich wrote:

> Thanks. I managed to bugpoint a test case from test-suite and am investigating now.
> 
> Cameron
> 
> On Feb 9, 2011, at 5:52 PM, Eric Christopher wrote:
> 
>> Hey Cameron,
>> 
>> I reverted this in an attempt to bring the builders back.
>> 
>> Thanks!
>> 
>> -eric
>> 
>> On Feb 9, 2011, at 5:07 PM, Cameron Zwarich wrote:
>> 
>>> Author: zwarich
>>> Date: Wed Feb  9 19:07:54 2011
>>> New Revision: 125254
>>> 
>>> URL: http://llvm.org/viewvc/llvm-project?rev=125254&view=rev
>>> Log:
>>> Turn this pass ordering:
>>> 
>>> Natural Loop Information
>>> Loop Pass Manager
>>>   Canonicalize natural loops
>>> Scalar Evolution Analysis
>>> Loop Pass Manager
>>>   Induction Variable Users
>>>   Canonicalize natural loops
>>>   Induction Variable Users
>>>   Loop Strength Reduction
>>> 
>>> into this:
>>> 
>>> Scalar Evolution Analysis
>>> Loop Pass Manager
>>>  Canonicalize natural loops
>>>  Induction Variable Users
>>>  Loop Strength Reduction
>>> 
>>> This fixes <rdar://problem/8869639>. I also filed PR9184 on doing this sort of
>>> thing automatically, but it seems easier to just change the ordering of the
>>> passes if this is the only case.
>>> 
>>> Modified:
>>>    llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp
>>> 
>>> Modified: llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp
>>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp?rev=125254&r1=125253&r2=125254&view=diff
>>> ==============================================================================
>>> --- llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp (original)
>>> +++ llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp Wed Feb  9 19:07:54 2011
>>> @@ -3815,15 +3815,15 @@
>>> void LoopStrengthReduce::getAnalysisUsage(AnalysisUsage &AU) const {
>>>   // We split critical edges, so we change the CFG.  However, we do update
>>>   // many analyses if they are around.
>>> -  AU.addPreservedID(LoopSimplifyID);
>>> 
>>> -  AU.addRequired<LoopInfo>();
>>> -  AU.addPreserved<LoopInfo>();
>>> -  AU.addRequiredID(LoopSimplifyID);
>>>   AU.addRequired<DominatorTree>();
>>>   AU.addPreserved<DominatorTree>();
>>>   AU.addRequired<ScalarEvolution>();
>>>   AU.addPreserved<ScalarEvolution>();
>>> +  AU.addRequired<LoopInfo>();
>>> +  AU.addPreserved<LoopInfo>();
>>> +  AU.addRequiredID(LoopSimplifyID);
>>> +  AU.addPreservedID(LoopSimplifyID);
>>>   AU.addRequired<IVUsers>();
>>>   AU.addPreserved<IVUsers>();
>>> }
>>> 
>>> 
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20110209/c9f8b1a8/attachment.html>


More information about the llvm-commits mailing list