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:
Chris Lattner 2003-09-30 18:05:30 +00:00
parent e97fbed83a
commit 5259f8d030

View File

@ -1,62 +1,29 @@
/* Title: FunctionLiveVarInfo.h -*- C++ -*- //===-- CodeGen/FunctionLiveVarInfo.h - LiveVar Analysis --------*- C++ -*-===//
Author: Ruchira Sasanka //
Date: Jun 30, 01 // This is the interface for live variable info of a function that is required
Purpose: // by any other part of the compiler
//
This is the interface for live variable info of a function that is required // After the analysis, getInSetOfBB or getOutSetofBB can be called to get
by any other part of the compiler // live var info of a BB.
//
It must be called like: // The live var set before an instruction can be obtained in 2 ways:
//
FunctionLiveVarInfo FLVI(Function *); // initializes data structures // 1. Use the method getLiveVarSetAfterInst(Instruction *) to get the LV Info
FLVI.analyze(); // do the actural live variable anal // just after an instruction. (also exists getLiveVarSetBeforeInst(..))
//
After the analysis, getInSetOfBB or getOutSetofBB can be called to get // This function caluclates the LV info for a BB only once and caches that
live var info of a BB. // 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.
The live var set before an instruction can be obtained in 2 ways: //
// Getting liveVar info this way uses more memory since, LV info should be
1. Use the method getLiveVarSetAfterInst(Instruction *) to get the LV Info // cached. However, if you need LV info of nearly all the instructions of a
just after an instruction. (also exists getLiveVarSetBeforeInst(..)) // BB, this is the best and simplest interfrace.
//
This function caluclates the LV info for a BB only once and caches that // 2. Use the OutSet and applyTranferFuncForInst(const Instruction *const Inst)
info. If the cache does not contain the LV info of the instruction, it // declared in LiveVarSet and traverse the instructions of a basic block in
calculates the LV info for the whole BB and caches them. // reverse (using const_reverse_iterator in the BB class).
//
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.
*/
#ifndef FUNCTION_LIVE_VAR_INFO_H #ifndef FUNCTION_LIVE_VAR_INFO_H
#define FUNCTION_LIVE_VAR_INFO_H #define FUNCTION_LIVE_VAR_INFO_H