forked from OSchip/llvm-project
[TableGen] Merge single prefix bit in RecordVal into PointerIntPair with Name to reduce memory usage.
llvm-svn: 239021
This commit is contained in:
parent
c019a57099
commit
b849203c94
|
@ -1113,22 +1113,21 @@ public:
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
class RecordVal {
|
||||
Init *Name;
|
||||
PointerIntPair<Init *, 1, bool> NameAndPrefix;
|
||||
RecTy *Ty;
|
||||
unsigned Prefix;
|
||||
Init *Value;
|
||||
|
||||
public:
|
||||
RecordVal(Init *N, RecTy *T, unsigned P);
|
||||
RecordVal(const std::string &N, RecTy *T, unsigned P);
|
||||
RecordVal(Init *N, RecTy *T, bool P);
|
||||
RecordVal(const std::string &N, RecTy *T, bool P);
|
||||
|
||||
const std::string &getName() const;
|
||||
const Init *getNameInit() const { return Name; }
|
||||
const Init *getNameInit() const { return NameAndPrefix.getPointer(); }
|
||||
std::string getNameInitAsString() const {
|
||||
return getNameInit()->getAsUnquotedString();
|
||||
}
|
||||
|
||||
unsigned getPrefix() const { return Prefix; }
|
||||
bool getPrefix() const { return NameAndPrefix.getInt(); }
|
||||
RecTy *getType() const { return Ty; }
|
||||
Init *getValue() const { return Value; }
|
||||
|
||||
|
|
|
@ -1532,20 +1532,20 @@ std::string DagInit::getAsString() const {
|
|||
// Other implementations
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
RecordVal::RecordVal(Init *N, RecTy *T, unsigned P)
|
||||
: Name(N), Ty(T), Prefix(P) {
|
||||
RecordVal::RecordVal(Init *N, RecTy *T, bool P)
|
||||
: NameAndPrefix(N, P), Ty(T) {
|
||||
Value = UnsetInit::get()->convertInitializerTo(Ty);
|
||||
assert(Value && "Cannot create unset value for current type!");
|
||||
}
|
||||
|
||||
RecordVal::RecordVal(const std::string &N, RecTy *T, unsigned P)
|
||||
: Name(StringInit::get(N)), Ty(T), Prefix(P) {
|
||||
RecordVal::RecordVal(const std::string &N, RecTy *T, bool P)
|
||||
: NameAndPrefix(StringInit::get(N), P), Ty(T) {
|
||||
Value = UnsetInit::get()->convertInitializerTo(Ty);
|
||||
assert(Value && "Cannot create unset value for current type!");
|
||||
}
|
||||
|
||||
const std::string &RecordVal::getName() const {
|
||||
return cast<StringInit>(Name)->getValue();
|
||||
return cast<StringInit>(getNameInit())->getValue();
|
||||
}
|
||||
|
||||
void RecordVal::dump() const { errs() << *this; }
|
||||
|
|
Loading…
Reference in New Issue