We will strip the constant factor of a parameter befor we add it to the SCoP. As a result the access functions are simplified, e.g., for the attached test case.
Details
Diff Detail
Event Timeline
Hi Johannes,
this LGTM. I added some minor comments.
Tobias
include/polly/Support/SCEVValidator.h | ||
---|---|---|
55 | multiplication | |
57 | multiplication | |
lib/Analysis/ScopInfo.cpp | ||
201 | Maybe it is worth to adding a comment that explains why we can not get an infinitive recursion here, where ConstantAndLeftOverPair.second always contains a multiplication and on which we call visitMulExpr again. (The answer seems to be that in visit(Expr) we should stop and realize that the multiplication expression is a parameter expression.) | |
test/ScopInfo/constant_factor_in_parameter.ll | ||
4 | existentially |
multiplication