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 | 434fb37bb4a1025eca9f0179d71cd3a711829c40 (patch) | |
tree | 3d6b16f6c6d8d6fb2a839223c72f08479ae05130 /clang/lib/CodeGen/CodeGenFunction.cpp | |
parent | a8879087b5d5de48a8c07f8cc6742b4f2509bbab (diff) | |
download | llvm-434fb37bb4a1025eca9f0179d71cd3a711829c40.zip llvm-434fb37bb4a1025eca9f0179d71cd3a711829c40.tar.gz llvm-434fb37bb4a1025eca9f0179d71cd3a711829c40.tar.bz2 |
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
llvm-svn: 147726
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
0 files changed, 0 insertions, 0 deletions