|
typedef std::pair< std::string, ExplorerPluginParameter > | Parameter |
|
typedef std::map< std::string, ExplorerPluginParameter > | ParameterMap |
|
typedef std::map< std::string, ExplorerPluginParameter >::iterator | PMIt |
|
typedef std::map< std::string, ExplorerPluginParameter >::const_iterator | PMCIt |
|
virtual std::string | description () const |
|
void | addParameter (TCEString name, ExplorerPluginParameterType type, bool compulsory=true, TCEString defaultValue="", TCEString description="") |
|
template<typename T > |
void | readCompulsoryParameter (const std::string paramName, T ¶m) const |
|
template<typename T > |
void | readOptionalParameter (const std::string paramName, T ¶m) const |
|
template<typename RT > |
RT | parameterValue (const std::string ¶mName) const |
|
virtual | ~DesignSpaceExplorerPlugin () |
|
virtual void | giveParameter (const std::string &name, const std::string &value) |
|
virtual std::string | name () const |
|
virtual void | setPluginName (const std::string &pluginName) |
|
virtual bool | hasParameter (const std::string ¶mName) const |
|
ParameterMap | parameters () const |
|
virtual bool | booleanValue (const std::string ¶meter) const |
|
| DesignSpaceExplorer () |
|
virtual | ~DesignSpaceExplorer () |
|
virtual void | setDSDB (DSDBManager &dsdb) |
|
virtual bool | evaluate (const DSDBManager::MachineConfiguration &configuration, CostEstimates &results=dummyEstimate_, bool estimate=false) |
|
virtual DSDBManager & | db () |
|
std::vector< DesignSpaceExplorerPlugin * > | getPlugins () |
|
RowID | createImplementationAndStore (const DSDBManager::MachineConfiguration &conf, const double &frequency=0.0, const double &maxArea=0.0, const bool &createEstimates=true, const std::string &icDec="DefaultICDecoder", const std::string &icDecHDB="asic_130nm_1.5V.hdb") |
|
bool | createImplementation (const DSDBManager::MachineConfiguration &conf, DSDBManager::MachineConfiguration &newConf, const double &frequency=0.0, const double &maxArea=0.0, const bool &createEstimates=true, const std::string &icDec="DefaultICDecoder", const std::string &icDecHDB="asic_130nm_1.5V.hdb") |
|
IDF::MachineImplementation * | selectComponents (const TTAMachine::Machine &mach, const double &frequency=0.0, const double &maxArea=0.0, const std::string &icDec="DefaultICDecoder", const std::string &icDecHDB="asic_130nm_1.5V.hdb") const |
|
void | createEstimateData (const TTAMachine::Machine &mach, const IDF::MachineImplementation &idf, CostEstimator::AreaInGates &area, CostEstimator::DelayInNanoSeconds &longestPathDelay) |
|
RowID | addConfToDSDB (const DSDBManager::MachineConfiguration &conf) |
|
static DesignSpaceExplorerPlugin * | loadExplorerPlugin (const std::string &pluginName, DSDBManager *dsdb=NULL) |
|
| DesignSpaceExplorerPlugin () |
|
void | checkParameters () const |
|
TTAProgram::Program * | schedule (const std::string applicationFile, TTAMachine::Machine &machine, TCEString paramOptions="-O3") |
|
const ExecutionTrace * | simulate (const TTAProgram::Program &program, const TTAMachine::Machine &machine, const TestApplication &testApplication, const ClockCycleCount &maxCycles, ClockCycleCount &runnedCycles, const bool tracing, const bool useCompiledSimulation=false, std::vector< ClockCycleCount > *executionCounts=NULL) |
|
std::string | pluginName_ |
| the name of the explorer plugin More...
|
|
ParameterMap | parameters_ |
| Parameters for the plugin. More...
|
|
Explorer plugin that creates or modifies machine instruction template by adding/removing immediates.
Definition at line 69 of file ImmediateGenerator.cc.
◆ ImmediateGenerator()
ImmediateGenerator::ImmediateGenerator |
( |
| ) |
|
|
inlineprivate |
◆ addInsTemplate()
Adds instruction template with a name given as parameter.
- Parameters
-
mach | Target machine. |
name | Instruction template name to be added. |
Definition at line 320 of file ImmediateGenerator.cc.
326 std::ostringstream msg(std::ostringstream::out);
327 msg <<
"Error while using ImmediateGenerator:" << endl
333 std::ostringstream msg(std::ostringstream::out);
334 msg <<
"Error while using ImmediateGenerator:" << endl
References Exception::errorMessage(), and verboseLog.
◆ addSplitInsTemplate()
◆ explore()
virtual std::vector<RowID> ImmediateGenerator::explore |
( |
const RowID & |
startPointConfigurationID, |
|
|
const unsigned int & |
|
|
) |
| |
|
inlineprivatevirtual |
Explorer plugin that creates or modifies machine instruction templates. TODO: add some modifying functionality.
Supported parameters:
- print, boolean, print information about machines instruction templates.
- remove_it_name, string, remove instruction template with a given name.
- add_it_name, string, add empty instruction template with a given name.
- modify_it_name, string, modify instruction template with a given name.
- width, int, instruction template supported width.
- width_part, int, minimum size of width per slot. Default 8.
- split, boolean, split immediate among slots.
- dst_imm_unit, string, destination immediate unit.
- Parameters
-
startPointConfigurationID | Configuration to optimize. |
Reimplemented from DesignSpaceExplorerPlugin.
Definition at line 120 of file ImmediateGenerator.cc.
124 std::vector<RowID> result;
141 std::ostringstream msg(std::ostringstream::out);
186 result.push_back(confID);
190 std::ostringstream msg(std::ostringstream::out);
191 msg <<
"Error while using ImmediateGenerator:" << endl
References DSDBManager::addArchitecture(), DSDBManager::addConfiguration(), DSDBManager::addImplementation(), DSDBManager::architecture(), DSDBManager::MachineConfiguration::architectureID, DSDBManager::configuration(), Exception::errorMessage(), DSDBManager::MachineConfiguration::hasImplementation, DSDBManager::implementation(), DSDBManager::MachineConfiguration::implementationID, CostEstimator::Estimator::longestPath(), CostEstimator::Estimator::totalArea(), and verboseLog.
◆ PLUGIN_DESCRIPTION()
ImmediateGenerator::PLUGIN_DESCRIPTION |
( |
"Creates immediates for configuration." |
| ) |
|
|
private |
◆ printImmediateTemplates()
Print info about instruction templates of a given machine.
- Parameters
-
mach | Machine which instruction templates are to be printed. |
Definition at line 252 of file ImmediateGenerator.cc.
256 std::ostringstream msg(std::ostringstream::out);
257 msg <<
"====== Instruction templates: =======" << endl;
261 for (
int it = 0; it < ITNav.
count(); it++) {
262 insTemplate = ITNav.
item(it);
264 msg <<
"Instruction template: " << insTemplate->
name() << endl;
266 msg <<
"\tEmpty instruction template." << endl;
270 msg <<
"\tSlot count: " << insTemplate->
slotCount() << endl;
271 for (
int sc = 0; sc < insTemplate->
slotCount(); sc++) {
272 tempSlot = insTemplate->
slot(sc);
273 msg <<
"\t\tSlot name: " << tempSlot->
slot() << endl;
274 msg <<
"\t\tSlot width: " << tempSlot->
width() << endl;
275 msg <<
"\t\tSlot destination: "
279 msg <<
"\tSupported Width: " << insTemplate->
supportedWidth() << endl;
280 msg <<
"\tNumber of Destinations: "
References TTAMachine::Machine::Navigator< ComponentType >::count(), TTAMachine::TemplateSlot::destination(), TTAMachine::Machine::instructionTemplateNavigator(), TTAMachine::InstructionTemplate::isEmpty(), TTAMachine::Machine::Navigator< ComponentType >::item(), TTAMachine::Component::name(), TTAMachine::InstructionTemplate::numberOfDestinations(), TTAMachine::InstructionTemplate::slot(), TTAMachine::TemplateSlot::slot(), TTAMachine::InstructionTemplate::slotCount(), TTAMachine::InstructionTemplate::supportedWidth(), verboseLog, and TTAMachine::TemplateSlot::width().
◆ producesArchitecture()
virtual bool ImmediateGenerator::producesArchitecture |
( |
| ) |
const |
|
inlineprivatevirtual |
◆ readParameters()
void ImmediateGenerator::readParameters |
( |
| ) |
|
|
inlineprivate |
◆ removeInsTemplate()
◆ requiresApplication()
virtual bool ImmediateGenerator::requiresApplication |
( |
| ) |
const |
|
inlineprivatevirtual |
◆ requiresHDB()
virtual bool ImmediateGenerator::requiresHDB |
( |
| ) |
const |
|
inlineprivatevirtual |
◆ requiresSimulationData()
virtual bool ImmediateGenerator::requiresSimulationData |
( |
| ) |
const |
|
inlineprivatevirtual |
◆ requiresStartingPointArchitecture()
virtual bool ImmediateGenerator::requiresStartingPointArchitecture |
( |
| ) |
const |
|
inlineprivatevirtual |
◆ addInsTemplateName_
std::string ImmediateGenerator::addInsTemplateName_ |
|
private |
◆ addInsTemplateNamePN_
const std::string ImmediateGenerator::addInsTemplateNamePN_ |
|
staticprivate |
◆ createNewConfig_
bool ImmediateGenerator::createNewConfig_ |
|
private |
◆ dstImmUnitName_
std::string ImmediateGenerator::dstImmUnitName_ |
|
private |
◆ dstImmUnitNamePN_
const std::string ImmediateGenerator::dstImmUnitNamePN_ |
|
staticprivate |
◆ modInsTemplateName_
std::string ImmediateGenerator::modInsTemplateName_ |
|
private |
◆ modInsTemplateNamePN_
const std::string ImmediateGenerator::modInsTemplateNamePN_ |
|
staticprivate |
◆ print_
bool ImmediateGenerator::print_ |
|
private |
◆ printPN_
const std::string ImmediateGenerator::printPN_ |
|
staticprivate |
◆ removeInsTemplateName_
std::string ImmediateGenerator::removeInsTemplateName_ |
|
private |
◆ removeInsTemplateNamePN_
const std::string ImmediateGenerator::removeInsTemplateNamePN_ |
|
staticprivate |
◆ split_
bool ImmediateGenerator::split_ |
|
private |
◆ splitPN_
const std::string ImmediateGenerator::splitPN_ |
|
staticprivate |
◆ width_
unsigned int ImmediateGenerator::width_ |
|
private |
◆ widthPart_
unsigned int ImmediateGenerator::widthPart_ |
|
private |
minimum width on long instruction slot when splitting the template.
Definition at line 225 of file ImmediateGenerator.cc.
◆ widthPartPN_
const std::string ImmediateGenerator::widthPartPN_ |
|
staticprivate |
◆ widthPN_
const std::string ImmediateGenerator::widthPN_ |
|
staticprivate |
The documentation for this class was generated from the following file:
void readCompulsoryParameter(const std::string paramName, T ¶m) const
AreaInGates totalArea(const TTAMachine::Machine &machine, const IDF::MachineImplementation &machineImplementation)
area estimation functions
virtual void deleteInstructionTemplate(InstructionTemplate &instrTempl)
virtual TCEString name() const
virtual DSDBManager & db()
TTAMachine::Machine * architecture(RowID id) const
DelayInNanoSeconds longestPath(const TTAMachine::Machine &machine, const IDF::MachineImplementation &machineImplementation)
delay estimation functions
virtual void addSlot(const std::string &slotName, int width, ImmediateUnit &dstUnit)
virtual int numberOfDestinations() const
int RowID
Type definition of row ID in relational databases.
DesignSpaceExplorerPlugin()
double AreaInGates
type for area values in equivalent gates
virtual int slotCount() const
static std::string toString(const T &source)
virtual ImmediateUnitNavigator immediateUnitNavigator() const
ImmediateUnit * destination() const
virtual int supportedWidth() const
std::string errorMessage() const
RowID addConfiguration(const MachineConfiguration &conf)
double DelayInNanoSeconds
type for propagation delays in nano seconds
RowID addArchitecture(const TTAMachine::Machine &mom)
MachineConfiguration configuration(RowID id) const
virtual BusNavigator busNavigator() const
virtual bool isEmpty() const
IDF::MachineImplementation * implementation(RowID id) const
virtual std::string name() const
ComponentType * item(int index) const
virtual InstructionTemplateNavigator instructionTemplateNavigator() const
void addParameter(TCEString name, ExplorerPluginParameterType type, bool compulsory=true, TCEString defaultValue="", TCEString description="")
RowID addImplementation(const IDF::MachineImplementation &impl, double longestPathDelay, CostEstimator::AreaInGates area)
virtual TemplateSlot * slot(int index) const