Pack MachineInstr fields better.
This shrinks MachineInstr to 64 bytes (from 72). llvm-svn: 171813
This commit is contained in:
parent
5a197c06f3
commit
5adc4a12fb
|
@ -87,7 +87,7 @@ private:
|
||||||
// anything other than to convey comment
|
// anything other than to convey comment
|
||||||
// information to AsmPrinter.
|
// information to AsmPrinter.
|
||||||
|
|
||||||
uint16_t NumMemRefs; // information on memory references
|
uint8_t NumMemRefs; // Information on memory references.
|
||||||
mmo_iterator MemRefs;
|
mmo_iterator MemRefs;
|
||||||
|
|
||||||
DebugLoc debugLoc; // Source line information.
|
DebugLoc debugLoc; // Source line information.
|
||||||
|
@ -993,7 +993,8 @@ public:
|
||||||
/// list. This does not transfer ownership.
|
/// list. This does not transfer ownership.
|
||||||
void setMemRefs(mmo_iterator NewMemRefs, mmo_iterator NewMemRefsEnd) {
|
void setMemRefs(mmo_iterator NewMemRefs, mmo_iterator NewMemRefsEnd) {
|
||||||
MemRefs = NewMemRefs;
|
MemRefs = NewMemRefs;
|
||||||
NumMemRefs = NewMemRefsEnd - NewMemRefs;
|
NumMemRefs = uint8_t(NewMemRefsEnd - NewMemRefs);
|
||||||
|
assert(NumMemRefs == NewMemRefsEnd - NewMemRefs && "Too many memrefs");
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -741,16 +741,14 @@ void MachineInstr::RemoveOperand(unsigned OpNo) {
|
||||||
void MachineInstr::addMemOperand(MachineFunction &MF,
|
void MachineInstr::addMemOperand(MachineFunction &MF,
|
||||||
MachineMemOperand *MO) {
|
MachineMemOperand *MO) {
|
||||||
mmo_iterator OldMemRefs = MemRefs;
|
mmo_iterator OldMemRefs = MemRefs;
|
||||||
uint16_t OldNumMemRefs = NumMemRefs;
|
unsigned OldNumMemRefs = NumMemRefs;
|
||||||
|
|
||||||
uint16_t NewNum = NumMemRefs + 1;
|
unsigned NewNum = NumMemRefs + 1;
|
||||||
mmo_iterator NewMemRefs = MF.allocateMemRefsArray(NewNum);
|
mmo_iterator NewMemRefs = MF.allocateMemRefsArray(NewNum);
|
||||||
|
|
||||||
std::copy(OldMemRefs, OldMemRefs + OldNumMemRefs, NewMemRefs);
|
std::copy(OldMemRefs, OldMemRefs + OldNumMemRefs, NewMemRefs);
|
||||||
NewMemRefs[NewNum - 1] = MO;
|
NewMemRefs[NewNum - 1] = MO;
|
||||||
|
setMemRefs(NewMemRefs, NewMemRefs + NewNum);
|
||||||
MemRefs = NewMemRefs;
|
|
||||||
NumMemRefs = NewNum;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MachineInstr::hasPropertyInBundle(unsigned Mask, QueryType Type) const {
|
bool MachineInstr::hasPropertyInBundle(unsigned Mask, QueryType Type) const {
|
||||||
|
|
Loading…
Reference in New Issue