LLVM API Documentation

Public Member Functions
llvm::LiveRangeUpdater Class Reference

#include <LiveInterval.h>

List of all members.

Public Member Functions

 LiveRangeUpdater (LiveRange *lr=nullptr)
 ~LiveRangeUpdater ()
void add (LiveRange::Segment)
void add (SlotIndex Start, SlotIndex End, VNInfo *VNI)
bool isDirty () const
void flush ()
void setDest (LiveRange *lr)
 Select a different destination live range.
LiveRangegetDest () const
 Get the current destination live range.
void dump () const
void print (raw_ostream &) const

Detailed Description

Helper class for performant LiveRange bulk updates.

Calling LiveRange::addSegment() repeatedly can be expensive on large live ranges because segments after the insertion point may need to be shifted. The LiveRangeUpdater class can defer the shifting when adding many segments in order.

The LiveRange will be in an invalid state until flush() is called.

Definition at line 589 of file LiveInterval.h.


Constructor & Destructor Documentation

Create a LiveRangeUpdater for adding segments to LR. LR will temporarily be in an invalid state until flush() is called.

Definition at line 600 of file LiveInterval.h.

Definition at line 602 of file LiveInterval.h.

References flush().


Member Function Documentation

Add a segment to LR and coalesce when possible, just like LR.addSegment(). Segments should be added in increasing start order for best performance.

Definition at line 723 of file LiveInterval.cpp.

References coalescable(), llvm::LiveRange::Segment::end, llvm::LiveRange::end(), llvm::LiveRange::Segment::start, and llvm::LiveRange::Segment::valno.

Referenced by add(), llvm::LiveRange::join(), llvm::LiveRange::MergeSegmentsInAsValue(), and llvm::LiveRange::MergeValueInAsValue().

void llvm::LiveRangeUpdater::add ( SlotIndex  Start,
SlotIndex  End,
VNInfo VNI 
) [inline]

Definition at line 609 of file LiveInterval.h.

References add().

void LiveRangeUpdater::dump ( ) const

Definition at line 706 of file LiveInterval.cpp.

References llvm::errs(), and llvm::LiveRange::print().

Flush the updater state to LR so it is valid and contains all added segments.

Definition at line 823 of file LiveInterval.cpp.

Referenced by setDest(), and ~LiveRangeUpdater().

Get the current destination live range.

Definition at line 629 of file LiveInterval.h.

Return true if the LR is currently in an invalid state, and flush() needs to be called.

Definition at line 615 of file LiveInterval.h.

References llvm::SlotIndex::isValid().

Referenced by setDest().

void LiveRangeUpdater::print ( raw_ostream OS) const

Definition at line 683 of file LiveInterval.cpp.

References I.

Referenced by llvm::operator<<().

void llvm::LiveRangeUpdater::setDest ( LiveRange lr) [inline]

Select a different destination live range.

Definition at line 622 of file LiveInterval.h.

References flush(), and isDirty().


The documentation for this class was generated from the following files: