struct RegisterBankInfo::PartialMapping

Declaration

struct RegisterBankInfo::PartialMapping { /* full declaration omitted */ };

Description

Helper struct that represents how a value is partially mapped into a register. The StartIdx and Length represent what region of the orginal value this partial mapping covers. This can be represented as a Mask of contiguous bit starting at StartIdx bit and spanning Length bits. StartIdx is the number of bits from the less significant bits.

Declared at: llvm/include/llvm/CodeGen/RegisterBankInfo.h:48

Member Variables

public unsigned int StartIdx
Number of bits at which this partial mapping starts in the original value. The bits are counted from less significant bits to most significant bits.
public unsigned int Length
Length of this mapping in bits. This is how many bits this partial mapping covers in the original value: from StartIdx to StartIdx + Length -1.
public const llvm::RegisterBank* RegBank
Register bank where the partial value lives.

Method Overview

Methods

PartialMapping()

Declared at: llvm/include/llvm/CodeGen/RegisterBankInfo.h:62

PartialMapping(unsigned int StartIdx,
               unsigned int Length,
               const llvm::RegisterBank& RegBank)

Description

Provide a shortcut for quickly building PartialMapping.

Declared at: llvm/include/llvm/CodeGen/RegisterBankInfo.h:65

Parameters

unsigned int StartIdx
unsigned int Length
const llvm::RegisterBank& RegBank

void dump() const

Description

Print this partial mapping on dbgs() stream.

Declared at: llvm/include/llvm/CodeGen/RegisterBankInfo.h:74

unsigned int getHighBitIdx() const

Declared at: llvm/include/llvm/CodeGen/RegisterBankInfo.h:71

Returns

the index of in the original value of the most significant bit that this partial mapping covers.

void print(llvm::raw_ostream& OS) const

Description

Print this partial mapping on \p OS;

Declared at: llvm/include/llvm/CodeGen/RegisterBankInfo.h:77

Parameters

llvm::raw_ostream& OS

bool verify() const

Description

Check that the Mask is compatible with the RegBank. Indeed, if the RegBank cannot accomadate the "active bits" of the mask, there is no way this mapping is valid.

Declared at: llvm/include/llvm/CodeGen/RegisterBankInfo.h:86

Returns

True is the check was successful.