This is an archive of the discontinued LLVM Phabricator instance.

[Polly] Map isl_ast for nodes to LLVM Loops
Needs ReviewPublic

Authored by dpeixott on Sep 9 2014, 6:21 PM.

Details

Reviewers
bollu
jdoerfert
Summary

This commit implements a mapping from isl_ast_node_for ast nodes to
their original LLVM Loop* structures. The mapping is done based on
the dimension that moves in the innermost isl for loop. Each moving
dimension in the new innermost loop is mapped back to a (set of)
llvm loops that correspond to that original dimension.

The primary motivation for the mapping is to enable polly to read
the LLVM metadata associated with the loop and use that metadata to
drive the polly vectorizer.

Diff Detail

Event Timeline

dpeixott updated this revision to Diff 13507.Sep 9 2014, 6:21 PM
dpeixott retitled this revision from to [Polly] Map isl_ast for nodes to LLVM Loops.
dpeixott updated this object.
dpeixott added reviewers: jdoerfert, grosser.
dpeixott added a subscriber: Unknown Object (MLST).
jdoerfert edited edge metadata.Sep 11 2014, 1:03 AM

As soon as the last testcase is resolved this should be good to go.

test/Isl/Ast/llvm_loop_to_isl_ast_node_for_2d_flatten.ll
3

@grosser Do you have a good idea how we can spot and react when the isl AST creation removes dimensions?

I think we can spot it by counting but I don't know what to do when we spotted it. Is there any rule
in how isl can remove dimensions (e.g., only from outer to inner)?
grosser resigned from this revision.Feb 25 2016, 12:36 PM
grosser removed a reviewer: grosser.

This patch has not been updated since a long time. Pleae readd in case you want to resubmit this patch. Meanwhile I drop out to keep my queue empty.

jdoerfert resigned from this revision.Jun 4 2019, 10:05 PM