This is an archive of the discontinued LLVM Phabricator instance.

[Polly][PoC] First (smarter) step to remove IndependentBlocks & CodeGeneration
AbandonedPublic

Authored by jdoerfert on Oct 12 2014, 11:03 PM.

Details

Summary
This is a proof of concept that we can model the SCoP and the
dependences as accurate as before even witout IndependentBlocks
and CodePreparation. It should help to start a discussion about
Polly as analyzer and make it more applicable at some point.

Changes include:
  - Remove the CodeGeneration pass and tests
  - Remove the IndependentBlocks pass and tests
  - Removed some tests only testing the passes above (not all though)
  - Modified some tests that were failing without good reason
  - Allowed PHI nodes in ScopDetection
  - Changed the SCoP creation to allow the proper handling of PHIs
  - Modelt PHI nodes precicly in the SCoP
  - Enabled -polly-codegen-scev and disabled "DisableIntraScopScalarToArray"
  - A test case for non synthesizable PHI nodes
    (test/ScopInfo/phi_scalar_simple_1.ll)

Features include:
  - Only PHI nodes needed are represented in the SCoP, PHI chains
    can therefore be reduced if they do not change the value. This
    should also "look through" trivial PHIs, similar to the old code
    prepare pass.

Missing changes:
  - The code generation will not be able to handle PHI nodes properly

Thoughts of any kind are welcome.

Diff Detail

Event Timeline

jdoerfert updated this revision to Diff 14783.Oct 12 2014, 11:03 PM
jdoerfert retitled this revision from to [Polly][PoC] First (smarter) step to remove IndependentBlocks & CodeGeneration.
jdoerfert updated this object.
jdoerfert added subscribers: Restricted Project, Unknown Object (MLST).
jdoerfert planned changes to this revision.Feb 2 2015, 12:12 PM

I will chuck this patch in pieces and recommit them.

jdoerfert abandoned this revision.Feb 2 2015, 12:12 PM
test/Isl/CodeGen/loop_with_condition_nested.ll