Displaying 3 results from an estimated 3 matches for "smallmd".
2015 Apr 15
4
[LLVMdev] RFC: Metadata attachments to function definitions
...struct value_type {
unsigned Tag;
TrackingMDNodeRef MD;
};
unsigned Capacity;
union {
unsigned LargeSize;
unsigned SmallTag;
} Unsigned;
AlignedCharArrayUnion<
value_type *, // LargeArray
TrackingMDNodeRef // SmallMD
> Pointer;
};
static_assert(sizeof(Data) == sizeof(void *) + sizeof(unsigned) * 2,
"Wrong size");
Two advantages over `SmallVector<value_type, 1>`:
- 32-bits each for size and capacity (instead of 64-bits).
- Domain knowledge of `value_type...
2015 Apr 18
2
[LLVMdev] RFC: Metadata attachments to function definitions
...ingMDNodeRef MD;
> };
>
> unsigned Capacity;
> union {
> unsigned LargeSize;
> unsigned SmallTag;
> } Unsigned;
>
> AlignedCharArrayUnion<
> value_type *, // LargeArray
> TrackingMDNodeRef // SmallMD
> > Pointer;
> };
> static_assert(sizeof(Data) == sizeof(void *) + sizeof(unsigned) * 2,
> "Wrong size");
>
> Two advantages over `SmallVector<value_type, 1>`:
>
> - 32-bits each for size and capacity (instead of 64-bi...
2015 Apr 15
2
[LLVMdev] RFC: Metadata attachments to function definitions
...ingMDNodeRef MD;
> };
>
> unsigned Capacity;
> union {
> unsigned LargeSize;
> unsigned SmallTag;
> } Unsigned;
>
> AlignedCharArrayUnion<
> value_type *, // LargeArray
> TrackingMDNodeRef // SmallMD
> > Pointer;
> };
> static_assert(sizeof(Data) == sizeof(void *) + sizeof(unsigned) * 2,
> "Wrong size");
>
> Two advantages over `SmallVector<value_type, 1>`:
>
> - 32-bits each for size and capacity (instead of 64-bi...