From 0174410fd05717bde6b4006385af498083ca280b Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 5 Feb 2002 00:33:19 +0000 Subject: [PATCH] * Big cleanups. * Make BBLiveVar.h effectively an internal header file * Prepare LiveVarMap.h for deletion git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1705 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../Analysis/LiveVar/FunctionLiveVarInfo.h | 29 ++++++------- include/llvm/Analysis/LiveVar/LiveVarMap.h | 24 ----------- include/llvm/CodeGen/FunctionLiveVarInfo.h | 29 ++++++------- lib/Analysis/LiveVar/BBLiveVar.h | 43 ++++++++++--------- lib/Target/SparcV9/LiveVar/BBLiveVar.h | 43 ++++++++++--------- 5 files changed, 70 insertions(+), 98 deletions(-) diff --git a/include/llvm/Analysis/LiveVar/FunctionLiveVarInfo.h b/include/llvm/Analysis/LiveVar/FunctionLiveVarInfo.h index d126b6e03ef..05723748d8a 100644 --- a/include/llvm/Analysis/LiveVar/FunctionLiveVarInfo.h +++ b/include/llvm/Analysis/LiveVar/FunctionLiveVarInfo.h @@ -67,19 +67,20 @@ static const int DEBUG_LV = 0; -#include "llvm/Analysis/LiveVar/BBLiveVar.h" #include "llvm/Pass.h" +class BBLiveVar; +class MachineInstr; +class LiveVarSet; class MethodLiveVarInfo : public MethodPass { - - // A map betwn the BasicBlock and BBLiveVar - BBToBBLiveVarMapType BB2BBLVMap; + // A map between the BasicBlock and BBLiveVar + std::map BB2BBLVMap; // Machine Instr to LiveVarSet Map for providing LVset BEFORE each inst - MInstToLiveVarSetMapType MInst2LVSetBI; + std::map MInst2LVSetBI; // Machine Instr to LiveVarSet Map for providing LVset AFTER each inst - MInstToLiveVarSetMapType MInst2LVSetAI; + std::map MInst2LVSetAI; // --------- private methods ----------------------------------------- @@ -118,22 +119,18 @@ public: // --------- Functions to access analysis results ------------------- // gets OutSet of a BB - inline const LiveVarSet *getOutSetOfBB( const BasicBlock *BB) const { - return BB2BBLVMap.find(BB)->second->getOutSet(); - } + const LiveVarSet *getOutSetOfBB(const BasicBlock *BB) const; // gets InSet of a BB - inline const LiveVarSet *getInSetOfBB( const BasicBlock *BB) const { - return BB2BBLVMap.find(BB)->second->getInSet(); - } + const LiveVarSet *getInSetOfBB(const BasicBlock *BB) const; // gets the Live var set BEFORE an instruction - const LiveVarSet * getLiveVarSetBeforeMInst(const MachineInstr *Inst, - const BasicBlock *CurBB); + const LiveVarSet *getLiveVarSetBeforeMInst(const MachineInstr *MI, + const BasicBlock *BB); // gets the Live var set AFTER an instruction - const LiveVarSet * getLiveVarSetAfterMInst(const MachineInstr *MInst, - const BasicBlock *CurBB); + const LiveVarSet *getLiveVarSetAfterMInst(const MachineInstr *MI, + const BasicBlock *BB); }; #endif diff --git a/include/llvm/Analysis/LiveVar/LiveVarMap.h b/include/llvm/Analysis/LiveVar/LiveVarMap.h index a9e170170f9..e69de29bb2d 100644 --- a/include/llvm/Analysis/LiveVar/LiveVarMap.h +++ b/include/llvm/Analysis/LiveVar/LiveVarMap.h @@ -1,24 +0,0 @@ -/* Title: LiveVarMap.h -*- C++ -*- - Author: Ruchira Sasanka - Date: Jun 30, 01 - Purpose: This file contains the class for a map between the BasicBlock class - and the BBLiveVar class, which is a wrapper class of BasicBlock - used for the live variable analysis. The reverse mapping can - be found in the BBLiveVar class (It has a pointer to the - corresponding BasicBlock) -*/ - -#ifndef LIVE_VAR_MAP_H -#define LIVE_VAR_MAP_H - -#include "Support/HashExtras.h" - -class MachineInstr; -class BasicBlock; -class BBLiveVar; -class LiveVarSet; - -typedef std::hash_map BBToBBLiveVarMapType; -typedef std::hash_map MInstToLiveVarSetMapType; - -#endif diff --git a/include/llvm/CodeGen/FunctionLiveVarInfo.h b/include/llvm/CodeGen/FunctionLiveVarInfo.h index d126b6e03ef..05723748d8a 100644 --- a/include/llvm/CodeGen/FunctionLiveVarInfo.h +++ b/include/llvm/CodeGen/FunctionLiveVarInfo.h @@ -67,19 +67,20 @@ static const int DEBUG_LV = 0; -#include "llvm/Analysis/LiveVar/BBLiveVar.h" #include "llvm/Pass.h" +class BBLiveVar; +class MachineInstr; +class LiveVarSet; class MethodLiveVarInfo : public MethodPass { - - // A map betwn the BasicBlock and BBLiveVar - BBToBBLiveVarMapType BB2BBLVMap; + // A map between the BasicBlock and BBLiveVar + std::map BB2BBLVMap; // Machine Instr to LiveVarSet Map for providing LVset BEFORE each inst - MInstToLiveVarSetMapType MInst2LVSetBI; + std::map MInst2LVSetBI; // Machine Instr to LiveVarSet Map for providing LVset AFTER each inst - MInstToLiveVarSetMapType MInst2LVSetAI; + std::map MInst2LVSetAI; // --------- private methods ----------------------------------------- @@ -118,22 +119,18 @@ public: // --------- Functions to access analysis results ------------------- // gets OutSet of a BB - inline const LiveVarSet *getOutSetOfBB( const BasicBlock *BB) const { - return BB2BBLVMap.find(BB)->second->getOutSet(); - } + const LiveVarSet *getOutSetOfBB(const BasicBlock *BB) const; // gets InSet of a BB - inline const LiveVarSet *getInSetOfBB( const BasicBlock *BB) const { - return BB2BBLVMap.find(BB)->second->getInSet(); - } + const LiveVarSet *getInSetOfBB(const BasicBlock *BB) const; // gets the Live var set BEFORE an instruction - const LiveVarSet * getLiveVarSetBeforeMInst(const MachineInstr *Inst, - const BasicBlock *CurBB); + const LiveVarSet *getLiveVarSetBeforeMInst(const MachineInstr *MI, + const BasicBlock *BB); // gets the Live var set AFTER an instruction - const LiveVarSet * getLiveVarSetAfterMInst(const MachineInstr *MInst, - const BasicBlock *CurBB); + const LiveVarSet *getLiveVarSetAfterMInst(const MachineInstr *MI, + const BasicBlock *BB); }; #endif diff --git a/lib/Analysis/LiveVar/BBLiveVar.h b/lib/Analysis/LiveVar/BBLiveVar.h index 08ccd2fe5c0..112e8151d97 100644 --- a/lib/Analysis/LiveVar/BBLiveVar.h +++ b/lib/Analysis/LiveVar/BBLiveVar.h @@ -1,20 +1,21 @@ -/* Title: BBLiveVar.h -*- C++ -*- - Author: Ruchira Sasanka - Date: Jun 30, 01 - Purpose: This is a wrapper class for BasicBlock which is used by live - variable anaysis. -*/ +//===-- BBLiveVar.h - Live Variable Analysis for a BasicBlock ----*- C++ -*--=// +// +// This is a wrapper class for BasicBlock which is used by live var analysis. +// +//===----------------------------------------------------------------------===// #ifndef LIVE_VAR_BB_H #define LIVE_VAR_BB_H #include "LiveVarSet.h" -#include "LiveVarMap.h" +#include class Method; +class BasicBlock; +class Value; class BBLiveVar { - const BasicBlock* BaseBB; // pointer to BasicBlock - unsigned POId; // Post-Order ID + const BasicBlock *BB; // pointer to BasicBlock + unsigned POID; // Post-Order ID LiveVarSet DefSet; // Def set for LV analysis LiveVarSet InSet, OutSet; // In & Out for LV analysis @@ -22,12 +23,12 @@ class BBLiveVar { // map that contains phi args->BB they came // set by calcDefUseSets & used by setPropagate - std::hash_map PhiArgMap; + std::map PhiArgMap; // method to propogate an InSet to OutSet of a predecessor - bool setPropagate( LiveVarSet *OutSetOfPred, - const LiveVarSet *InSetOfThisBB, - const BasicBlock *PredBB); + bool setPropagate(LiveVarSet *OutSetOfPred, + const LiveVarSet *InSetOfThisBB, + const BasicBlock *PredBB); // To add an operand which is a def void addDef(const Value *Op); @@ -36,21 +37,21 @@ class BBLiveVar { void addUse(const Value *Op); public: - BBLiveVar(const BasicBlock* baseBB, unsigned POId); + BBLiveVar(const BasicBlock *BB, unsigned POID); - inline bool isInSetChanged() const { return InSetChanged; } + inline bool isInSetChanged() const { return InSetChanged; } inline bool isOutSetChanged() const { return OutSetChanged; } - inline unsigned getPOId() const { return POId; } + inline unsigned getPOId() const { return POID; } - void calcDefUseSets() ; // calculates the Def & Use sets for this BB - bool applyTransferFunc(); // calcultes the In in terms of Out + void calcDefUseSets(); // calculates the Def & Use sets for this BB + bool applyTransferFunc(); // calcultes the In in terms of Out // calculates Out set using In sets of the predecessors - bool applyFlowFunc(BBToBBLiveVarMapType LVMap); + bool applyFlowFunc(std::map &LVMap); - inline const LiveVarSet* getOutSet() const { return &OutSet; } - inline const LiveVarSet* getInSet() const { return &InSet; } + inline const LiveVarSet *getOutSet() const { return &OutSet; } + inline const LiveVarSet *getInSet() const { return &InSet; } void printAllSets() const; // for printing Def/In/Out sets void printInOutSets() const; // for printing In/Out sets diff --git a/lib/Target/SparcV9/LiveVar/BBLiveVar.h b/lib/Target/SparcV9/LiveVar/BBLiveVar.h index 08ccd2fe5c0..112e8151d97 100644 --- a/lib/Target/SparcV9/LiveVar/BBLiveVar.h +++ b/lib/Target/SparcV9/LiveVar/BBLiveVar.h @@ -1,20 +1,21 @@ -/* Title: BBLiveVar.h -*- C++ -*- - Author: Ruchira Sasanka - Date: Jun 30, 01 - Purpose: This is a wrapper class for BasicBlock which is used by live - variable anaysis. -*/ +//===-- BBLiveVar.h - Live Variable Analysis for a BasicBlock ----*- C++ -*--=// +// +// This is a wrapper class for BasicBlock which is used by live var analysis. +// +//===----------------------------------------------------------------------===// #ifndef LIVE_VAR_BB_H #define LIVE_VAR_BB_H #include "LiveVarSet.h" -#include "LiveVarMap.h" +#include class Method; +class BasicBlock; +class Value; class BBLiveVar { - const BasicBlock* BaseBB; // pointer to BasicBlock - unsigned POId; // Post-Order ID + const BasicBlock *BB; // pointer to BasicBlock + unsigned POID; // Post-Order ID LiveVarSet DefSet; // Def set for LV analysis LiveVarSet InSet, OutSet; // In & Out for LV analysis @@ -22,12 +23,12 @@ class BBLiveVar { // map that contains phi args->BB they came // set by calcDefUseSets & used by setPropagate - std::hash_map PhiArgMap; + std::map PhiArgMap; // method to propogate an InSet to OutSet of a predecessor - bool setPropagate( LiveVarSet *OutSetOfPred, - const LiveVarSet *InSetOfThisBB, - const BasicBlock *PredBB); + bool setPropagate(LiveVarSet *OutSetOfPred, + const LiveVarSet *InSetOfThisBB, + const BasicBlock *PredBB); // To add an operand which is a def void addDef(const Value *Op); @@ -36,21 +37,21 @@ class BBLiveVar { void addUse(const Value *Op); public: - BBLiveVar(const BasicBlock* baseBB, unsigned POId); + BBLiveVar(const BasicBlock *BB, unsigned POID); - inline bool isInSetChanged() const { return InSetChanged; } + inline bool isInSetChanged() const { return InSetChanged; } inline bool isOutSetChanged() const { return OutSetChanged; } - inline unsigned getPOId() const { return POId; } + inline unsigned getPOId() const { return POID; } - void calcDefUseSets() ; // calculates the Def & Use sets for this BB - bool applyTransferFunc(); // calcultes the In in terms of Out + void calcDefUseSets(); // calculates the Def & Use sets for this BB + bool applyTransferFunc(); // calcultes the In in terms of Out // calculates Out set using In sets of the predecessors - bool applyFlowFunc(BBToBBLiveVarMapType LVMap); + bool applyFlowFunc(std::map &LVMap); - inline const LiveVarSet* getOutSet() const { return &OutSet; } - inline const LiveVarSet* getInSet() const { return &InSet; } + inline const LiveVarSet *getOutSet() const { return &OutSet; } + inline const LiveVarSet *getInSet() const { return &InSet; } void printAllSets() const; // for printing Def/In/Out sets void printInOutSets() const; // for printing In/Out sets