mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-06 06:33:24 +00:00
Fix header file comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8776 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e97fbed83a
commit
5259f8d030
@ -1,62 +1,29 @@
|
||||
/* Title: FunctionLiveVarInfo.h -*- C++ -*-
|
||||
Author: Ruchira Sasanka
|
||||
Date: Jun 30, 01
|
||||
Purpose:
|
||||
|
||||
This is the interface for live variable info of a function that is required
|
||||
by any other part of the compiler
|
||||
|
||||
It must be called like:
|
||||
|
||||
FunctionLiveVarInfo FLVI(Function *); // initializes data structures
|
||||
FLVI.analyze(); // do the actural live variable anal
|
||||
|
||||
After the analysis, getInSetOfBB or getOutSetofBB can be called to get
|
||||
live var info of a BB.
|
||||
|
||||
The live var set before an instruction can be obtained in 2 ways:
|
||||
|
||||
1. Use the method getLiveVarSetAfterInst(Instruction *) to get the LV Info
|
||||
just after an instruction. (also exists getLiveVarSetBeforeInst(..))
|
||||
|
||||
This function caluclates the LV info for a BB only once and caches that
|
||||
info. If the cache does not contain the LV info of the instruction, it
|
||||
calculates the LV info for the whole BB and caches them.
|
||||
|
||||
Getting liveVar info this way uses more memory since, LV info should be
|
||||
cached. However, if you need LV info of nearly all the instructions of a
|
||||
BB, this is the best and simplest interfrace.
|
||||
|
||||
|
||||
2. Use the OutSet and applyTranferFuncForInst(const Instruction *const Inst)
|
||||
declared in LiveVarSet and traverse the instructions of a basic block in
|
||||
reverse (using const_reverse_iterator in the BB class).
|
||||
|
||||
This is the most memory efficient method if you need LV info for
|
||||
only several instructions in a BasicBlock. An example is given below:
|
||||
|
||||
|
||||
LiveVarSet LVSet; // this will be the set used to traverse through each BB
|
||||
|
||||
// Initialize LVSet so that it is the same as OutSet of the BB
|
||||
LVSet.setUnion( LVI->getOutSetOfBB( *BBI ) );
|
||||
|
||||
BasicBlock::InstListType::const_reverse_iterator
|
||||
InstIterator = InstListInBB.rbegin(); // get the rev iter for inst in BB
|
||||
|
||||
// iterate over all the instructions in BB in reverse
|
||||
for( ; InstIterator != InstListInBB.rend(); InstIterator++) {
|
||||
|
||||
//...... all code here which uses LVSet ........
|
||||
|
||||
LVSet.applyTranferFuncForInst(*InstIterator);
|
||||
|
||||
// Now LVSet contains live vars ABOVE the current instrution
|
||||
}
|
||||
|
||||
See buildInterferenceGraph() for the above example.
|
||||
*/
|
||||
|
||||
//===-- CodeGen/FunctionLiveVarInfo.h - LiveVar Analysis --------*- C++ -*-===//
|
||||
//
|
||||
// This is the interface for live variable info of a function that is required
|
||||
// by any other part of the compiler
|
||||
//
|
||||
// After the analysis, getInSetOfBB or getOutSetofBB can be called to get
|
||||
// live var info of a BB.
|
||||
//
|
||||
// The live var set before an instruction can be obtained in 2 ways:
|
||||
//
|
||||
// 1. Use the method getLiveVarSetAfterInst(Instruction *) to get the LV Info
|
||||
// just after an instruction. (also exists getLiveVarSetBeforeInst(..))
|
||||
//
|
||||
// This function caluclates the LV info for a BB only once and caches that
|
||||
// info. If the cache does not contain the LV info of the instruction, it
|
||||
// calculates the LV info for the whole BB and caches them.
|
||||
//
|
||||
// Getting liveVar info this way uses more memory since, LV info should be
|
||||
// cached. However, if you need LV info of nearly all the instructions of a
|
||||
// BB, this is the best and simplest interfrace.
|
||||
//
|
||||
// 2. Use the OutSet and applyTranferFuncForInst(const Instruction *const Inst)
|
||||
// declared in LiveVarSet and traverse the instructions of a basic block in
|
||||
// reverse (using const_reverse_iterator in the BB class).
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#ifndef FUNCTION_LIVE_VAR_INFO_H
|
||||
#define FUNCTION_LIVE_VAR_INFO_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user