[MachineCopyPropagation] Reimplement CopyTracker in terms of register units
authorJustin Bogner <mail@justinbogner.com>
Tue, 25 Sep 2018 05:16:44 +0000 (05:16 +0000)
committerJustin Bogner <mail@justinbogner.com>
Tue, 25 Sep 2018 05:16:44 +0000 (05:16 +0000)
commite15248362352c549561cda871bd952842e1db620
treecbff6213479880971f543405681ba462402b43c6
parent99bfa95ae3d03bd4a822377e21b7a4d22452c3a5
[MachineCopyPropagation] Reimplement CopyTracker in terms of register units

Change the copy tracker to keep a single map of register units instead
of 3 maps of registers. This gives a very significant compile time
performance improvement to the pass. I measured a 30-40% decrease in
time spent in MCP on x86 and AArch64 and much more significant
improvements on out of tree targets with more registers.

Differential Revision: https://reviews.llvm.org/D52374

llvm-svn: 342942
llvm/lib/CodeGen/MachineCopyPropagation.cpp