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)

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)

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)

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