[PATCH] D10386: [LAA] Merge memchecks for accesses separated by a constant offset

silviu.baranga at arm.com silviu.baranga at arm.com
Wed Jul 15 09:42:19 PDT 2015


sbaranga added a comment.

Hi Adam,

In http://reviews.llvm.org/D10386#202281, @anemet wrote:

> In http://reviews.llvm.org/D10386#201889, @sbaranga wrote:
>
> > Ok, that makes sense. I already have the updated veto-ing algorithm, but I'd like to add it under a different review instead of rolling everything back. Is that ok with you?
>
>
> Sure, thanks.


I'm still having trouble with producing a testcase for the 'veto' approach.

Looking at the logic in analyzeLoops:

In order to need memory checks, first we need Accesses.isDependencyCheckNeeded() to evaluate to true.
Since we need an unknown dependence between two objects to get into the 'veto' case, it follows that areDepsSafe will return false (we have al least one unknown dependence).

This causes us to take the "!CanVecMem && DepChecker.shouldRetryWithRuntimeCheck()" branch and reset the dependence checks, which in turn will cause us to not group pointers.

I'm sure we could end up in the 'veto' case by tweaking the logic in 'analyzeLoops', but not sure how to do that without this. Can you see any issues with the reasoning above?

Thanks,
Silviu


Repository:
  rL LLVM

http://reviews.llvm.org/D10386







More information about the llvm-commits mailing list