This is an archive of the discontinued LLVM Phabricator instance.

[Polly] Added support for modulo accesses
ClosedPublic

Authored by jdoerfert on Aug 11 2014, 10:01 AM.

Details

Summary
The support is limited to signed modulo access expressions with a
constant right hand side, e.g., A[i % 2]. Test cases are modified
according to this new feature and two new test cases to test the
functionality are added. A test case for not yet supported modulo
conditions is added too.

Diff Detail

Event Timeline

jdoerfert updated this revision to Diff 12347.Aug 11 2014, 10:01 AM
jdoerfert retitled this revision from to [Polly] Added support for modulo accesses.
jdoerfert updated this object.
jdoerfert edited the test plan for this revision. (Show Details)
jdoerfert added a reviewer: grosser.
jdoerfert added a subscriber: Unknown Object (MLST).
jdoerfert added a project: Restricted Project.Aug 11 2014, 10:05 AM
jdoerfert updated this revision to Diff 12380.Aug 11 2014, 7:22 PM

Updated version with more test cases

jdoerfert updated this revision to Diff 12381.Aug 11 2014, 7:23 PM

Updated version with more test cases

jdoerfert updated this revision to Diff 12403.Aug 12 2014, 10:18 AM

Adjustments to catch different SCEV representations of modulo expressions

I have some stylistic comments inline, the rest looks good to me.

lib/Analysis/ScopInfo.cpp
179

capture

188

Here 'auto' is ok, because I can infer the type from the context on the same line (imho).

191

I would use the type here instead of 'auto'.

192

I would use the type here instead of 'auto'.

311

Now you're not using 'auto', why?

lib/Support/SCEVValidator.cpp
161

capture

172

I would use the type here.

379

Consistency: auto?

Thanks for the feedback,.. you're right all the time, I should be more consistent.

I'll fix everything and commit it then.

jdoerfert closed this revision.Aug 14 2014, 6:23 PM
jdoerfert updated this revision to Diff 12537.

Closed by commit rL215684 (authored by @jdoerfert).

test/ScopDetect/non_affine_but_modulo_condition.ll