X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FCodeGen%2FCriticalAntiDepBreaker.h;h=10b873959ad0d4c797887daced150cdf757831a2;hb=81474d36a0e7415f765193f5df272522930831a8;hp=565d20bac022be3897aa5d751c955dc7f1a8281d;hpb=78477ffdfd63ddf1ba22d9d2121c8f6ed9f9efa1;p=oota-llvm.git diff --git a/lib/CodeGen/CriticalAntiDepBreaker.h b/lib/CodeGen/CriticalAntiDepBreaker.h index 565d20bac02..10b873959ad 100644 --- a/lib/CodeGen/CriticalAntiDepBreaker.h +++ b/lib/CodeGen/CriticalAntiDepBreaker.h @@ -13,8 +13,8 @@ // //===----------------------------------------------------------------------===// -#ifndef LLVM_CODEGEN_CRITICALANTIDEPBREAKER_H -#define LLVM_CODEGEN_CRITICALANTIDEPBREAKER_H +#ifndef LLVM_LIB_CODEGEN_CRITICALANTIDEPBREAKER_H +#define LLVM_LIB_CODEGEN_CRITICALANTIDEPBREAKER_H #include "AntiDepBreaker.h" #include "llvm/ADT/BitVector.h" @@ -31,66 +31,64 @@ class RegisterClassInfo; class TargetInstrInfo; class TargetRegisterInfo; - class CriticalAntiDepBreaker : public AntiDepBreaker { +class LLVM_LIBRARY_VISIBILITY CriticalAntiDepBreaker : public AntiDepBreaker { MachineFunction& MF; MachineRegisterInfo &MRI; const TargetInstrInfo *TII; const TargetRegisterInfo *TRI; const RegisterClassInfo &RegClassInfo; - /// AllocatableSet - The set of allocatable registers. + /// The set of allocatable registers. /// We'll be ignoring anti-dependencies on non-allocatable registers, /// because they may not be safe to break. const BitVector AllocatableSet; - /// Classes - For live regs that are only used in one register class in a + /// For live regs that are only used in one register class in a /// live range, the register class. If the register is not live, the /// corresponding value is null. If the register is live but used in /// multiple register classes, the corresponding value is -1 casted to a /// pointer. std::vector Classes; - /// RegRefs - Map registers to all their references within a live range. + /// Map registers to all their references within a live range. std::multimap RegRefs; typedef std::multimap::const_iterator RegRefIter; - /// KillIndices - The index of the most recent kill (proceding bottom-up), + /// The index of the most recent kill (proceeding bottom-up), /// or ~0u if the register is not live. std::vector KillIndices; - /// DefIndices - The index of the most recent complete def (proceding bottom - /// up), or ~0u if the register is live. + /// The index of the most recent complete def (proceeding + /// bottom up), or ~0u if the register is live. std::vector DefIndices; - /// KeepRegs - A set of registers which are live and cannot be changed to + /// A set of registers which are live and cannot be changed to /// break anti-dependencies. BitVector KeepRegs; public: CriticalAntiDepBreaker(MachineFunction& MFi, const RegisterClassInfo&); - ~CriticalAntiDepBreaker(); + ~CriticalAntiDepBreaker() override; - /// Start - Initialize anti-dep breaking for a new basic block. - void StartBlock(MachineBasicBlock *BB); + /// Initialize anti-dep breaking for a new basic block. + void StartBlock(MachineBasicBlock *BB) override; - /// BreakAntiDependencies - Identifiy anti-dependencies along the critical - /// path + /// Identifiy anti-dependencies along the critical path /// of the ScheduleDAG and break them by renaming registers. - /// unsigned BreakAntiDependencies(const std::vector& SUnits, MachineBasicBlock::iterator Begin, MachineBasicBlock::iterator End, unsigned InsertPosIndex, - DbgValueVector &DbgValues); + DbgValueVector &DbgValues) override; - /// Observe - Update liveness information to account for the current + /// Update liveness information to account for the current /// instruction, which will not be scheduled. - /// - void Observe(MachineInstr *MI, unsigned Count, unsigned InsertPosIndex); + void Observe(MachineInstr *MI, unsigned Count, + unsigned InsertPosIndex) override; - /// Finish - Finish anti-dep breaking for a basic block. - void FinishBlock(); + /// Finish anti-dep breaking for a basic block. + void FinishBlock() override; private: void PrescanInstruction(MachineInstr *MI);