aboutsummaryrefslogtreecommitdiffstats
path: root/utils
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
commit34786a3ad760b9901912f70a8a17fd85e0643f21 (patch)
treeeb40be5a444219e13823ca3c90b249853277a3a5 /utils
parent4281e20aab7f1fe1b35b31c9237ad89c20937e02 (diff)
downloadexternal_llvm-34786a3ad760b9901912f70a8a17fd85e0643f21.zip
external_llvm-34786a3ad760b9901912f70a8a17fd85e0643f21.tar.gz
external_llvm-34786a3ad760b9901912f70a8a17fd85e0643f21.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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147726 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
0 files changed, 0 insertions, 0 deletions