[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