X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;ds=sidebyside;f=utils%2FTableGen%2FSubtargetEmitter.h;h=93055b7fec12655888b48cdf3bec8a5ab7c07d5d;hb=6844f7bcdec8c2691c8d1067d90e4a02cf658c27;hp=1d7088fd390235c8d712c99536d11acf53038254;hpb=fac8541dd40e01aa2b52962516f9ae67c99720cc;p=oota-llvm.git diff --git a/utils/TableGen/SubtargetEmitter.h b/utils/TableGen/SubtargetEmitter.h index 1d7088fd390..93055b7fec1 100644 --- a/utils/TableGen/SubtargetEmitter.h +++ b/utils/TableGen/SubtargetEmitter.h @@ -24,29 +24,36 @@ namespace llvm { class SubtargetEmitter : public TableGenBackend { - + RecordKeeper &Records; std::string Target; bool HasItineraries; - + void Enumeration(raw_ostream &OS, const char *ClassName, bool isBits); void FeatureKeyValues(raw_ostream &OS); void CPUKeyValues(raw_ostream &OS); unsigned CollectAllItinClasses(raw_ostream &OS, - std::map &ItinClassesMap); - void FormItineraryStageString(Record *ItinData, std::string &ItinString, + std::map &ItinClassesMap, + std::vector &ItinClassList); + void FormItineraryStageString(const std::string &Names, + Record *ItinData, std::string &ItinString, unsigned &NStages); void FormItineraryOperandCycleString(Record *ItinData, std::string &ItinString, unsigned &NOperandCycles); + void FormItineraryBypassString(const std::string &Names, + Record *ItinData, + std::string &ItinString, unsigned NOperandCycles); void EmitStageAndOperandCycleData(raw_ostream &OS, unsigned NItinClasses, std::map &ItinClassesMap, + std::vector &ItinClassList, std::vector > &ProcList); void EmitProcessorData(raw_ostream &OS, - std::vector > &ProcList); + std::vector &ItinClassList, + std::vector > &ProcList); void EmitProcessorLookup(raw_ostream &OS); void EmitData(raw_ostream &OS); void ParseFeaturesFunction(raw_ostream &OS); - + public: SubtargetEmitter(RecordKeeper &R) : Records(R), HasItineraries(false) {}