[PATCH 3/3] Auto-compute live intervals on demand.

Mark Lacey mark.lacey at apple.com
Wed Aug 14 15:44:08 PDT 2013


When new virtual registers are created during splitting/spilling, defer
creation of the live interval until we need to use the live interval.

Along with the recent commits to notify LiveRangeEdit when new virtual
registers are created, this makes it possible for functions like
TargetInstrInfo::loadRegFromStackSlot() and
TargetInstrInfo::storeRegToStackSlot() to create multiple virtual
registers as part of the process of generating loads/stores for
different register classes, and then have the live intervals for those
new registers computed when they are needed.
---
include/llvm/CodeGen/LiveIntervalAnalysis.h |  30 ++++--
include/llvm/CodeGen/LiveRangeEdit.h        |  11 ++-
include/llvm/CodeGen/MachineBasicBlock.h    |  25 +++++
lib/CodeGen/InlineSpiller.cpp               | 139 +++++++++++++++++-----------
lib/CodeGen/LiveIntervalAnalysis.cpp        |   9 +-
lib/CodeGen/LiveRangeEdit.cpp               |  14 ++-
lib/CodeGen/PHIElimination.cpp              |   2 +-
lib/CodeGen/Spiller.cpp                     |  31 +++----
lib/CodeGen/SplitKit.cpp                    |   6 +-
lib/CodeGen/StrongPHIElimination.cpp        |   4 +-
10 files changed, 170 insertions(+), 101 deletions(-)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-Auto-compute-live-intervals-on-demand.patch
Type: text/x-patch
Size: 22379 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130814/8a7200ef/attachment.bin>


More information about the llvm-commits mailing list