diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-01-07 07:39:50 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-01-07 07:39:50 +0000 |
commit | 34786a3ad760b9901912f70a8a17fd85e0643f21 (patch) | |
tree | eb40be5a444219e13823ca3c90b249853277a3a5 /lib/CodeGen/MachineCopyPropagation.cpp | |
parent | 4281e20aab7f1fe1b35b31c9237ad89c20937e02 (diff) |
Optimize reserved register coalescing.
Reserved registers don't have proper live ranges, their LiveInterval
simply has a snippet of liveness for each def. Virtual registers with a
single value that is a copy of a reserved register (typically %esp) can
be coalesced with the reserved register if the live range doesn't
overlap any reserved register defs.
When coalescing with a reserved register, don't modify the reserved
register live range. Just leave it as a bunch of dead defs. This
eliminates quadratic coalescer behavior in i386 functions with many
function calls.
PR11699
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147726 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/MachineCopyPropagation.cpp')
0 files changed, 0 insertions, 0 deletions