aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineInstr.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2012-08-09 22:49:46 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2012-08-09 22:49:46 +0000
commitdf01e00710f1eec6e22a4194b46ee8af5d0a7f29 (patch)
tree72f3253bbecfd1d6ef6feb001c6d8d6e600710ae /llvm/lib/CodeGen/MachineInstr.cpp
parent7d7051ca3ca050eb2d9df850fa7f7db1605a559c (diff)
downloadllvm-df01e00710f1eec6e22a4194b46ee8af5d0a7f29.zip
llvm-df01e00710f1eec6e22a4194b46ee8af5d0a7f29.tar.gz
llvm-df01e00710f1eec6e22a4194b46ee8af5d0a7f29.tar.bz2
Partition use lists so defs always come before uses.
This makes it possible to speed up def_iterator by stopping at the first use. This makes def_empty() and getUniqueVRegDef() much faster when there are many uses. In a +Asserts build, LiveVariables is 100x faster in one case because getVRegDef() has an assertion that would scan to the end of a def_iterator chain. Spill weight calculation is significantly faster (300x in one case) because isTriviallyReMaterializable() calls MRI->isConstantPhysReg(%RIP) which calls def_empty(%RIP). llvm-svn: 161634
Diffstat (limited to 'llvm/lib/CodeGen/MachineInstr.cpp')
0 files changed, 0 insertions, 0 deletions