From 08993acada479073d1df7c614a600a42950ae36e Mon Sep 17 00:00:00 2001 From: Owen Anderson Date: Sun, 4 Oct 2009 18:49:55 +0000 Subject: Do away with the strange use of BitVectors in SSI, and just use normal sets. This makes the code much more C++/LLVM-ish. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83286 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Transforms/Utils/SSI.h | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) (limited to 'include/llvm/Transforms') diff --git a/include/llvm/Transforms/Utils/SSI.h b/include/llvm/Transforms/Utils/SSI.h index 8b49aac..ff5bb7b 100644 --- a/include/llvm/Transforms/Utils/SSI.h +++ b/include/llvm/Transforms/Utils/SSI.h @@ -23,7 +23,6 @@ #define LLVM_TRANSFORMS_UTILS_SSI_H #include "llvm/Pass.h" -#include "llvm/ADT/BitVector.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/SmallVector.h" @@ -55,43 +54,36 @@ namespace llvm { // Stores variables created by SSI SmallPtrSet created; - // These variables are only live for each creation - unsigned num_values; - - // Has a bit for each variable, true if it needs to be created - // and false otherwise - BitVector needConstruction; - // Phis created by SSI - DenseMap phis; + DenseMap phis; // Sigmas created by SSI - DenseMap sigmas; + DenseMap sigmas; // Phi nodes that have a phi as operand and has to be fixed SmallPtrSet phisToFix; // List of definition points for every variable - SmallVector, 0> defsites; + DenseMap > defsites; // Basic Block of the original definition of each variable - SmallVector value_original; + DenseMap value_original; // Stack of last seen definition of a variable - SmallVector, 0> value_stack; + DenseMap > value_stack; - void insertSigmaFunctions(SmallVectorImpl &value); - void insertSigma(TerminatorInst *TI, Instruction *I, unsigned pos); - void insertPhiFunctions(SmallVectorImpl &value); - void renameInit(SmallVectorImpl &value); + void insertSigmaFunctions(SmallPtrSet &value); + void insertSigma(TerminatorInst *TI, Instruction *I); + void insertPhiFunctions(SmallPtrSet &value); + void renameInit(SmallPtrSet &value); void rename(BasicBlock *BB); void substituteUse(Instruction *I); bool dominateAny(BasicBlock *BB, Instruction *value); void fixPhis(); - unsigned getPositionPhi(PHINode *PN); - unsigned getPositionSigma(PHINode *PN); + Instruction* getPositionPhi(PHINode *PN); + Instruction* getPositionSigma(PHINode *PN); void init(SmallVectorImpl &value); void clean(); -- cgit v1.1