[PATCH] Pass QueryInst down through non-local dependency calculation

Philip Reames listmail at philipreames.com
Fri Jan 23 17:37:02 PST 2015


ping x2

On 01/16/2015 11:35 AM, Philip Reames wrote:
> ping
>
> On 01/09/2015 09:43 AM, Philip Reames wrote:
>> Hi hfinkel, atrick, morisset, void, bob.wilson,
>>
>> This change is mostly motivated by exposing information about the 
>> original query instruction to the actual scanning work in 
>> getNonLocalInfoInBlock when used by GVN PRE.  In a follow up change, 
>> I will use this to be more precise with regards to the semantics of 
>> volatile instructions encountered in the scan of a basic block.
>>
>> Worth noting, is that this change (despite appearing quite simple) is 
>> not semantically preserving.  By providing more information to the 
>> helper routine, we allow some optimizations to kick in that weren't 
>> previously able to (when called from this code path.)  In particular, 
>> we see that treatment of !invariant.load becomes more precise.  In 
>> theory, we might see a difference with an ordered/atomic instruction 
>> as well, but I'm having a hard time actually finding a test case 
>> which shows that.
>>
>> Test wise, I've included new tests for !invariant.load which 
>> illustrate this difference.
>>
>> I've also included some updated TBAA tests which highlight that this 
>> change isn't needed for that optimization to kick in - it's handled 
>> inside alias analysis itself.  Arguably, these might call for being 
>> submitted separately.  I don't have a strong preference either way 
>> and will defer to the reviewers.
>>
>> Eventually, it would be nice to factor the !invariant.load handling 
>> inside alias analysis as well.
>>
>> http://reviews.llvm.org/D6895
>>
>> Files:
>>    include/llvm/Analysis/MemoryDependenceAnalysis.h
>>    lib/Analysis/MemoryDependenceAnalysis.cpp
>>    test/Transforms/GVN/invariant-load.ll
>>    test/Transforms/GVN/tbaa.ll
>>
>> EMAIL PREFERENCES
>>    http://reviews.llvm.org/settings/panel/emailpreferences/
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list