mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-24 12:19:53 +00:00
[TableGen] Store result of getInstructionsByEnumValue in an ArrayRef instead of accidentally copying to a vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@259336 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f87dc438fd
commit
3f0462d7e0
@ -227,7 +227,7 @@ void CodeEmitterGen::run(raw_ostream &o) {
|
||||
// For little-endian instruction bit encodings, reverse the bit order
|
||||
Target.reverseBitsForLittleEndianEncoding();
|
||||
|
||||
const std::vector<const CodeGenInstruction*> &NumberedInstructions =
|
||||
ArrayRef<const CodeGenInstruction*> NumberedInstructions =
|
||||
Target.getInstructionsByEnumValue();
|
||||
|
||||
// Emit function declaration
|
||||
@ -238,11 +238,7 @@ void CodeEmitterGen::run(raw_ostream &o) {
|
||||
|
||||
// Emit instruction base values
|
||||
o << " static const uint64_t InstBits[] = {\n";
|
||||
for (std::vector<const CodeGenInstruction*>::const_iterator
|
||||
IN = NumberedInstructions.begin(),
|
||||
EN = NumberedInstructions.end();
|
||||
IN != EN; ++IN) {
|
||||
const CodeGenInstruction *CGI = *IN;
|
||||
for (const CodeGenInstruction *CGI : NumberedInstructions) {
|
||||
Record *R = CGI->TheDef;
|
||||
|
||||
if (R->getValueAsString("Namespace") == "TargetOpcode" ||
|
||||
|
@ -3249,7 +3249,7 @@ void CodeGenDAGPatterns::AddPatternToMatch(TreePattern *Pattern,
|
||||
|
||||
|
||||
void CodeGenDAGPatterns::InferInstructionFlags() {
|
||||
const std::vector<const CodeGenInstruction*> &Instructions =
|
||||
ArrayRef<const CodeGenInstruction*> Instructions =
|
||||
Target.getInstructionsByEnumValue();
|
||||
|
||||
// First try to infer flags from the primary instruction pattern, if any.
|
||||
|
@ -355,7 +355,7 @@ Record *MapTableEmitter::getInstrForColumn(Record *KeyInstr,
|
||||
|
||||
unsigned MapTableEmitter::emitBinSearchTable(raw_ostream &OS) {
|
||||
|
||||
const std::vector<const CodeGenInstruction*> &NumberedInstructions =
|
||||
ArrayRef<const CodeGenInstruction*> NumberedInstructions =
|
||||
Target.getInstructionsByEnumValue();
|
||||
std::string TargetName = Target.getName();
|
||||
const std::vector<ListInit*> &ValueCols = InstrMapDesc.getValueCols();
|
||||
|
@ -111,7 +111,7 @@ void EmitDisassembler(RecordKeeper &Records, raw_ostream &OS) {
|
||||
if (Target.getName() == "X86") {
|
||||
DisassemblerTables Tables;
|
||||
|
||||
const std::vector<const CodeGenInstruction*> &numberedInstructions =
|
||||
ArrayRef<const CodeGenInstruction*> numberedInstructions =
|
||||
Target.getInstructionsByEnumValue();
|
||||
|
||||
for (unsigned i = 0, e = numberedInstructions.size(); i != e; ++i)
|
||||
|
@ -59,12 +59,12 @@ private:
|
||||
raw_ostream &OS);
|
||||
void emitOperandTypesEnum(raw_ostream &OS, const CodeGenTarget &Target);
|
||||
void initOperandMapData(
|
||||
const std::vector<const CodeGenInstruction *> &NumberedInstructions,
|
||||
ArrayRef<const CodeGenInstruction *> NumberedInstructions,
|
||||
const std::string &Namespace,
|
||||
std::map<std::string, unsigned> &Operands,
|
||||
OpNameMapTy &OperandMap);
|
||||
void emitOperandNameMappings(raw_ostream &OS, const CodeGenTarget &Target,
|
||||
const std::vector<const CodeGenInstruction*> &NumberedInstructions);
|
||||
ArrayRef<const CodeGenInstruction*> NumberedInstructions);
|
||||
|
||||
// Operand information.
|
||||
void EmitOperandInfo(raw_ostream &OS, OperandInfoMapTy &OperandInfoIDs);
|
||||
@ -198,7 +198,7 @@ void InstrInfoEmitter::EmitOperandInfo(raw_ostream &OS,
|
||||
/// each instructions. This is used to generate the OperandMap table as
|
||||
/// well as the getNamedOperandIdx() function.
|
||||
void InstrInfoEmitter::initOperandMapData(
|
||||
const std::vector<const CodeGenInstruction *> &NumberedInstructions,
|
||||
ArrayRef<const CodeGenInstruction *> NumberedInstructions,
|
||||
const std::string &Namespace,
|
||||
std::map<std::string, unsigned> &Operands,
|
||||
OpNameMapTy &OperandMap) {
|
||||
@ -234,7 +234,7 @@ void InstrInfoEmitter::initOperandMapData(
|
||||
/// OpName enum
|
||||
void InstrInfoEmitter::emitOperandNameMappings(raw_ostream &OS,
|
||||
const CodeGenTarget &Target,
|
||||
const std::vector<const CodeGenInstruction*> &NumberedInstructions) {
|
||||
ArrayRef<const CodeGenInstruction*> NumberedInstructions) {
|
||||
|
||||
const std::string &Namespace = Target.getInstNamespace();
|
||||
std::string OpNameNS = "OpName";
|
||||
@ -380,7 +380,7 @@ void InstrInfoEmitter::run(raw_ostream &OS) {
|
||||
// Emit all of the MCInstrDesc records in their ENUM ordering.
|
||||
//
|
||||
OS << "\nextern const MCInstrDesc " << TargetName << "Insts[] = {\n";
|
||||
const std::vector<const CodeGenInstruction*> &NumberedInstructions =
|
||||
ArrayRef<const CodeGenInstruction*> NumberedInstructions =
|
||||
Target.getInstructionsByEnumValue();
|
||||
|
||||
SequenceToOffsetTable<std::string> InstrNames;
|
||||
@ -577,7 +577,7 @@ void InstrInfoEmitter::emitEnums(raw_ostream &OS) {
|
||||
if (Namespace.empty())
|
||||
PrintFatalError("No instructions defined!");
|
||||
|
||||
const std::vector<const CodeGenInstruction*> &NumberedInstructions =
|
||||
ArrayRef<const CodeGenInstruction*> NumberedInstructions =
|
||||
Target.getInstructionsByEnumValue();
|
||||
|
||||
OS << "namespace " << Namespace << " {\n";
|
||||
|
Loading…
Reference in New Issue
Block a user