mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-28 03:25:23 +00:00
A bit more clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29893 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -2126,7 +2126,7 @@ private:
|
|||||||
std::vector<std::pair<unsigned, std::string> > &GeneratedCode;
|
std::vector<std::pair<unsigned, std::string> > &GeneratedCode;
|
||||||
/// GeneratedDecl - This is the set of all SDOperand declarations needed for
|
/// GeneratedDecl - This is the set of all SDOperand declarations needed for
|
||||||
/// the set of patterns for each top-level opcode.
|
/// the set of patterns for each top-level opcode.
|
||||||
std::set<std::pair<unsigned, std::string> > &GeneratedDecl;
|
std::set<std::string> &GeneratedDecl;
|
||||||
/// TargetOpcodes - The target specific opcodes used by the resulting
|
/// TargetOpcodes - The target specific opcodes used by the resulting
|
||||||
/// instructions.
|
/// instructions.
|
||||||
std::vector<std::string> &TargetOpcodes;
|
std::vector<std::string> &TargetOpcodes;
|
||||||
@@ -2149,9 +2149,9 @@ private:
|
|||||||
if (!S.empty())
|
if (!S.empty())
|
||||||
GeneratedCode.push_back(std::make_pair(2, S));
|
GeneratedCode.push_back(std::make_pair(2, S));
|
||||||
}
|
}
|
||||||
void emitDecl(const std::string &S, unsigned T=0) {
|
void emitDecl(const std::string &S) {
|
||||||
assert(!S.empty() && "Invalid declaration");
|
assert(!S.empty() && "Invalid declaration");
|
||||||
GeneratedDecl.insert(std::make_pair(T, S));
|
GeneratedDecl.insert(S);
|
||||||
}
|
}
|
||||||
void emitOpcode(const std::string &Opc) {
|
void emitOpcode(const std::string &Opc) {
|
||||||
TargetOpcodes.push_back(Opc);
|
TargetOpcodes.push_back(Opc);
|
||||||
@@ -2165,7 +2165,7 @@ public:
|
|||||||
PatternCodeEmitter(DAGISelEmitter &ise, ListInit *preds,
|
PatternCodeEmitter(DAGISelEmitter &ise, ListInit *preds,
|
||||||
TreePatternNode *pattern, TreePatternNode *instr,
|
TreePatternNode *pattern, TreePatternNode *instr,
|
||||||
std::vector<std::pair<unsigned, std::string> > &gc,
|
std::vector<std::pair<unsigned, std::string> > &gc,
|
||||||
std::set<std::pair<unsigned, std::string> > &gd,
|
std::set<std::string> &gd,
|
||||||
std::vector<std::string> &to,
|
std::vector<std::string> &to,
|
||||||
std::vector<std::string> &tv)
|
std::vector<std::string> &tv)
|
||||||
: ISE(ise), Predicates(preds), Pattern(pattern), Instruction(instr),
|
: ISE(ise), Predicates(preds), Pattern(pattern), Instruction(instr),
|
||||||
@@ -2986,9 +2986,9 @@ private:
|
|||||||
/// succeeds. Returns true if the pattern is not guaranteed to match.
|
/// succeeds. Returns true if the pattern is not guaranteed to match.
|
||||||
void DAGISelEmitter::GenerateCodeForPattern(PatternToMatch &Pattern,
|
void DAGISelEmitter::GenerateCodeForPattern(PatternToMatch &Pattern,
|
||||||
std::vector<std::pair<unsigned, std::string> > &GeneratedCode,
|
std::vector<std::pair<unsigned, std::string> > &GeneratedCode,
|
||||||
std::set<std::pair<unsigned, std::string> > &GeneratedDecl,
|
std::set<std::string> &GeneratedDecl,
|
||||||
std::vector<std::string> &TargetOpcodes,
|
std::vector<std::string> &TargetOpcodes,
|
||||||
std::vector<std::string> &TargetVTs) {
|
std::vector<std::string> &TargetVTs) {
|
||||||
PatternCodeEmitter Emitter(*this, Pattern.getPredicates(),
|
PatternCodeEmitter Emitter(*this, Pattern.getPredicates(),
|
||||||
Pattern.getSrcPattern(), Pattern.getDstPattern(),
|
Pattern.getSrcPattern(), Pattern.getDstPattern(),
|
||||||
GeneratedCode, GeneratedDecl,
|
GeneratedCode, GeneratedDecl,
|
||||||
@@ -3274,10 +3274,10 @@ void DAGISelEmitter::EmitInstructionSelector(std::ostream &OS) {
|
|||||||
std::vector<std::pair<PatternToMatch*, CodeList> > CodeForPatterns;
|
std::vector<std::pair<PatternToMatch*, CodeList> > CodeForPatterns;
|
||||||
std::vector<std::vector<std::string> > PatternOpcodes;
|
std::vector<std::vector<std::string> > PatternOpcodes;
|
||||||
std::vector<std::vector<std::string> > PatternVTs;
|
std::vector<std::vector<std::string> > PatternVTs;
|
||||||
std::vector<std::set<std::pair<unsigned, std::string> > > PatternDecls;
|
std::vector<std::set<std::string> > PatternDecls;
|
||||||
for (unsigned i = 0, e = Patterns.size(); i != e; ++i) {
|
for (unsigned i = 0, e = Patterns.size(); i != e; ++i) {
|
||||||
CodeList GeneratedCode;
|
CodeList GeneratedCode;
|
||||||
std::set<std::pair<unsigned, std::string> > GeneratedDecl;
|
std::set<std::string> GeneratedDecl;
|
||||||
std::vector<std::string> TargetOpcodes;
|
std::vector<std::string> TargetOpcodes;
|
||||||
std::vector<std::string> TargetVTs;
|
std::vector<std::string> TargetVTs;
|
||||||
GenerateCodeForPattern(*Patterns[i], GeneratedCode, GeneratedDecl,
|
GenerateCodeForPattern(*Patterns[i], GeneratedCode, GeneratedDecl,
|
||||||
@@ -3319,7 +3319,7 @@ void DAGISelEmitter::EmitInstructionSelector(std::ostream &OS) {
|
|||||||
CodeList &GeneratedCode = CodeForPatterns[i].second;
|
CodeList &GeneratedCode = CodeForPatterns[i].second;
|
||||||
std::vector<std::string> &TargetOpcodes = PatternOpcodes[i];
|
std::vector<std::string> &TargetOpcodes = PatternOpcodes[i];
|
||||||
std::vector<std::string> &TargetVTs = PatternVTs[i];
|
std::vector<std::string> &TargetVTs = PatternVTs[i];
|
||||||
std::set<std::pair<unsigned, std::string> > Decls = PatternDecls[i];
|
std::set<std::string> Decls = PatternDecls[i];
|
||||||
std::vector<std::string> AddedInits;
|
std::vector<std::string> AddedInits;
|
||||||
int CodeSize = (int)GeneratedCode.size();
|
int CodeSize = (int)GeneratedCode.size();
|
||||||
int LastPred = -1;
|
int LastPred = -1;
|
||||||
@@ -3340,9 +3340,9 @@ void DAGISelEmitter::EmitInstructionSelector(std::ostream &OS) {
|
|||||||
CalleeCode += ", MVT::ValueType VT" + utostr(j);
|
CalleeCode += ", MVT::ValueType VT" + utostr(j);
|
||||||
CallerCode += ", " + TargetVTs[j];
|
CallerCode += ", " + TargetVTs[j];
|
||||||
}
|
}
|
||||||
for (std::set<std::pair<unsigned, std::string> >::iterator
|
for (std::set<std::string>::iterator
|
||||||
I = Decls.begin(), E = Decls.end(); I != E; ++I) {
|
I = Decls.begin(), E = Decls.end(); I != E; ++I) {
|
||||||
std::string Name = I->second;
|
std::string Name = *I;
|
||||||
CalleeCode += ", SDOperand &" + Name;
|
CalleeCode += ", SDOperand &" + Name;
|
||||||
CallerCode += ", " + Name;
|
CallerCode += ", " + Name;
|
||||||
}
|
}
|
||||||
@@ -3357,11 +3357,8 @@ void DAGISelEmitter::EmitInstructionSelector(std::ostream &OS) {
|
|||||||
I = AddedInits.rbegin(), E = AddedInits.rend(); I != E; ++I)
|
I = AddedInits.rbegin(), E = AddedInits.rend(); I != E; ++I)
|
||||||
CalleeCode += " " + *I + "\n";
|
CalleeCode += " " + *I + "\n";
|
||||||
|
|
||||||
for (int j = LastPred+1; j < CodeSize; ++j) {
|
for (int j = LastPred+1; j < CodeSize; ++j)
|
||||||
std::string code = GeneratedCode[j].second;
|
CalleeCode += " " + GeneratedCode[j].second + "\n";
|
||||||
// if (!AddedDecls.count(code))
|
|
||||||
CalleeCode += " " + code + "\n";
|
|
||||||
}
|
|
||||||
for (int j = LastPred+1; j < CodeSize; ++j)
|
for (int j = LastPred+1; j < CodeSize; ++j)
|
||||||
GeneratedCode.pop_back();
|
GeneratedCode.pop_back();
|
||||||
CalleeCode += "}\n";
|
CalleeCode += "}\n";
|
||||||
|
@@ -521,7 +521,7 @@ private:
|
|||||||
std::vector<Record*> &InstImpResults);
|
std::vector<Record*> &InstImpResults);
|
||||||
void GenerateCodeForPattern(PatternToMatch &Pattern,
|
void GenerateCodeForPattern(PatternToMatch &Pattern,
|
||||||
std::vector<std::pair<unsigned, std::string> > &GeneratedCode,
|
std::vector<std::pair<unsigned, std::string> > &GeneratedCode,
|
||||||
std::set<std::pair<unsigned, std::string> > &GeneratedDecl,
|
std::set<std::string> &GeneratedDecl,
|
||||||
std::vector<std::string> &TargetOpcodes,
|
std::vector<std::string> &TargetOpcodes,
|
||||||
std::vector<std::string> &TargetVTs);
|
std::vector<std::string> &TargetVTs);
|
||||||
void EmitPatterns(std::vector<std::pair<PatternToMatch*,
|
void EmitPatterns(std::vector<std::pair<PatternToMatch*,
|
||||||
|
Reference in New Issue
Block a user