forked from OSchip/llvm-project
Move SDNode::IROrder in to padding to save space. NFC.
There was a 32-bit padding gap between 'unsigned short NumOperands, NumValues;' and 'DebugLoc debugLoc. Move 'unsigned IROrder' in to that gap. This trims the size of SDNode's from 76 bytes (really 80 due to alignment) to 72 bytes. llvm-svn: 242211
This commit is contained in:
parent
06e249e713
commit
8c20b4ebe4
|
@ -357,9 +357,6 @@ private:
|
||||||
/// The number of entries in the Operand/Value list.
|
/// The number of entries in the Operand/Value list.
|
||||||
unsigned short NumOperands, NumValues;
|
unsigned short NumOperands, NumValues;
|
||||||
|
|
||||||
/// Source line information.
|
|
||||||
DebugLoc debugLoc;
|
|
||||||
|
|
||||||
// The ordering of the SDNodes. It roughly corresponds to the ordering of the
|
// The ordering of the SDNodes. It roughly corresponds to the ordering of the
|
||||||
// original LLVM instructions.
|
// original LLVM instructions.
|
||||||
// This is used for turning off scheduling, because we'll forgo
|
// This is used for turning off scheduling, because we'll forgo
|
||||||
|
@ -367,6 +364,9 @@ private:
|
||||||
// this ordering.
|
// this ordering.
|
||||||
unsigned IROrder;
|
unsigned IROrder;
|
||||||
|
|
||||||
|
/// Source line information.
|
||||||
|
DebugLoc debugLoc;
|
||||||
|
|
||||||
/// Return a pointer to the specified value type.
|
/// Return a pointer to the specified value type.
|
||||||
static const EVT *getValueTypeList(EVT VT);
|
static const EVT *getValueTypeList(EVT VT);
|
||||||
|
|
||||||
|
@ -732,7 +732,7 @@ protected:
|
||||||
SubclassData(0), NodeId(-1),
|
SubclassData(0), NodeId(-1),
|
||||||
OperandList(Ops.size() ? new SDUse[Ops.size()] : nullptr),
|
OperandList(Ops.size() ? new SDUse[Ops.size()] : nullptr),
|
||||||
ValueList(VTs.VTs), UseList(nullptr), NumOperands(Ops.size()),
|
ValueList(VTs.VTs), UseList(nullptr), NumOperands(Ops.size()),
|
||||||
NumValues(VTs.NumVTs), debugLoc(std::move(dl)), IROrder(Order) {
|
NumValues(VTs.NumVTs), IROrder(Order), debugLoc(std::move(dl)) {
|
||||||
assert(debugLoc.hasTrivialDestructor() && "Expected trivial destructor");
|
assert(debugLoc.hasTrivialDestructor() && "Expected trivial destructor");
|
||||||
assert(NumOperands == Ops.size() &&
|
assert(NumOperands == Ops.size() &&
|
||||||
"NumOperands wasn't wide enough for its operands!");
|
"NumOperands wasn't wide enough for its operands!");
|
||||||
|
@ -752,7 +752,7 @@ protected:
|
||||||
: NodeType(Opc), OperandsNeedDelete(false), HasDebugValue(false),
|
: NodeType(Opc), OperandsNeedDelete(false), HasDebugValue(false),
|
||||||
SubclassData(0), NodeId(-1), OperandList(nullptr), ValueList(VTs.VTs),
|
SubclassData(0), NodeId(-1), OperandList(nullptr), ValueList(VTs.VTs),
|
||||||
UseList(nullptr), NumOperands(0), NumValues(VTs.NumVTs),
|
UseList(nullptr), NumOperands(0), NumValues(VTs.NumVTs),
|
||||||
debugLoc(std::move(dl)), IROrder(Order) {
|
IROrder(Order), debugLoc(std::move(dl)) {
|
||||||
assert(debugLoc.hasTrivialDestructor() && "Expected trivial destructor");
|
assert(debugLoc.hasTrivialDestructor() && "Expected trivial destructor");
|
||||||
assert(NumValues == VTs.NumVTs &&
|
assert(NumValues == VTs.NumVTs &&
|
||||||
"NumValues wasn't wide enough for its operands!");
|
"NumValues wasn't wide enough for its operands!");
|
||||||
|
|
Loading…
Reference in New Issue