LLVM
8.0.1
|
Helper struct that represents how a value is mapped through different register banks. More...
#include "llvm/CodeGen/GlobalISel/RegisterBankInfo.h"
Public Member Functions | |
ValueMapping () | |
The default constructor creates an invalid (isValid() == false) instance. More... | |
ValueMapping (const PartialMapping *BreakDown, unsigned NumBreakDowns) | |
Initialize a ValueMapping with the given parameter. More... | |
const PartialMapping * | begin () const |
Iterators through the PartialMappings. More... | |
const PartialMapping * | end () const |
bool | isValid () const |
Check if this ValueMapping is valid. More... | |
bool | verify (unsigned MeaningfulBitWidth) const |
Verify that this mapping makes sense for a value of MeaningfulBitWidth . More... | |
void | dump () const |
Print this on dbgs() stream. More... | |
void | print (raw_ostream &OS) const |
Print this on OS ;. More... | |
Public Attributes | |
const PartialMapping * | BreakDown |
How the value is broken down between the different register banks. More... | |
unsigned | NumBreakDowns |
Number of partial mapping to break down this value. More... | |
Helper struct that represents how a value is mapped through different register banks.
E.g., Let say we have a 32-bit add and a <2 x 32-bit> vadd. We can expand the <2 x 32-bit> add into 2 x 32-bit add.
Currently the TableGen-like file would look like:
With the array of pointer, we would have:
Given that a PartialMapping is actually small, the code size impact is actually a degradation. Moreover the compile time will be hit by the additional indirection. If PartialMapping gets bigger we may reconsider.
Definition at line 859 of file RegisterBankInfo.h.
|
inline |
The default constructor creates an invalid (isValid() == false) instance.
Definition at line 868 of file RegisterBankInfo.h.
|
inline |
Initialize a ValueMapping with the given parameter.
BreakDown
needs to have a life time at least as long as this instance.
Definition at line 873 of file RegisterBankInfo.h.
|
inline |
Iterators through the PartialMappings.
Definition at line 877 of file RegisterBankInfo.h.
void ValueMapping::dump | ( | ) | const |
Print this on dbgs() stream.
|
inline |
Definition at line 878 of file RegisterBankInfo.h.
|
inline |
Check if this ValueMapping is valid.
Definition at line 881 of file RegisterBankInfo.h.
void ValueMapping::print | ( | raw_ostream & | OS | ) | const |
Print this on OS
;.
Verify that this mapping makes sense for a value of MeaningfulBitWidth
.
const PartialMapping* ValueMapping::BreakDown |
How the value is broken down between the different register banks.
Definition at line 861 of file RegisterBankInfo.h.
unsigned ValueMapping::NumBreakDowns |
Number of partial mapping to break down this value.
Definition at line 864 of file RegisterBankInfo.h.