Page MenuHomePhabricator

[MemCpyOpt] Enable MemorySSA by default
Needs ReviewPublic

Authored by nikic on Sun, Jan 10, 12:11 PM.
This revision needs review, but there are no reviewers specified.

Details

Reviewers
None
Summary

This enables use of MemorySSA instead of MemDep in MemCpyOpt. To allow this without significant compile-time impact, the MemCpyOpt pass is moved directly before DSE (in the cases where this was not already the case) in order to avoid a duplicate MemorySSA construction.

With that done, this change is compile-time positive: http://llvm-compile-time-tracker.com/compare.php?from=f6f6f6375d1a4bced8a6e79a78726ab32b8dd879&to=3bef22406a62ae83712557038305cd135d1b1851&stat=instructions

Run-time impact is to be determined...

Diff Detail

Event Timeline

nikic created this revision.Sun, Jan 10, 12:11 PM
nikic requested review of this revision.Sun, Jan 10, 12:11 PM
Herald added a project: Restricted Project. · View Herald TranscriptSun, Jan 10, 12:11 PM

A larger than expected codesize and runtime regression of Bullet benchmark (2.3%) for LTO. Maybe worth to analyse?

Could you test clang as well, and update test?

nikic updated this revision to Diff 316520.Wed, Jan 13, 2:41 PM

Fix clang tests. Don't disable MemCpyOpt at O1 (previous version disabled it by accident).