aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenFunction.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2012-01-07 07:39:50 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2012-01-07 07:39:50 +0000
commit434fb37bb4a1025eca9f0179d71cd3a711829c40 (patch)
tree3d6b16f6c6d8d6fb2a839223c72f08479ae05130 /clang/lib/CodeGen/CodeGenFunction.cpp
parenta8879087b5d5de48a8c07f8cc6742b4f2509bbab (diff)
downloadllvm-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