-/* 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).
+//
+//===----------------------------------------------------------------------===//