llvm.org GIT mirror llvm / 79faf61
Shorten and rearrange data fields to save a word of memory. Per review feedback. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56388 91177308-0d34-0410-b5e6-96231b3b80d8 Dale Johannesen 11 years ago
1 changed file(s) with 7 addition(s) and 6 deletion(s). Raw diff Collapse all Expand all
102102
103103 unsigned reg; // the register or stack slot of this interval
104104 // if the top bits is set, it represents a stack slot.
105 unsigned preference; // preferred register to allocate for this interval
106105 float weight; // weight of this interval
107 bool isEarlyClobber;
108 bool overlapsEarlyClobber;
106 // The next 3 fields pack into a single word (on most hosts).
107 // Logically the first two could be bitfields, but that's slower.
108 bool isEarlyClobber; // marked earlyclobber in some asm
109 bool overlapsEarlyClobber; // input to asm that has an earlyclobber
110 unsigned short preference; // preferred register for this interval
109111 Ranges ranges; // the ranges in which this register is live
110112 VNInfoList valnos; // value#'s
111113
112114 public:
113115 LiveInterval(unsigned Reg, float Weight, bool IsSS = false,
114116 bool IsEarlyClobber = false, bool OverlapsEarlyClobber = false)
115 : reg(Reg), preference(0), weight(Weight),
116 isEarlyClobber(IsEarlyClobber),
117 overlapsEarlyClobber(OverlapsEarlyClobber) {
117 : reg(Reg), weight(Weight), isEarlyClobber(IsEarlyClobber),
118 overlapsEarlyClobber(OverlapsEarlyClobber), preference(0) {
118119 if (IsSS)
119120 reg = reg | (1U << (sizeof(unsigned)*8-1));
120121 }