diff --git a/include/opt-sched/Scheduler/machine_model.h b/include/opt-sched/Scheduler/machine_model.h index 95905749..b4c9753f 100644 --- a/include/opt-sched/Scheduler/machine_model.h +++ b/include/opt-sched/Scheduler/machine_model.h @@ -189,6 +189,8 @@ class MachineModel { std::vector registerTypes_; // A vector of issue types with their names and slot counts. std::vector issueTypes_; + + void parseBuffer(SpecsBuffer &buf); }; } // namespace opt_sched diff --git a/lib/Scheduler/machine_model.cpp b/lib/Scheduler/machine_model.cpp index 6fd89ae3..e8029df7 100644 --- a/lib/Scheduler/machine_model.cpp +++ b/lib/Scheduler/machine_model.cpp @@ -14,12 +14,7 @@ using namespace llvm::opt_sched; using std::string; using std::vector; -MachineModel::MachineModel(const std::string &modelFile) { - SpecsBuffer buf; - buf.Load(modelFile.c_str()); -} - -MachineModel::MachineModel(SpecsBuffer &buf) { +void MachineModel::parseBuffer(SpecsBuffer &buf) { char buffer[MAX_NAMESIZE]; buf.ReadSpec("MODEL_NAME:", buffer); @@ -91,6 +86,14 @@ MachineModel::MachineModel(SpecsBuffer &buf) { } } +MachineModel::MachineModel(const std::string &modelFile) { + SpecsBuffer buf; + buf.Load(modelFile.c_str()); + parseBuffer(buf); +} + +MachineModel::MachineModel(SpecsBuffer &buf) { parseBuffer(buf); } + InstType MachineModel::GetInstTypeByName(const string &typeName, const string &prevName) const { string composite = prevName.size() ? typeName + "_after_" + prevName : "";