[llvm] r233930 - [LoopAccesses] Handle case when no memchecks are needed after partitioning

David Blaikie dblaikie at gmail.com
Thu Apr 2 11:15:33 PDT 2015


On Thu, Apr 2, 2015 at 11:09 AM, Adam Nemet <anemet at apple.com> wrote:

>
> On Apr 2, 2015, at 11:05 AM, David Blaikie <dblaikie at gmail.com> wrote:
>
> Test case? Or is this just a perf improvement?
>
>
> No it’s a bug fix because without this check we will use the null
> MemoryRuntimeCheck later.
>
> There should be a way to come up with a testcase even without Loop
> Distribution but it should be much easier with Loop Distribution.  Let me
> add a testcase for this as part of the LDist patch.  OK?
>

Sure - follow up here with the revision the test is committed in?


>
> Adam
>
> On Thu, Apr 2, 2015 at 10:51 AM, Adam Nemet <anemet at apple.com> wrote:
>
>> Author: anemet
>> Date: Thu Apr  2 12:51:57 2015
>> New Revision: 233930
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=233930&view=rev
>> Log:
>> [LoopAccesses] Handle case when no memchecks are needed after partitioning
>>
>> Modified:
>>     llvm/trunk/lib/Analysis/LoopAccessAnalysis.cpp
>>
>> Modified: llvm/trunk/lib/Analysis/LoopAccessAnalysis.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/LoopAccessAnalysis.cpp?rev=233930&r1=233929&r2=233930&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/lib/Analysis/LoopAccessAnalysis.cpp (original)
>> +++ llvm/trunk/lib/Analysis/LoopAccessAnalysis.cpp Thu Apr  2 12:51:57
>> 2015
>> @@ -1211,9 +1211,8 @@ static Instruction *getFirstInst(Instruc
>>
>>  std::pair<Instruction *, Instruction *> LoopAccessInfo::addRuntimeCheck(
>>      Instruction *Loc, const SmallVectorImpl<int> *PtrPartition) const {
>> -  Instruction *tnullptr = nullptr;
>>    if (!PtrRtCheck.Need)
>> -    return std::pair<Instruction *, Instruction *>(tnullptr, tnullptr);
>> +    return std::make_pair(nullptr, nullptr);
>>
>>    unsigned NumPointers = PtrRtCheck.Pointers.size();
>>    SmallVector<TrackingVH<Value> , 2> Starts;
>> @@ -1284,6 +1283,9 @@ std::pair<Instruction *, Instruction *>
>>      }
>>    }
>>
>> +  if (!MemoryRuntimeCheck)
>> +    return std::make_pair(nullptr, nullptr);
>> +
>>    // We have to do this trickery because the IRBuilder might fold the
>> check to a
>>    // constant expression in which case there is no Instruction anchored
>> in a
>>    // the block.
>>
>>
>> _______________________________________________
>> 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/20150402/0356a41a/attachment.html>


More information about the llvm-commits mailing list