diff options
author | Brian Gaeke <gaeke@uiuc.edu> | 2004-02-24 19:46:00 +0000 |
---|---|---|
committer | Brian Gaeke <gaeke@uiuc.edu> | 2004-02-24 19:46:00 +0000 |
commit | 748fba141fc81dc15dbe94d88ada5da9fcad196d (patch) | |
tree | 5405eb7fa9cb94b820e4e2031736d18aa4bbc9fd /include/llvm/CodeGen/FunctionLiveVarInfo.h | |
parent | 2bcab1f900abb6f19caf65b75bf14d2813913a0b (diff) |
FunctionLiveVarInfo.h moved: include/llvm/CodeGen -> lib/Target/Sparc/LiveVar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11804 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/FunctionLiveVarInfo.h')
-rw-r--r-- | include/llvm/CodeGen/FunctionLiveVarInfo.h | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/include/llvm/CodeGen/FunctionLiveVarInfo.h b/include/llvm/CodeGen/FunctionLiveVarInfo.h deleted file mode 100644 index 23a9d93a6e..0000000000 --- a/include/llvm/CodeGen/FunctionLiveVarInfo.h +++ /dev/null @@ -1,111 +0,0 @@ -//===-- CodeGen/FunctionLiveVarInfo.h - LiveVar Analysis --------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file was developed by the LLVM research group and is distributed under -// the University of Illinois Open Source License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// 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 - -#include "Support/hash_map" -#include "llvm/Pass.h" -#include "llvm/CodeGen/ValueSet.h" - -namespace llvm { - -class BBLiveVar; -class MachineInstr; - -class FunctionLiveVarInfo : public FunctionPass { - // Machine Instr to LiveVarSet Map for providing LVset BEFORE each inst - // These sets are owned by this map and will be freed in releaseMemory(). - hash_map<const MachineInstr *, ValueSet *> MInst2LVSetBI; - - // Machine Instr to LiveVarSet Map for providing LVset AFTER each inst. - // These sets are just pointers to sets in MInst2LVSetBI or BBLiveVar. - hash_map<const MachineInstr *, ValueSet *> MInst2LVSetAI; - - hash_map<const BasicBlock*, BBLiveVar*> BBLiveVarInfo; - - // Stored Function that the data is computed with respect to - const Function *M; - - // --------- private methods ----------------------------------------- - - // constructs BBLiveVars and init Def and In sets - void constructBBs(const Function *F); - - // do one backward pass over the CFG - bool doSingleBackwardPass(const Function *F, unsigned int iter); - - // calculates live var sets for instructions in a BB - void calcLiveVarSetsForBB(const BasicBlock *BB); - -public: - // --------- Implement the FunctionPass interface ---------------------- - - // runOnFunction - Perform analysis, update internal data structures. - virtual bool runOnFunction(Function &F); - - // releaseMemory - After LiveVariable analysis has been used, forget! - virtual void releaseMemory(); - - // getAnalysisUsage - Provide self! - virtual void getAnalysisUsage(AnalysisUsage &AU) const { - AU.setPreservesAll(); - } - - // --------- Functions to access analysis results ------------------- - - // get OutSet of a BB - const ValueSet &getOutSetOfBB(const BasicBlock *BB) const; - ValueSet &getOutSetOfBB(const BasicBlock *BB) ; - - // get InSet of a BB - const ValueSet &getInSetOfBB(const BasicBlock *BB) const; - ValueSet &getInSetOfBB(const BasicBlock *BB) ; - - // gets the Live var set BEFORE an instruction. - // if BB is specified and the live var set has not yet been computed, - // it will be computed on demand. - const ValueSet &getLiveVarSetBeforeMInst(const MachineInstr *MI, - const BasicBlock *BB = 0); - - // gets the Live var set AFTER an instruction - // if BB is specified and the live var set has not yet been computed, - // it will be computed on demand. - const ValueSet &getLiveVarSetAfterMInst(const MachineInstr *MI, - const BasicBlock *BB = 0); -}; - -} // End llvm namespace - -#endif |