[PATCH] D62610: [DA] Add an option to control delinearization validity checks

Bardia via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu May 30 14:42:33 PDT 2019

bmahjour added a comment.

In D62610#1523995 <https://reviews.llvm.org/D62610#1523995>, @dmgreen wrote:

> As a debugging tool, this sounds fine. Not so sure about the tests, but I guess they are not hurting anyone :) And show good room for improvement.
> Do you have any ideas how we might get the llvm form of them we have here (not the c form) to give good DA results without the miscompiles that the new option would produce? I was wondering if it was worth trying to get DA to return a dependency that is conditional on a set of predicates. Clients (we only have 3 at the moment) could treat predicated dependencies as "confused", or version the loop based on them.

The tests are adding a bit more coverage. Of all the tests currently available only three tests in DADelin.ll are checking for loop nests with consistent, non-scalar loop carried dependencies  and those are all using 32-bit addressing mode and none has a runtime loop lower-bound.

I'm not sure having the predicated dependencies will make them more usable in practice, since loop versioning is highly undesirable (due to code bloat and introduction of new branches) especially as the number of transformations that rely on dependence analysis increase in the loop optimization pipeline.




More information about the llvm-commits mailing list