aboutsummaryrefslogtreecommitdiff
path: root/include/llvm/CodeGen/FunctionLiveVarInfo.h
diff options
context:
space:
mode:
authorBrian Gaeke <gaeke@uiuc.edu>2004-02-24 19:46:00 +0000
committerBrian Gaeke <gaeke@uiuc.edu>2004-02-24 19:46:00 +0000
commit748fba141fc81dc15dbe94d88ada5da9fcad196d (patch)
tree5405eb7fa9cb94b820e4e2031736d18aa4bbc9fd /include/llvm/CodeGen/FunctionLiveVarInfo.h
parent2bcab1f900abb6f19caf65b75bf14d2813913a0b (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.h111
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