This is an archive of the discontinued LLVM Phabricator instance.

Allow non-affine control flow -- SCoP Detection
ClosedPublic

Authored by jdoerfert on Feb 23 2015, 6:55 AM.

Details

Summary
With this patch we allow the SCoP detection to detect regions as SCoPs
which have non-affine control flow inside. All non-affine branches are
tracked and later accessible to the ScopInfo.

As there is no real difference, non-affine branches as well as floating
point branches are covered (and both called non-affine control flow).
Furthermore, conditionals as wells as loops with non-affine control
flow can be overapproximated as long as all loops have a computable
iteration count.

Diff Detail

Event Timeline

jdoerfert updated this revision to Diff 20510.Feb 23 2015, 6:55 AM
jdoerfert retitled this revision from to Allow non-affine control flow -- SCoP Detection.
jdoerfert updated this object.
jdoerfert added subscribers: Restricted Project, Unknown Object (MLST).
jdoerfert updated this revision to Diff 20560.Feb 23 2015, 5:37 PM

Made it region based and restricted it to regions without loops.

simbuerg added inline comments.Feb 24 2015, 1:28 AM
lib/Analysis/ScopDetection.cpp
665–668

Looks like an independent change

782

?

grosser accepted this revision.Feb 24 2015, 3:32 AM
grosser edited edge metadata.
grosser added inline comments.
include/polly/ScopDetection.h
139

remember

This revision is now accepted and ready to land.Feb 24 2015, 3:32 AM
jdoerfert closed this revision.Feb 24 2015, 3:52 AM

commited in r230325.