This is an archive of the discontinued LLVM Phabricator instance.

[NaryReassociate] Run EarlyCSE after NaryReassociate
ClosedPublic

Authored by jingyue on May 22 2015, 2:14 PM.

Details

Summary

This patch made two improvements to NaryReassociate and the NVPTX pipeline

  1. Run EarlyCSE/GVN after NaryReassociate to get rid of redundant common

expressions.

  1. When adding an instruction to SeenExprs, maps both the SCEV before and after

reassociation to that instruction.

Diff Detail

Event Timeline

jingyue updated this revision to Diff 26350.May 22 2015, 2:14 PM
jingyue retitled this revision from to [NaryReassociate] Run EarlyCSE/GVN after NaryReassociate.
jingyue updated this object.
jingyue edited the test plan for this revision. (Show Details)
jingyue added reviewers: broune, meheff.
jingyue added a subscriber: Unknown Object (MLST).

FWIW: Rerunning GVN can be *really* expensive.
I can make EarlyCSE really fast by removing the scoped hash table if
that works for you instead?

jingyue updated this revision to Diff 26353.May 22 2015, 2:48 PM

Run EarlyCSE instead of GVN

jingyue retitled this revision from [NaryReassociate] Run EarlyCSE/GVN after NaryReassociate to [NaryReassociate] Run EarlyCSE after NaryReassociate.May 27 2015, 4:20 PM
broune accepted this revision.May 27 2015, 5:31 PM
broune edited edge metadata.
This revision is now accepted and ready to land.May 27 2015, 5:31 PM
jingyue closed this revision.May 27 2015, 10:00 PM
meheff edited edge metadata.May 28 2015, 10:01 AM

Sorry for the delay. LGTM.