struct Impl
Declaration
template <typename Bitfield, typename StorageType>
struct Impl { /* full declaration omitted */ };
Description
Impl is where Bifield description and Storage are put together to interact with values.
Declared at: llvm/include/llvm/ADT/Bitfields.h:156
Templates
- Bitfield
- StorageType
Member Variables
- public static const size_t StorageBits = sizeof(type-parameter-0-1) * 8
- public static const StorageType Mask = BitPatterns<type-parameter-0-1, type-parameter-0-0::Bits>::Umax << type-parameter-0-0::Shift
Method Overview
- public static llvm::bitfields_details::Impl::IntegerType extract(StorageType Packed)
- public static StorageType test(StorageType Packed)
- public static void update(StorageType & Packed, llvm::bitfields_details::Impl::IntegerType UserValue)
Methods
¶static llvm::bitfields_details::Impl::IntegerType
extract(StorageType Packed)
static llvm::bitfields_details::Impl::IntegerType
extract(StorageType Packed)
Description
Interprets bits between `FirstBit` and `LastBit` of `Packed` as an`IntegerType`.
Declared at: llvm/include/llvm/ADT/Bitfields.h:178
Parameters
- StorageType Packed
¶static StorageType test(StorageType Packed)
static StorageType test(StorageType Packed)
Description
Interprets bits between `FirstBit` and `LastBit` of `Packed` as an`IntegerType`.
Declared at: llvm/include/llvm/ADT/Bitfields.h:185
Parameters
- StorageType Packed
¶static void update(
StorageType& Packed,
llvm::bitfields_details::Impl::IntegerType
UserValue)
static void update(
StorageType& Packed,
llvm::bitfields_details::Impl::IntegerType
UserValue)
Description
Checks `UserValue` is within bounds and packs it between `FirstBit` and `LastBit` of `Packed` leaving the rest unchanged.
Declared at: llvm/include/llvm/ADT/Bitfields.h:170
Parameters
- StorageType& Packed
- llvm::bitfields_details::Impl::IntegerType UserValue