This is an archive of the discontinued LLVM Phabricator instance.

[NaryReassociate] run NaryReassociate iteratively
ClosedPublic

Authored by jingyue on Apr 16 2015, 1:49 PM.

Details

Summary

An alternative is to use a worklist approach. However, that approach
would break the traversing order so that we couldn't lookup SeenExprs
efficiently. I don't see a clear winner here, so I picked the easier approach.

Along with two minor improvements:

  1. preserves ScalarEvolution by forgetting instructions replaced
  2. removes dead code locally avoiding the need of running DCE afterwards

Diff Detail

Event Timeline

jingyue updated this revision to Diff 23878.Apr 16 2015, 1:49 PM
jingyue retitled this revision from to [NaryReassociate] run NaryReassociate iteratively.
jingyue updated this object.
jingyue edited the test plan for this revision. (Show Details)
jingyue added reviewers: atrick, broune, dberlin, meheff.
jingyue added a subscriber: Unknown Object (MLST).
atrick accepted this revision.Apr 16 2015, 2:54 PM
atrick edited edge metadata.

LGTM

This revision is now accepted and ready to land.Apr 16 2015, 2:54 PM
jingyue closed this revision.Apr 16 2015, 5:28 PM