1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00

[IR] Optimize memory usage of Metadata on MSVC

An unsigned 2 bit bitfield takes 4 bytes in MSVC. Instead of a bitfield,
just use an unsigned char. We can go back to a bitfield when someone
implements the TODO of exposing and reusing the remaining 6 bits.

llvm-svn: 266256
This commit is contained in:
Reid Kleckner 2016-04-13 22:46:06 +00:00
parent e98adefed7
commit 17e6fe60ac

View File

@ -52,7 +52,7 @@ protected:
enum StorageType { Uniqued, Distinct, Temporary };
/// \brief Storage flag for non-uniqued, otherwise unowned, metadata.
unsigned Storage : 2;
unsigned char Storage;
// TODO: expose remaining bits to subclasses.
unsigned short SubclassData16;
@ -93,6 +93,7 @@ public:
protected:
Metadata(unsigned ID, StorageType Storage)
: SubclassID(ID), Storage(Storage), SubclassData16(0), SubclassData32(0) {
static_assert(sizeof(*this) == 8, "Metdata fields poorly packed");
}
~Metadata() = default;