diff options
Diffstat (limited to 'include/llvm/CodeGen/FunctionLoweringInfo.h')
-rw-r--r-- | include/llvm/CodeGen/FunctionLoweringInfo.h | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/include/llvm/CodeGen/FunctionLoweringInfo.h b/include/llvm/CodeGen/FunctionLoweringInfo.h index 27631b7ea1..6bc10dfaa3 100644 --- a/include/llvm/CodeGen/FunctionLoweringInfo.h +++ b/include/llvm/CodeGen/FunctionLoweringInfo.h @@ -101,14 +101,30 @@ public: #endif struct LiveOutInfo { - unsigned NumSignBits; + unsigned NumSignBits : 31; + bool IsValid : 1; APInt KnownOne, KnownZero; - LiveOutInfo() : NumSignBits(0), KnownOne(1, 0), KnownZero(1, 0) {} + LiveOutInfo() : NumSignBits(0), IsValid(false), KnownOne(1, 0), + KnownZero(1, 0) {} }; /// LiveOutRegInfo - Information about live out vregs. IndexedMap<LiveOutInfo, VirtReg2IndexFunctor> LiveOutRegInfo; + /// VisitedBBs - Basic blocks that have been visited by reverse postorder. + DenseSet<const BasicBlock*> VisitedBBs; + + /// AllPredsVisited - Tracks whether all predecessors of the current basic + /// block have already been visited. + bool AllPredsVisited; + + /// PHIDestRegs - Virtual registers that are the destinations of PHIs. + DenseSet<unsigned> PHIDestRegs; + + /// PHISrcToDestMap - Maps the virtual register defining a PHI's source to the + /// virtual register defining its destination. + DenseMap<unsigned, unsigned> PHISrcToDestMap; + /// PHINodesToUpdate - A list of phi instructions whose operand list will /// be updated after processing the current basic block. /// TODO: This isn't per-function state, it's per-basic-block state. But |