LLVM: llvm::SplitAnalysis Class Reference (original) (raw)
SplitAnalysis - Analyze a LiveInterval, looking for live range splitting opportunities. More...
#include "[CodeGen/SplitKit.h](SplitKit%5F8h%5Fsource.html)"
| Classes | |
|---|---|
| struct | BlockInfo |
| Additional information about basic blocks where the current variable is live. More... |
| Public Member Functions | |
|---|---|
| SplitAnalysis (const VirtRegMap &vrm, const LiveIntervals &lis, const MachineLoopInfo &mli) | |
| void | analyze (const LiveInterval *li) |
| analyze - set CurLI to the specified interval, and analyze how it may be split. | |
| void | clear () |
| clear - clear all data structures so SplitAnalysis is ready to analyze a new interval. | |
| const LiveInterval & | getParent () const |
| getParent - Return the last analyzed interval. | |
| bool | isOriginalEndpoint (SlotIndex Idx) const |
| isOriginalEndpoint - Return true if the original live range was killed or (re-)defined at Idx. | |
| ArrayRef< SlotIndex > | getUseSlots () const |
| getUseSlots - Return an array of SlotIndexes of instructions using CurLI. | |
| ArrayRef< BlockInfo > | getUseBlocks () const |
| getUseBlocks - Return an array of BlockInfo objects for the basic blocks where CurLI has uses. | |
| unsigned | getNumThroughBlocks () const |
| getNumThroughBlocks - Return the number of through blocks. | |
| bool | isThroughBlock (unsigned MBB) const |
| isThroughBlock - Return true if CurLI is live through MBB without uses. | |
| const BitVector & | getThroughBlocks () const |
| getThroughBlocks - Return the set of through blocks. | |
| unsigned | getNumLiveBlocks () const |
| getNumLiveBlocks - Return the number of blocks where CurLI is live. | |
| bool | looksLikeLoopIV () const |
| unsigned | countLiveBlocks (const LiveInterval *li) const |
| countLiveBlocks - Return the number of blocks where li is live. | |
| bool | shouldSplitSingleBlock (const BlockInfo &BI, bool SingleInstrs) const |
| shouldSplitSingleBlock - Returns true if it would help to create a local live range for the instructions in BI. | |
| SlotIndex | getLastSplitPoint (unsigned Num) |
| SlotIndex | getLastSplitPoint (MachineBasicBlock *BB) |
| MachineBasicBlock::iterator | getLastSplitPointIter (MachineBasicBlock *BB) |
| SlotIndex | getFirstSplitPoint (unsigned Num) |
| Public Attributes | |
|---|---|
| const MachineFunction & | MF |
| const VirtRegMap & | VRM |
| const LiveIntervals & | LIS |
| const MachineLoopInfo & | Loops |
| const TargetInstrInfo & | TII |
SplitAnalysis - Analyze a LiveInterval, looking for live range splitting opportunities.
Definition at line 96 of file SplitKit.h.
◆ BlockPtrSet
◆ analyze()
analyze - set CurLI to the specified interval, and analyze how it may be split.
Definition at line 347 of file SplitKit.cpp.
References clear().
◆ clear()
| void SplitAnalysis::clear | ( | ) |
|---|
◆ countLiveBlocks()
◆ getFirstSplitPoint()
◆ getLastSplitPoint() [1/2]
◆ getLastSplitPoint() [2/2]
◆ getLastSplitPointIter()
◆ getNumLiveBlocks()
| unsigned llvm::SplitAnalysis::getNumLiveBlocks ( ) const | inline |
|---|
◆ getNumThroughBlocks()
| unsigned llvm::SplitAnalysis::getNumThroughBlocks ( ) const | inline |
|---|
◆ getParent()
getParent - Return the last analyzed interval.
Definition at line 185 of file SplitKit.h.
◆ getThroughBlocks()
| const BitVector & llvm::SplitAnalysis::getThroughBlocks ( ) const | inline |
|---|
getThroughBlocks - Return the set of through blocks.
Definition at line 209 of file SplitKit.h.
◆ getUseBlocks()
◆ getUseSlots()
getUseSlots - Return an array of SlotIndexes of instructions using CurLI.
This include both use and def operands, at most one entry per instruction.
Definition at line 196 of file SplitKit.h.
◆ isOriginalEndpoint()
◆ isThroughBlock()
| bool llvm::SplitAnalysis::isThroughBlock ( unsigned MBB) const | inline |
|---|
isThroughBlock - Return true if CurLI is live through MBB without uses.
Definition at line 206 of file SplitKit.h.
References MBB.
◆ looksLikeLoopIV()
| bool llvm::SplitAnalysis::looksLikeLoopIV ( ) const | inline |
|---|
◆ shouldSplitSingleBlock()
◆ LIS
◆ Loops
◆ MF
◆ TII
◆ VRM
The documentation for this class was generated from the following files:
- lib/CodeGen/SplitKit.h
- lib/CodeGen/SplitKit.cpp