mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
various cleanups to tblgen, patch by Garrison Venn!
llvm-svn: 121837
This commit is contained in:
parent
0611f0ab0b
commit
e1ee3c537d
@ -493,7 +493,7 @@ struct SubtargetFeatureInfo {
|
||||
class AsmMatcherInfo {
|
||||
public:
|
||||
/// Tracked Records
|
||||
RecordKeeper& Records;
|
||||
RecordKeeper &Records;
|
||||
|
||||
/// The tablegen AsmParser record.
|
||||
Record *AsmParser;
|
||||
@ -551,7 +551,7 @@ private:
|
||||
public:
|
||||
AsmMatcherInfo(Record *AsmParser,
|
||||
CodeGenTarget &Target,
|
||||
RecordKeeper& Records);
|
||||
RecordKeeper &Records);
|
||||
|
||||
/// BuildInfo - Construct the various tables used during matching.
|
||||
void BuildInfo();
|
||||
@ -565,12 +565,8 @@ public:
|
||||
return I == SubtargetFeatures.end() ? 0 : I->second;
|
||||
}
|
||||
|
||||
RecordKeeper& getRecords() {
|
||||
return(Records);
|
||||
}
|
||||
|
||||
RecordKeeper& getRecords() const {
|
||||
return(Records);
|
||||
RecordKeeper &getRecords() const {
|
||||
return Records;
|
||||
}
|
||||
};
|
||||
|
||||
@ -1004,7 +1000,7 @@ void AsmMatcherInfo::BuildOperandClasses() {
|
||||
|
||||
AsmMatcherInfo::AsmMatcherInfo(Record *asmParser,
|
||||
CodeGenTarget &target,
|
||||
RecordKeeper& records)
|
||||
RecordKeeper &records)
|
||||
: Records(records), AsmParser(asmParser), Target(target),
|
||||
RegisterPrefix(AsmParser->getValueAsString("RegisterPrefix")) {
|
||||
}
|
||||
|
@ -108,7 +108,7 @@ std::string llvm::getQualifiedName(const Record *R) {
|
||||
|
||||
/// getTarget - Return the current instance of the Target class.
|
||||
///
|
||||
CodeGenTarget::CodeGenTarget(RecordKeeper& records) : Records(records) {
|
||||
CodeGenTarget::CodeGenTarget(RecordKeeper &records) : Records(records) {
|
||||
std::vector<Record*> Targets = Records.getAllDerivedDefinitions("Target");
|
||||
if (Targets.size() == 0)
|
||||
throw std::string("ERROR: No 'Target' subclasses defined!");
|
||||
|
@ -23,7 +23,7 @@ namespace llvm {
|
||||
class LLVMCConfigurationEmitter : public TableGenBackend {
|
||||
RecordKeeper &Records;
|
||||
public:
|
||||
explicit LLVMCConfigurationEmitter(RecordKeeper& records) :
|
||||
explicit LLVMCConfigurationEmitter(RecordKeeper &records) :
|
||||
Records(records) {}
|
||||
|
||||
// run - Output the asmwriter, returning true on failure.
|
||||
|
@ -1236,8 +1236,8 @@ class Record {
|
||||
|
||||
public:
|
||||
|
||||
// Constructs a record. See also RecordKeeper::createRecord.
|
||||
explicit Record(const std::string &N, SMLoc loc, RecordKeeper& records) :
|
||||
// Constructs a record.
|
||||
explicit Record(const std::string &N, SMLoc loc, RecordKeeper &records) :
|
||||
ID(LastID++), Name(N), Loc(loc), TrackedRecords(records) {}
|
||||
~Record() {}
|
||||
|
||||
@ -1324,7 +1324,7 @@ public:
|
||||
void resolveReferencesTo(const RecordVal *RV);
|
||||
|
||||
RecordKeeper &getRecords() const {
|
||||
return(TrackedRecords);
|
||||
return TrackedRecords;
|
||||
}
|
||||
|
||||
void dump() const;
|
||||
@ -1466,12 +1466,6 @@ public:
|
||||
std::vector<Record*>
|
||||
getAllDerivedDefinitions(const std::string &ClassName) const;
|
||||
|
||||
// allocates and returns a record.
|
||||
Record *createRecord(const std::string &N, SMLoc loc) {
|
||||
return(new Record(N, loc, *this));
|
||||
}
|
||||
|
||||
|
||||
void dump() const;
|
||||
};
|
||||
|
||||
|
@ -1096,8 +1096,9 @@ Init *TGParser::ParseSimpleValue(Record *CurRec, RecTy *ItemType) {
|
||||
|
||||
// Create the new record, set it as CurRec temporarily.
|
||||
static unsigned AnonCounter = 0;
|
||||
Record *NewRec = Records.createRecord(
|
||||
"anonymous.val."+utostr(AnonCounter++),NameLoc);
|
||||
Record *NewRec = new Record("anonymous.val."+utostr(AnonCounter++),
|
||||
NameLoc,
|
||||
Records);
|
||||
SubClassReference SCRef;
|
||||
SCRef.RefLoc = NameLoc;
|
||||
SCRef.Rec = Class;
|
||||
@ -1661,7 +1662,7 @@ bool TGParser::ParseDef(MultiClass *CurMultiClass) {
|
||||
Lex.Lex(); // Eat the 'def' token.
|
||||
|
||||
// Parse ObjectName and make a record for it.
|
||||
Record *CurRec = Records.createRecord(ParseObjectName(), DefLoc);
|
||||
Record *CurRec = new Record(ParseObjectName(), DefLoc, Records);
|
||||
|
||||
if (!CurMultiClass) {
|
||||
// Top-level def definition.
|
||||
@ -1728,7 +1729,7 @@ bool TGParser::ParseClass() {
|
||||
return TokError("Class '" + CurRec->getName() + "' already defined");
|
||||
} else {
|
||||
// If this is the first reference to this class, create and add it.
|
||||
CurRec = Records.createRecord(Lex.getCurStrVal(), Lex.getLoc());
|
||||
CurRec = new Record(Lex.getCurStrVal(), Lex.getLoc(), Records);
|
||||
Records.addClass(CurRec);
|
||||
}
|
||||
Lex.Lex(); // eat the name.
|
||||
@ -1975,7 +1976,7 @@ bool TGParser::ParseDefm(MultiClass *CurMultiClass) {
|
||||
}
|
||||
}
|
||||
|
||||
Record *CurRec = Records.createRecord(DefName, DefmPrefixLoc);
|
||||
Record *CurRec = new Record(DefName, DefmPrefixLoc, Records);
|
||||
|
||||
SubClassReference Ref;
|
||||
Ref.RefLoc = DefmPrefixLoc;
|
||||
|
@ -50,9 +50,9 @@ class TGParser {
|
||||
MultiClass *CurMultiClass;
|
||||
|
||||
// Record tracker
|
||||
RecordKeeper& Records;
|
||||
RecordKeeper &Records;
|
||||
public:
|
||||
TGParser(SourceMgr &SrcMgr, RecordKeeper& records) :
|
||||
TGParser(SourceMgr &SrcMgr, RecordKeeper &records) :
|
||||
Lex(SrcMgr), CurMultiClass(0), Records(records) {}
|
||||
|
||||
/// ParseFile - Main entrypoint for parsing a tblgen file. These parser
|
||||
|
@ -186,7 +186,7 @@ void llvm::PrintError(SMLoc ErrorLoc, const Twine &Msg) {
|
||||
static bool ParseFile(const std::string &Filename,
|
||||
const std::vector<std::string> &IncludeDirs,
|
||||
SourceMgr &SrcMgr,
|
||||
RecordKeeper& Records) {
|
||||
RecordKeeper &Records) {
|
||||
error_code ec;
|
||||
MemoryBuffer *F = MemoryBuffer::getFileOrSTDIN(Filename.c_str(), ec);
|
||||
if (F == 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user