Changes in directory llvm/include/llvm/CodeGen:
LiveVariables.h updated: 1.39 -> 1.40 --- Log message: Data structure change to improve compile time (especially in debug mode). --- Diffs of the changes: (+10 -14) LiveVariables.h | 24 ++++++++++-------------- 1 files changed, 10 insertions(+), 14 deletions(-) Index: llvm/include/llvm/CodeGen/LiveVariables.h diff -u llvm/include/llvm/CodeGen/LiveVariables.h:1.39 llvm/include/llvm/CodeGen/LiveVariables.h:1.40 --- llvm/include/llvm/CodeGen/LiveVariables.h:1.39 Wed Apr 25 02:30:23 2007 +++ llvm/include/llvm/CodeGen/LiveVariables.h Wed Apr 25 14:34:00 2007 @@ -31,12 +31,12 @@ #include "llvm/CodeGen/MachineFunctionPass.h" #include "llvm/ADT/BitVector.h" +#include "llvm/ADT/SmallVector.h" #include <map> namespace llvm { class MRegisterInfo; -class BitVector; class LiveVariables : public MachineFunctionPass { public: @@ -127,28 +127,24 @@ // PhysRegInfo - Keep track of which instruction was the last def/use of a // physical register. This is a purely local property, because all physical // register references as presumed dead across basic blocks. - std::vector<MachineInstr*> PhysRegInfo; + MachineInstr **PhysRegInfo; // PhysRegUsed - Keep track whether the physical register has been used after // its last definition. This is local property. - BitVector PhysRegUsed; - - // PhysRegPartDef - Keep track of a list of instructions which "partially" - // defined the physical register (e.g. on X86 AX partially defines EAX). - // These are turned into use/mod/write if there is a use of the register - // later in the same block. This is local property. - std::vector<std::vector<MachineInstr*> > PhysRegPartDef; + bool *PhysRegUsed; // PhysRegPartUse - Keep track of which instruction was the last partial use // of a physical register (e.g. on X86 a def of EAX followed by a use of AX). // This is a purely local property. - std::vector<MachineInstr*> PhysRegPartUse; + MachineInstr **PhysRegPartUse; - typedef std::map<const MachineBasicBlock*, - std::vector<unsigned> > PHIVarInfoMap; - - PHIVarInfoMap PHIVarInfo; + // PhysRegPartDef - Keep track of a list of instructions which "partially" + // defined the physical register (e.g. on X86 AX partially defines EAX). + // These are turned into use/mod/write if there is a use of the register + // later in the same block. This is local property. + SmallVector<MachineInstr*, 4> *PhysRegPartDef; + SmallVector<unsigned, 4> *PHIVarInfo; /// addRegisterKilled - We have determined MI kills a register. Look for the /// operand that uses it and mark it as IsKill. _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits