Lines Matching refs:OS
51 void run(raw_ostream &OS);
54 void emitEnums(raw_ostream &OS);
70 void emitTIIHelperMethods(raw_ostream &OS, StringRef TargetName,
75 void emitMCIIHelperMethods(raw_ostream &OS, StringRef TargetName);
80 raw_ostream &OS);
82 raw_ostream &OS, const CodeGenTarget &Target,
89 void emitOperandNameMappings(raw_ostream &OS, const CodeGenTarget &Target,
93 raw_ostream &OS, StringRef Namespace,
96 raw_ostream &OS, StringRef Namespace,
100 void EmitOperandInfo(raw_ostream &OS, OperandInfoMapTy &OperandInfoIDs);
107 unsigned Num, raw_ostream &OS) { in PrintDefList() argument
108 OS << "static const MCPhysReg ImplicitList" << Num << "[] = { "; in PrintDefList()
110 OS << getQualifiedName(U) << ", "; in PrintDefList()
111 OS << "0 };\n"; in PrintDefList()
207 void InstrInfoEmitter::EmitOperandInfo(raw_ostream &OS, in EmitOperandInfo() argument
213 OS << "\n"; in EmitOperandInfo()
221 OS << "static const MCOperandInfo OperandInfo" << N << "[] = { "; in EmitOperandInfo()
223 OS << "{ " << Info << " }, "; in EmitOperandInfo()
224 OS << "};\n"; in EmitOperandInfo()
270 void InstrInfoEmitter::emitOperandNameMappings(raw_ostream &OS, in emitOperandNameMappings() argument
282 OS << "#ifdef GET_INSTRINFO_OPERAND_ENUM\n"; in emitOperandNameMappings()
283 OS << "#undef GET_INSTRINFO_OPERAND_ENUM\n"; in emitOperandNameMappings()
284 OS << "namespace llvm {\n"; in emitOperandNameMappings()
285 OS << "namespace " << Namespace << " {\n"; in emitOperandNameMappings()
286 OS << "namespace " << OpNameNS << " {\n"; in emitOperandNameMappings()
287 OS << "enum {\n"; in emitOperandNameMappings()
289 OS << " " << Op.first << " = " << Op.second << ",\n"; in emitOperandNameMappings()
291 OS << " OPERAND_LAST"; in emitOperandNameMappings()
292 OS << "\n};\n"; in emitOperandNameMappings()
293 OS << "} // end namespace OpName\n"; in emitOperandNameMappings()
294 OS << "} // end namespace " << Namespace << "\n"; in emitOperandNameMappings()
295 OS << "} // end namespace llvm\n"; in emitOperandNameMappings()
296 OS << "#endif //GET_INSTRINFO_OPERAND_ENUM\n\n"; in emitOperandNameMappings()
298 OS << "#ifdef GET_INSTRINFO_NAMED_OPS\n"; in emitOperandNameMappings()
299 OS << "#undef GET_INSTRINFO_NAMED_OPS\n"; in emitOperandNameMappings()
300 OS << "namespace llvm {\n"; in emitOperandNameMappings()
301 OS << "namespace " << Namespace << " {\n"; in emitOperandNameMappings()
302 OS << "LLVM_READONLY\n"; in emitOperandNameMappings()
303 OS << "int16_t getNamedOperandIdx(uint16_t Opcode, uint16_t NamedIdx) {\n"; in emitOperandNameMappings()
305 OS << " static const int16_t OperandMap [][" << Operands.size() in emitOperandNameMappings()
309 OS << "{"; in emitOperandNameMappings()
313 OS << (OpList.count(i) == 0 ? -1 : (int)OpList.find(i)->second) << ", "; in emitOperandNameMappings()
315 OS << "},\n"; in emitOperandNameMappings()
317 OS << "};\n"; in emitOperandNameMappings()
319 OS << " switch(Opcode) {\n"; in emitOperandNameMappings()
323 OS << " case " << Name << ":\n"; in emitOperandNameMappings()
325 OS << " return OperandMap[" << TableIndex++ << "][NamedIdx];\n"; in emitOperandNameMappings()
327 OS << " default: return -1;\n"; in emitOperandNameMappings()
328 OS << " }\n"; in emitOperandNameMappings()
331 OS << " return -1;\n"; in emitOperandNameMappings()
333 OS << "}\n"; in emitOperandNameMappings()
334 OS << "} // end namespace " << Namespace << "\n"; in emitOperandNameMappings()
335 OS << "} // end namespace llvm\n"; in emitOperandNameMappings()
336 OS << "#endif //GET_INSTRINFO_NAMED_OPS\n\n"; in emitOperandNameMappings()
343 raw_ostream &OS, const CodeGenTarget &Target, in emitOperandTypeMappings() argument
353 OS << "#ifdef GET_INSTRINFO_OPERAND_TYPES_ENUM\n"; in emitOperandTypeMappings()
354 OS << "#undef GET_INSTRINFO_OPERAND_TYPES_ENUM\n"; in emitOperandTypeMappings()
355 OS << "namespace llvm {\n"; in emitOperandTypeMappings()
356 OS << "namespace " << Namespace << " {\n"; in emitOperandTypeMappings()
357 OS << "namespace OpTypes {\n"; in emitOperandTypeMappings()
358 OS << "enum OperandType {\n"; in emitOperandTypeMappings()
365 OS << " " << Op->getName() << " = " << EnumVal << ",\n"; in emitOperandTypeMappings()
370 OS << " OPERAND_TYPE_LIST_END" << "\n};\n"; in emitOperandTypeMappings()
371 OS << "} // end namespace OpTypes\n"; in emitOperandTypeMappings()
372 OS << "} // end namespace " << Namespace << "\n"; in emitOperandTypeMappings()
373 OS << "} // end namespace llvm\n"; in emitOperandTypeMappings()
374 OS << "#endif // GET_INSTRINFO_OPERAND_TYPES_ENUM\n\n"; in emitOperandTypeMappings()
376 OS << "#ifdef GET_INSTRINFO_OPERAND_TYPE\n"; in emitOperandTypeMappings()
377 OS << "#undef GET_INSTRINFO_OPERAND_TYPE\n"; in emitOperandTypeMappings()
378 OS << "namespace llvm {\n"; in emitOperandTypeMappings()
379 OS << "namespace " << Namespace << " {\n"; in emitOperandTypeMappings()
380 OS << "LLVM_READONLY\n"; in emitOperandTypeMappings()
381 OS << "static int getOperandType(uint16_t Opcode, uint16_t OpIdx) {\n"; in emitOperandTypeMappings()
408 OS << ((OperandRecords.size() <= UINT16_MAX) ? " const uint16_t" in emitOperandTypeMappings()
410 OS << " Offsets[] = {\n"; in emitOperandTypeMappings()
412 OS << " " << OperandOffsets[I] << ",\n"; in emitOperandTypeMappings()
413 OS << " };\n"; in emitOperandTypeMappings()
422 OS << ((EnumVal <= INT8_MAX) ? " const int8_t" : " const int16_t"); in emitOperandTypeMappings()
423 OS << " OpcodeOperandTypes[] = {\n "; in emitOperandTypeMappings()
427 OS << "\n "; in emitOperandTypeMappings()
430 OS << "/**/\n "; in emitOperandTypeMappings()
437 OS << "OpTypes::" << OpR->getName(); in emitOperandTypeMappings()
439 OS << -1; in emitOperandTypeMappings()
440 OS << ", "; in emitOperandTypeMappings()
442 OS << "\n };\n"; in emitOperandTypeMappings()
444 OS << " return OpcodeOperandTypes[Offsets[Opcode] + OpIdx];\n"; in emitOperandTypeMappings()
446 OS << " llvm_unreachable(\"No instructions defined\");\n"; in emitOperandTypeMappings()
448 OS << "}\n"; in emitOperandTypeMappings()
449 OS << "} // end namespace " << Namespace << "\n"; in emitOperandTypeMappings()
450 OS << "} // end namespace llvm\n"; in emitOperandTypeMappings()
451 OS << "#endif // GET_INSTRINFO_OPERAND_TYPE\n\n"; in emitOperandTypeMappings()
455 raw_ostream &OS, StringRef Namespace, in emitLogicalOperandSizeMappings() argument
483 OS << "#ifdef GET_INSTRINFO_LOGICAL_OPERAND_SIZE_MAP\n"; in emitLogicalOperandSizeMappings()
484 OS << "#undef GET_INSTRINFO_LOGICAL_OPERAND_SIZE_MAP\n"; in emitLogicalOperandSizeMappings()
485 OS << "namespace llvm {\n"; in emitLogicalOperandSizeMappings()
486 OS << "namespace " << Namespace << " {\n"; in emitLogicalOperandSizeMappings()
487 OS << "LLVM_READONLY static unsigned\n"; in emitLogicalOperandSizeMappings()
488 OS << "getLogicalOperandSize(uint16_t Opcode, uint16_t LogicalOpIdx) {\n"; in emitLogicalOperandSizeMappings()
495 OS << " static const unsigned SizeMap[][" << LogicalOpListSize in emitLogicalOperandSizeMappings()
499 OS << " {"; in emitLogicalOperandSizeMappings()
502 OS << Row[i] << ", "; in emitLogicalOperandSizeMappings()
505 OS << "0, "; in emitLogicalOperandSizeMappings()
507 OS << "}, "; in emitLogicalOperandSizeMappings()
508 OS << "\n"; in emitLogicalOperandSizeMappings()
510 OS << " };\n"; in emitLogicalOperandSizeMappings()
512 OS << " switch (Opcode) {\n"; in emitLogicalOperandSizeMappings()
513 OS << " default: return LogicalOpIdx;\n"; in emitLogicalOperandSizeMappings()
518 OS << " case " << Inst << ":\n"; in emitLogicalOperandSizeMappings()
520 OS << " return SizeMap[" << OpMapIdx << "][LogicalOpIdx];\n"; in emitLogicalOperandSizeMappings()
522 OS << " }\n"; in emitLogicalOperandSizeMappings()
524 OS << " return LogicalOpIdx;\n"; in emitLogicalOperandSizeMappings()
526 OS << "}\n"; in emitLogicalOperandSizeMappings()
528 OS << "LLVM_READONLY static inline unsigned\n"; in emitLogicalOperandSizeMappings()
529 OS << "getLogicalOperandIdx(uint16_t Opcode, uint16_t LogicalOpIdx) {\n"; in emitLogicalOperandSizeMappings()
530 OS << " auto S = 0U;\n"; in emitLogicalOperandSizeMappings()
531 OS << " for (auto i = 0U; i < LogicalOpIdx; ++i)\n"; in emitLogicalOperandSizeMappings()
532 OS << " S += getLogicalOperandSize(Opcode, i);\n"; in emitLogicalOperandSizeMappings()
533 OS << " return S;\n"; in emitLogicalOperandSizeMappings()
534 OS << "}\n"; in emitLogicalOperandSizeMappings()
536 OS << "} // end namespace " << Namespace << "\n"; in emitLogicalOperandSizeMappings()
537 OS << "} // end namespace llvm\n"; in emitLogicalOperandSizeMappings()
538 OS << "#endif // GET_INSTRINFO_LOGICAL_OPERAND_SIZE_MAP\n\n"; in emitLogicalOperandSizeMappings()
542 raw_ostream &OS, StringRef Namespace, in emitLogicalOperandTypeMappings() argument
576 OS << "#ifdef GET_INSTRINFO_LOGICAL_OPERAND_TYPE_MAP\n"; in emitLogicalOperandTypeMappings()
577 OS << "#undef GET_INSTRINFO_LOGICAL_OPERAND_TYPE_MAP\n"; in emitLogicalOperandTypeMappings()
578 OS << "namespace llvm {\n"; in emitLogicalOperandTypeMappings()
579 OS << "namespace " << Namespace << " {\n"; in emitLogicalOperandTypeMappings()
580 OS << "LLVM_READONLY static int\n"; in emitLogicalOperandTypeMappings()
581 OS << "getLogicalOperandType(uint16_t Opcode, uint16_t LogicalOpIdx) {\n"; in emitLogicalOperandTypeMappings()
588 OS << " static const int TypeMap[][" << OpTypeListSize << "] = {\n"; in emitLogicalOperandTypeMappings()
591 OS << " {"; in emitLogicalOperandTypeMappings()
595 OS << ", "; in emitLogicalOperandTypeMappings()
596 OS << Row[i]; in emitLogicalOperandTypeMappings()
600 OS << ", "; in emitLogicalOperandTypeMappings()
601 OS << "-1"; in emitLogicalOperandTypeMappings()
603 OS << "}"; in emitLogicalOperandTypeMappings()
605 OS << ","; in emitLogicalOperandTypeMappings()
606 OS << "\n"; in emitLogicalOperandTypeMappings()
608 OS << " };\n"; in emitLogicalOperandTypeMappings()
610 OS << " switch (Opcode) {\n"; in emitLogicalOperandTypeMappings()
611 OS << " default: return -1;\n"; in emitLogicalOperandTypeMappings()
616 OS << " case " << Inst << ":\n"; in emitLogicalOperandTypeMappings()
618 OS << " return TypeMap[" << OpMapIdx << "][LogicalOpIdx];\n"; in emitLogicalOperandTypeMappings()
620 OS << " }\n"; in emitLogicalOperandTypeMappings()
622 OS << " return -1;\n"; in emitLogicalOperandTypeMappings()
624 OS << "}\n"; in emitLogicalOperandTypeMappings()
625 OS << "} // end namespace " << Namespace << "\n"; in emitLogicalOperandTypeMappings()
626 OS << "} // end namespace llvm\n"; in emitLogicalOperandTypeMappings()
627 OS << "#endif // GET_INSTRINFO_LOGICAL_OPERAND_TYPE_MAP\n\n"; in emitLogicalOperandTypeMappings()
630 void InstrInfoEmitter::emitMCIIHelperMethods(raw_ostream &OS, in emitMCIIHelperMethods() argument
636 OS << "#ifdef GET_INSTRINFO_MC_HELPER_DECLS\n"; in emitMCIIHelperMethods()
637 OS << "#undef GET_INSTRINFO_MC_HELPER_DECLS\n\n"; in emitMCIIHelperMethods()
639 OS << "namespace llvm {\n"; in emitMCIIHelperMethods()
640 OS << "class MCInst;\n\n"; in emitMCIIHelperMethods()
642 OS << "namespace " << TargetName << "_MC {\n\n"; in emitMCIIHelperMethods()
645 OS << "bool " << Rec->getValueAsString("FunctionName") in emitMCIIHelperMethods()
649 OS << "\n} // end namespace " << TargetName << "_MC\n"; in emitMCIIHelperMethods()
650 OS << "} // end namespace llvm\n\n"; in emitMCIIHelperMethods()
652 OS << "#endif // GET_INSTRINFO_MC_HELPER_DECLS\n\n"; in emitMCIIHelperMethods()
654 OS << "#ifdef GET_INSTRINFO_MC_HELPERS\n"; in emitMCIIHelperMethods()
655 OS << "#undef GET_INSTRINFO_MC_HELPERS\n\n"; in emitMCIIHelperMethods()
657 OS << "namespace llvm {\n"; in emitMCIIHelperMethods()
658 OS << "namespace " << TargetName << "_MC {\n\n"; in emitMCIIHelperMethods()
664 OS << "bool " << Rec->getValueAsString("FunctionName"); in emitMCIIHelperMethods()
665 OS << "(const MCInst &MI) {\n"; in emitMCIIHelperMethods()
667 OS.indent(PE.getIndentLevel() * 2); in emitMCIIHelperMethods()
668 PE.expandStatement(OS, Rec->getValueAsDef("Body")); in emitMCIIHelperMethods()
669 OS << "\n}\n\n"; in emitMCIIHelperMethods()
672 OS << "} // end namespace " << TargetName << "_MC\n"; in emitMCIIHelperMethods()
673 OS << "} // end namespace llvm\n\n"; in emitMCIIHelperMethods()
675 OS << "#endif // GET_GENISTRINFO_MC_HELPERS\n"; in emitMCIIHelperMethods()
678 void InstrInfoEmitter::emitTIIHelperMethods(raw_ostream &OS, in emitTIIHelperMethods() argument
689 OS << (ExpandDefinition ? "" : "static ") << "bool "; in emitTIIHelperMethods()
691 OS << TargetName << "InstrInfo::"; in emitTIIHelperMethods()
692 OS << Rec->getValueAsString("FunctionName"); in emitTIIHelperMethods()
693 OS << "(const MachineInstr &MI)"; in emitTIIHelperMethods()
695 OS << ";\n"; in emitTIIHelperMethods()
699 OS << " {\n"; in emitTIIHelperMethods()
700 OS.indent(PE.getIndentLevel() * 2); in emitTIIHelperMethods()
701 PE.expandStatement(OS, Rec->getValueAsDef("Body")); in emitTIIHelperMethods()
702 OS << "\n}\n\n"; in emitTIIHelperMethods()
711 void InstrInfoEmitter::run(raw_ostream &OS) { in run() argument
712 emitSourceFileHeader("Target Instruction Enum Values and Descriptors", OS); in run()
713 emitEnums(OS); in run()
715 OS << "#ifdef GET_INSTRINFO_MC_DESC\n"; in run()
716 OS << "#undef GET_INSTRINFO_MC_DESC\n"; in run()
718 OS << "namespace llvm {\n\n"; in run()
735 if (!IL) PrintDefList(Uses, IL = ++ListNumber, OS); in run()
740 if (!IL) PrintDefList(Defs, IL = ++ListNumber, OS); in run()
748 EmitOperandInfo(OS, OperandInfoIDs); in run()
753 OS << "\nextern const MCInstrDesc " << TargetName << "Insts[] = {\n"; in run()
763 emitRecord(*Inst, Num++, InstrInfo, EmittedLists, OperandInfoIDs, OS); in run()
765 OS << "};\n\n"; in run()
770 InstrNames.emitStringLiteralDef(OS, Twine("extern const char ") + TargetName + in run()
773 OS << "extern const unsigned " << TargetName <<"InstrNameIndices[] = {"; in run()
778 OS << "\n "; in run()
779 OS << InstrNames.get(std::string(Inst->TheDef->getName())) << "U, "; in run()
782 OS << "\n};\n\n"; in run()
790 OS << "extern const uint8_t " << TargetName in run()
795 OS << "\n "; in run()
798 OS << Target.getInstNamespace() << "::" << Inst->DeprecatedReason in run()
801 OS << "uint8_t(-1), "; in run()
804 OS << "\n};\n\n"; in run()
812 OS << "extern const MCInstrInfo::ComplexDeprecationPredicate " << TargetName in run()
817 OS << "\n "; in run()
820 OS << "&get" << Inst->DeprecatedReason << "DeprecationInfo, "; in run()
822 OS << "nullptr, "; in run()
825 OS << "\n};\n\n"; in run()
830 OS << "static inline void Init" << TargetName in run()
832 OS << " II->InitMCInstrInfo(" << TargetName << "Insts, " << TargetName in run()
835 OS << TargetName << "InstrDeprecationFeatures, "; in run()
837 OS << "nullptr, "; in run()
839 OS << TargetName << "InstrComplexDeprecationInfos, "; in run()
841 OS << "nullptr, "; in run()
842 OS << NumberedInstructions.size() << ");\n}\n\n"; in run()
844 OS << "} // end namespace llvm\n"; in run()
846 OS << "#endif // GET_INSTRINFO_MC_DESC\n\n"; in run()
849 OS << "#ifdef GET_INSTRINFO_HEADER\n"; in run()
850 OS << "#undef GET_INSTRINFO_HEADER\n"; in run()
853 OS << "namespace llvm {\n"; in run()
854 OS << "struct " << ClassName << " : public TargetInstrInfo {\n" in run()
860 OS << "\n};\n} // end namespace llvm\n"; in run()
862 OS << "#endif // GET_INSTRINFO_HEADER\n\n"; in run()
864 OS << "#ifdef GET_INSTRINFO_HELPER_DECLS\n"; in run()
865 OS << "#undef GET_INSTRINFO_HELPER_DECLS\n\n"; in run()
866 emitTIIHelperMethods(OS, TargetName, /* ExpandDefintion = */false); in run()
867 OS << "\n"; in run()
868 OS << "#endif // GET_INSTRINFO_HELPER_DECLS\n\n"; in run()
870 OS << "#ifdef GET_INSTRINFO_HELPERS\n"; in run()
871 OS << "#undef GET_INSTRINFO_HELPERS\n\n"; in run()
872 emitTIIHelperMethods(OS, TargetName, /* ExpandDefintion = */true); in run()
873 OS << "#endif // GET_INSTRINFO_HELPERS\n\n"; in run()
875 OS << "#ifdef GET_INSTRINFO_CTOR_DTOR\n"; in run()
876 OS << "#undef GET_INSTRINFO_CTOR_DTOR\n"; in run()
878 OS << "namespace llvm {\n"; in run()
879 OS << "extern const MCInstrDesc " << TargetName << "Insts[];\n"; in run()
880 OS << "extern const unsigned " << TargetName << "InstrNameIndices[];\n"; in run()
881 OS << "extern const char " << TargetName << "InstrNameData[];\n"; in run()
883 OS << "extern const uint8_t " << TargetName in run()
886 OS << "extern const MCInstrInfo::ComplexDeprecationPredicate " << TargetName in run()
888 OS << ClassName << "::" << ClassName in run()
896 OS << TargetName << "InstrDeprecationFeatures, "; in run()
898 OS << "nullptr, "; in run()
900 OS << TargetName << "InstrComplexDeprecationInfos, "; in run()
902 OS << "nullptr, "; in run()
903 OS << NumberedInstructions.size() << ");\n}\n"; in run()
904 OS << "} // end namespace llvm\n"; in run()
906 OS << "#endif // GET_INSTRINFO_CTOR_DTOR\n\n"; in run()
909 emitOperandNameMappings(OS, Target, NumberedInstructions); in run()
912 emitOperandTypeMappings(OS, Target, NumberedInstructions); in run()
915 emitLogicalOperandSizeMappings(OS, TargetName, NumberedInstructions); in run()
918 emitLogicalOperandTypeMappings(OS, TargetName, NumberedInstructions); in run()
921 emitMCIIHelperMethods(OS, TargetName); in run()
928 raw_ostream &OS) { in emitRecord() argument
935 OS << " { "; in emitRecord()
936 OS << Num << ",\t" << MinOperands << ",\t" in emitRecord()
944 if (Inst.isPreISelOpcode) OS << "|(1ULL<<MCID::PreISelOpcode)"; in emitRecord()
945 if (Inst.isPseudo) OS << "|(1ULL<<MCID::Pseudo)"; in emitRecord()
946 if (Inst.isReturn) OS << "|(1ULL<<MCID::Return)"; in emitRecord()
947 if (Inst.isEHScopeReturn) OS << "|(1ULL<<MCID::EHScopeReturn)"; in emitRecord()
948 if (Inst.isBranch) OS << "|(1ULL<<MCID::Branch)"; in emitRecord()
949 if (Inst.isIndirectBranch) OS << "|(1ULL<<MCID::IndirectBranch)"; in emitRecord()
950 if (Inst.isCompare) OS << "|(1ULL<<MCID::Compare)"; in emitRecord()
951 if (Inst.isMoveImm) OS << "|(1ULL<<MCID::MoveImm)"; in emitRecord()
952 if (Inst.isMoveReg) OS << "|(1ULL<<MCID::MoveReg)"; in emitRecord()
953 if (Inst.isBitcast) OS << "|(1ULL<<MCID::Bitcast)"; in emitRecord()
954 if (Inst.isAdd) OS << "|(1ULL<<MCID::Add)"; in emitRecord()
955 if (Inst.isTrap) OS << "|(1ULL<<MCID::Trap)"; in emitRecord()
956 if (Inst.isSelect) OS << "|(1ULL<<MCID::Select)"; in emitRecord()
957 if (Inst.isBarrier) OS << "|(1ULL<<MCID::Barrier)"; in emitRecord()
958 if (Inst.hasDelaySlot) OS << "|(1ULL<<MCID::DelaySlot)"; in emitRecord()
959 if (Inst.isCall) OS << "|(1ULL<<MCID::Call)"; in emitRecord()
960 if (Inst.canFoldAsLoad) OS << "|(1ULL<<MCID::FoldableAsLoad)"; in emitRecord()
961 if (Inst.mayLoad) OS << "|(1ULL<<MCID::MayLoad)"; in emitRecord()
962 if (Inst.mayStore) OS << "|(1ULL<<MCID::MayStore)"; in emitRecord()
963 if (Inst.mayRaiseFPException) OS << "|(1ULL<<MCID::MayRaiseFPException)"; in emitRecord()
964 if (Inst.isPredicable) OS << "|(1ULL<<MCID::Predicable)"; in emitRecord()
965 if (Inst.isConvertibleToThreeAddress) OS << "|(1ULL<<MCID::ConvertibleTo3Addr)"; in emitRecord()
966 if (Inst.isCommutable) OS << "|(1ULL<<MCID::Commutable)"; in emitRecord()
967 if (Inst.isTerminator) OS << "|(1ULL<<MCID::Terminator)"; in emitRecord()
968 if (Inst.isReMaterializable) OS << "|(1ULL<<MCID::Rematerializable)"; in emitRecord()
969 if (Inst.isNotDuplicable) OS << "|(1ULL<<MCID::NotDuplicable)"; in emitRecord()
970 if (Inst.Operands.hasOptionalDef) OS << "|(1ULL<<MCID::HasOptionalDef)"; in emitRecord()
971 if (Inst.usesCustomInserter) OS << "|(1ULL<<MCID::UsesCustomInserter)"; in emitRecord()
972 if (Inst.hasPostISelHook) OS << "|(1ULL<<MCID::HasPostISelHook)"; in emitRecord()
973 if (Inst.Operands.isVariadic)OS << "|(1ULL<<MCID::Variadic)"; in emitRecord()
974 if (Inst.hasSideEffects) OS << "|(1ULL<<MCID::UnmodeledSideEffects)"; in emitRecord()
975 if (Inst.isAsCheapAsAMove) OS << "|(1ULL<<MCID::CheapAsAMove)"; in emitRecord()
977 OS << "|(1ULL<<MCID::ExtraSrcRegAllocReq)"; in emitRecord()
979 OS << "|(1ULL<<MCID::ExtraDefRegAllocReq)"; in emitRecord()
980 if (Inst.isRegSequence) OS << "|(1ULL<<MCID::RegSequence)"; in emitRecord()
981 if (Inst.isExtractSubreg) OS << "|(1ULL<<MCID::ExtractSubreg)"; in emitRecord()
982 if (Inst.isInsertSubreg) OS << "|(1ULL<<MCID::InsertSubreg)"; in emitRecord()
983 if (Inst.isConvergent) OS << "|(1ULL<<MCID::Convergent)"; in emitRecord()
984 if (Inst.variadicOpsAreDefs) OS << "|(1ULL<<MCID::VariadicOpsAreDefs)"; in emitRecord()
985 if (Inst.isAuthenticated) OS << "|(1ULL<<MCID::Authenticated)"; in emitRecord()
999 OS << ", 0x"; in emitRecord()
1000 OS.write_hex(Value); in emitRecord()
1001 OS << "ULL, "; in emitRecord()
1006 OS << "nullptr, "; in emitRecord()
1008 OS << "ImplicitList" << EmittedLists[UseList] << ", "; in emitRecord()
1012 OS << "nullptr, "; in emitRecord()
1014 OS << "ImplicitList" << EmittedLists[DefList] << ", "; in emitRecord()
1019 OS << "nullptr"; in emitRecord()
1021 OS << "OperandInfo" << OpInfo.find(OperandInfo)->second; in emitRecord()
1023 OS << " }, // Inst #" << Num << " = " << Inst.TheDef->getName() << "\n"; in emitRecord()
1027 void InstrInfoEmitter::emitEnums(raw_ostream &OS) { in emitEnums() argument
1028 OS << "#ifdef GET_INSTRINFO_ENUM\n"; in emitEnums()
1029 OS << "#undef GET_INSTRINFO_ENUM\n"; in emitEnums()
1031 OS << "namespace llvm {\n\n"; in emitEnums()
1041 OS << "namespace " << Namespace << " {\n"; in emitEnums()
1042 OS << " enum {\n"; in emitEnums()
1045 OS << " " << Inst->TheDef->getName() << "\t= " << Num++ << ",\n"; in emitEnums()
1046 OS << " INSTRUCTION_LIST_END = " << Num << "\n"; in emitEnums()
1047 OS << " };\n\n"; in emitEnums()
1048 OS << "} // end namespace " << Namespace << "\n"; in emitEnums()
1049 OS << "} // end namespace llvm\n"; in emitEnums()
1050 OS << "#endif // GET_INSTRINFO_ENUM\n\n"; in emitEnums()
1052 OS << "#ifdef GET_INSTRINFO_SCHED_ENUM\n"; in emitEnums()
1053 OS << "#undef GET_INSTRINFO_SCHED_ENUM\n"; in emitEnums()
1054 OS << "namespace llvm {\n\n"; in emitEnums()
1055 OS << "namespace " << Namespace << " {\n"; in emitEnums()
1056 OS << "namespace Sched {\n"; in emitEnums()
1057 OS << " enum {\n"; in emitEnums()
1060 OS << " " << Class.Name << "\t= " << Num++ << ",\n"; in emitEnums()
1061 OS << " SCHED_LIST_END = " << Num << "\n"; in emitEnums()
1062 OS << " };\n"; in emitEnums()
1063 OS << "} // end namespace Sched\n"; in emitEnums()
1064 OS << "} // end namespace " << Namespace << "\n"; in emitEnums()
1065 OS << "} // end namespace llvm\n"; in emitEnums()
1067 OS << "#endif // GET_INSTRINFO_SCHED_ENUM\n\n"; in emitEnums()
1072 void EmitInstrInfo(RecordKeeper &RK, raw_ostream &OS) { in EmitInstrInfo() argument
1074 InstrInfoEmitter(RK).run(OS); in EmitInstrInfo()
1076 EmitMapTable(RK, OS); in EmitInstrInfo()