diff options
author | Hal Finkel <hfinkel@anl.gov> | 2015-01-15 01:25:28 +0000 |
---|---|---|
committer | Hal Finkel <hfinkel@anl.gov> | 2015-01-15 01:25:28 +0000 |
commit | 8299646236a11df360b3d6c7e9c53babbb785e02 (patch) | |
tree | 88fe2dfb0a07bbf1740bd0dabbc29adaf5f26dca /lldb/source/Breakpoint/Breakpoint.cpp | |
parent | 64202167c59c95ebec033f7ed6e3ef0e8f420c91 (diff) | |
download | bcm5719-llvm-8299646236a11df360b3d6c7e9c53babbb785e02.tar.gz bcm5719-llvm-8299646236a11df360b3d6c7e9c53babbb785e02.zip |
[RegisterCoalescer] Remove copies to reserved registers
This allows the RegisterCoalescer to join "non-flipped" range pairs with a
physical destination register -- which allows the RegisterCoalescer to remove
copies like this:
<vreg> = something (maybe a load, for example)
... (things that don't use PHYSREG)
PHYSREG = COPY <vreg>
(with all of the restrictions normally applied by the RegisterCoalescer: having
compatible register classes, etc. )
Previously, the RegisterCoalescer handled only the opposite case (copying
*from* a physical register). I don't handle the problem fully here, but try to
get the common case where there is only one use of <vreg> (the COPY).
An upcoming commit to the PowerPC backend will make this pattern much more
common on PPC64/ELF systems.
llvm-svn: 226071
Diffstat (limited to 'lldb/source/Breakpoint/Breakpoint.cpp')
0 files changed, 0 insertions, 0 deletions