[PATCH] D14296: [LV][LAA] Add a layer over SCEV to apply run-time checked knowledge on SCEV expressions

James Molloy via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 11 05:32:00 PST 2015


jmolloy added a subscriber: jmolloy.
jmolloy added a comment.

Hi,

So most of this patch is just plumbing and renaming - the guts is the addition of SCEVPredicateLayer.

Bikeshedding: I'm not too happy with the name. SCEV is the prefix used for the internal node types of ScalarEvolution. Something like PredicatedScalarEvolution might sound better?

I'm a bit worried about how easy it is to subvert the predicated mechanism. For example:

  PSE.getSCEV(); // Gets a scev under a predicate
  PSE.getSE()->getSCEV(); // Gets a scev not under a predicate

And there are places in LoopVectorize that sem to use "PSE.getSE()" quite a bit... are we sure they aren't subverting the predicates? If they do, is that a correctness or a performance issue?

If it's just a performance thing, it might be nice to make use of ScalarEvolution even easier by defining an operator->/operator* so you can do

  PSE->getEqualPredicate();
  PSE.getSCEV();

James


http://reviews.llvm.org/D14296





More information about the llvm-commits mailing list