[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