OpenASIP 2.2
Loading...
Searching...
No Matches
Private Member Functions | Private Attributes | Static Private Attributes | List of all members
ImmediateGenerator Class Reference
Inheritance diagram for ImmediateGenerator:
Inheritance graph
Collaboration diagram for ImmediateGenerator:
Collaboration graph

Private Member Functions

 PLUGIN_DESCRIPTION ("Creates immediates for configuration.")
 
 ImmediateGenerator ()
 
virtual bool requiresStartingPointArchitecture () const
 
virtual bool producesArchitecture () const
 
virtual bool requiresHDB () const
 
virtual bool requiresSimulationData () const
 
virtual bool requiresApplication () const
 
virtual std::vector< RowIDexplore (const RowID &startPointConfigurationID, const unsigned int &)
 
void readParameters ()
 
void printImmediateTemplates (TTAMachine::Machine &mach)
 
void removeInsTemplate (TTAMachine::Machine &mach, std::string name)
 
void addInsTemplate (TTAMachine::Machine &mach, std::string name)
 
void addSplitInsTemplate (TTAMachine::Machine &mach, std::string name)
 

Private Attributes

bool createNewConfig_
 Boolean value used to decide if new config is created.
 
bool print_
 print values
 
std::string removeInsTemplateName_
 instruction template name to be removed.
 
std::string addInsTemplateName_
 instruction template name to be added.
 
std::string modInsTemplateName_
 instruction template name to be modified.
 
unsigned int width_
 width of the target template
 
unsigned int widthPart_
 minimum width on long instruction slot when splitting the template.
 
bool split_
 make evenly bus/slot wise splitted template.
 
std::string dstImmUnitName_
 destination immediate unit name
 

Static Private Attributes

static const std::string printPN_
 
static const std::string removeInsTemplateNamePN_
 
static const std::string addInsTemplateNamePN_
 
static const std::string modInsTemplateNamePN_
 
static const std::string widthPN_
 
static const std::string widthPartPN_
 
static const std::string splitPN_
 
static const std::string dstImmUnitNamePN_
 

Additional Inherited Members

- Public Types inherited from DesignSpaceExplorerPlugin
typedef std::pair< std::string, ExplorerPluginParameterParameter
 
typedef std::map< std::string, ExplorerPluginParameterParameterMap
 
typedef std::map< std::string, ExplorerPluginParameter >::iterator PMIt
 
typedef std::map< std::string, ExplorerPluginParameter >::const_iterator PMCIt
 
- Public Member Functions inherited from DesignSpaceExplorerPlugin
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 &param) const
 
template<typename T >
void readOptionalParameter (const std::string paramName, T &param) const
 
template<typename RT >
RT parameterValue (const std::string &paramName) 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 &paramName) const
 
ParameterMap parameters () const
 
virtual bool booleanValue (const std::string &parameter) const
 
- Public Member Functions inherited from DesignSpaceExplorer
 DesignSpaceExplorer ()
 
virtual ~DesignSpaceExplorer ()
 
virtual void setDSDB (DSDBManager &dsdb)
 
virtual bool evaluate (const DSDBManager::MachineConfiguration &configuration, CostEstimates &results=dummyEstimate_, bool estimate=false)
 
virtual DSDBManagerdb ()
 
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::MachineImplementationselectComponents (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 Public Member Functions inherited from DesignSpaceExplorer
static DesignSpaceExplorerPluginloadExplorerPlugin (const std::string &pluginName, DSDBManager *dsdb=NULL)
 
- Protected Member Functions inherited from DesignSpaceExplorerPlugin
 DesignSpaceExplorerPlugin ()
 
void checkParameters () const
 
- Protected Member Functions inherited from DesignSpaceExplorer
TTAProgram::Programschedule (const std::string applicationFile, TTAMachine::Machine &machine, TCEString paramOptions="-O3")
 
const ExecutionTracesimulate (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)
 
- Protected Attributes inherited from DesignSpaceExplorerPlugin
std::string pluginName_
 the name of the explorer plugin
 
ParameterMap parameters_
 Parameters for the plugin.
 

Detailed Description

Explorer plugin that creates or modifies machine instruction template by adding/removing immediates.

Definition at line 69 of file ImmediateGenerator.cc.

Constructor & Destructor Documentation

◆ ImmediateGenerator()

ImmediateGenerator::ImmediateGenerator ( )
inlineprivate

Definition at line 72 of file ImmediateGenerator.cc.

73 createNewConfig_(false),
74 print_(false),
78 width_(32),
79 widthPart_(8),
80 split_(false),
81 dstImmUnitName_("") {
82
83 // compulsory parameters
84 // no compulsory parameters
85
86 // parameters that have a default value
95 }
#define UINT(OPERAND)
Definition OSAL.hh:313
#define BOOL()
static std::string toString(const T &source)
void addParameter(TCEString name, ExplorerPluginParameterType type, bool compulsory=true, TCEString defaultValue="", TCEString description="")
std::string modInsTemplateName_
instruction template name to be modified.
bool createNewConfig_
Boolean value used to decide if new config is created.
static const std::string addInsTemplateNamePN_
std::string dstImmUnitName_
destination immediate unit name
static const std::string splitPN_
unsigned int widthPart_
minimum width on long instruction slot when splitting the template.
static const std::string removeInsTemplateNamePN_
std::string addInsTemplateName_
instruction template name to be added.
std::string removeInsTemplateName_
instruction template name to be removed.
bool print_
print values
unsigned int width_
width of the target template
static const std::string widthPartPN_
static const std::string printPN_
bool split_
make evenly bus/slot wise splitted template.
static const std::string widthPN_
static const std::string modInsTemplateNamePN_
static const std::string dstImmUnitNamePN_

References addInsTemplateName_, addInsTemplateNamePN_, DesignSpaceExplorerPlugin::addParameter(), BOOL, dstImmUnitName_, dstImmUnitNamePN_, modInsTemplateName_, modInsTemplateNamePN_, print_, printPN_, removeInsTemplateName_, removeInsTemplateNamePN_, split_, splitPN_, STRING, Conversion::toString(), UINT, width_, widthPart_, widthPartPN_, and widthPN_.

Here is the call graph for this function:

Member Function Documentation

◆ addInsTemplate()

void ImmediateGenerator::addInsTemplate ( TTAMachine::Machine mach,
std::string  name 
)
inlineprivate

Adds instruction template with a name given as parameter.

Parameters
machTarget machine.
nameInstruction template name to be added.

Definition at line 320 of file ImmediateGenerator.cc.

320 {
321 TTAMachine::InstructionTemplate* insTemplate = NULL;
322
323 try {
324 insTemplate = new InstructionTemplate(name, mach);
325 } catch (ComponentAlreadyExists& e) {
326 std::ostringstream msg(std::ostringstream::out);
327 msg << "Error while using ImmediateGenerator:" << endl
328 << e.errorMessage() << endl;
329 verboseLog(msg.str());
330 delete insTemplate;
331 return;
332 } catch (InvalidName& e) {
333 std::ostringstream msg(std::ostringstream::out);
334 msg << "Error while using ImmediateGenerator:" << endl
335 << e.errorMessage() << endl;
336 verboseLog(msg.str());
337 delete insTemplate;
338 return;
339 }
340 createNewConfig_ = true;
341 }
#define verboseLog(text)
virtual std::string name() const
std::string errorMessage() const
Definition Exception.cc:123

References createNewConfig_, Exception::errorMessage(), DesignSpaceExplorerPlugin::name(), and verboseLog.

Referenced by explore().

Here is the call graph for this function:

◆ addSplitInsTemplate()

void ImmediateGenerator::addSplitInsTemplate ( TTAMachine::Machine mach,
std::string  name 
)
inlineprivate

Adds instruction template with a name given as parameter and add bus wise splitted slots to the template.

Parameters
machTarget machine.
nameInstruction template name to be added.

Definition at line 350 of file ImmediateGenerator.cc.

350 {
351 TTAMachine::InstructionTemplate* insTemplate = NULL;
352
353 // find target immediate unit for the instruction template slots
356
357 TTAMachine::ImmediateUnit* immUnit = NULL;
358 TTAMachine::ImmediateUnit* dstImmUnit = NULL;
359 if (dstImmUnitName_.empty()) {
360 // if no destination immediate unit specified take one if exists
361 if (IUNav.count() > 0) {
362 dstImmUnit = IUNav.item(0);
363 } else {
364 std::ostringstream msg(std::ostringstream::out);
365 msg << "Error while using ImmediateGenerator:" << endl
366 << "No immediate units." << endl;
367 verboseLog(msg.str());
368 return;
369 }
370 } else {
371 for (int iu = 0; iu < IUNav.count(); iu++) {
372 immUnit = IUNav.item(iu);
373 if (immUnit->name() == dstImmUnitName_) {
374 dstImmUnit = immUnit;
375 }
376 }
377 if (dstImmUnit == NULL) {
378 std::ostringstream msg(std::ostringstream::out);
379 msg << "Error while using ImmediateGenerator:" << endl
380 << "Given destination immediate unit \""
381 << dstImmUnitName_ << "\" was not found." << endl;
382 verboseLog(msg.str());
383 return;
384 }
385 }
386
387 // add instruction template
388 try {
389 insTemplate = new InstructionTemplate(name, mach);
390 } catch (ComponentAlreadyExists& e) {
391 std::ostringstream msg(std::ostringstream::out);
392 msg << "Error while using ImmediateGenerator:" << endl
393 << e.errorMessage() << endl;
394 verboseLog(msg.str());
395 delete insTemplate;
396 insTemplate = NULL;
397 return;
398 } catch (InvalidName& e) {
399 std::ostringstream msg(std::ostringstream::out);
400 msg << "Error while using ImmediateGenerator:" << endl
401 << e.errorMessage() << endl;
402 verboseLog(msg.str());
403 delete insTemplate;
404 insTemplate = NULL;
405 return;
406 }
407
408 // TODO: split among immediate slots also?
409 Machine::BusNavigator busNav = mach.busNavigator();
410
411 int slotCount = (width_/widthPart_);
412
413 // if too few busses to make even one widthPart_ length template slot
414 if (busNav.count() < slotCount) {
415 slotCount = busNav.count();
416 }
417
418 int overSpill = width_ - (slotCount * widthPart_);
419 int widthAdd = 0;
420 TTAMachine::Bus* busP = NULL;
421 for (int bus = 0; bus < slotCount; bus++) {
422 busP = busNav.item(bus);
423
424 if (overSpill > 0) {
425 if (overSpill < static_cast<int>(
426 busP->width() - widthPart_)) {
427 widthAdd = overSpill;
428 overSpill = -1; // all spilled
429 } else {
430 widthAdd = busP->width() - widthPart_;
431 overSpill = overSpill - widthAdd;
432 }
433 } else {
434 widthAdd = 0;
435 }
436
437 try {
438 insTemplate->addSlot(busP->name(), widthPart_ + widthAdd,
439 *dstImmUnit);
440 } catch (const Exception& e) {
441 std::ostringstream msg(std::ostringstream::out);
442 msg << "Error while using ImmediateGenerator:" << endl
443 << e.errorMessage() << endl;
444 verboseLog(msg.str());
445 delete insTemplate;
446 insTemplate = NULL;
447 return;
448 }
449 }
450
451 // check if all spilled
452 if (overSpill > 0) {
453 std::ostringstream msg(std::ostringstream::out);
454 msg << "Error while using ImmediateGenerator:" << endl
455 << "Immediate template generation failed, width=\"" << width_
456 << "\" too great by: \"" << overSpill << "\"" << endl;
457 verboseLog(msg.str());
458 delete insTemplate;
459 insTemplate = NULL;
460 return;
461 }
462
463 createNewConfig_ = true;
464 }
int width() const
Definition Bus.cc:149
virtual TCEString name() const
virtual void addSlot(const std::string &slotName, int width, ImmediateUnit &dstUnit)
ComponentType * item(int index) const
virtual ImmediateUnitNavigator immediateUnitNavigator() const
Definition Machine.cc:416
virtual BusNavigator busNavigator() const
Definition Machine.cc:356

References TTAMachine::InstructionTemplate::addSlot(), TTAMachine::Machine::busNavigator(), TTAMachine::Machine::Navigator< ComponentType >::count(), createNewConfig_, dstImmUnitName_, Exception::errorMessage(), TTAMachine::Machine::immediateUnitNavigator(), TTAMachine::Machine::Navigator< ComponentType >::item(), DesignSpaceExplorerPlugin::name(), TTAMachine::Component::name(), verboseLog, TTAMachine::Bus::width(), width_, and widthPart_.

Referenced by explore().

Here is the call graph for this function:

◆ 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
startPointConfigurationIDConfiguration to optimize.

Reimplemented from DesignSpaceExplorerPlugin.

Definition at line 120 of file ImmediateGenerator.cc.

120 {
121
122 // XXX: does this plugin have to touch short immediates.
123
124 std::vector<RowID> result;
125
127
128 try {
129 DSDBManager& dsdb = db();
130 // loads starting configuration
132 dsdb.configuration(startPointConfigurationID);
133
134 // load machine from configuration
135 //Machine* origMach = NULL;
136 Machine* mach = NULL;
137 try {
138 //origMach = dsdb.architecture(conf.architectureID);
139 mach = dsdb.architecture(conf.architectureID);
140 } catch (const Exception& e) {
141 std::ostringstream msg(std::ostringstream::out);
142 msg << e.errorMessage() << endl;
143 verboseLog(msg.str());
144 return result;
145 }
146
147 if (!removeInsTemplateName_.empty()) {
149 }
150
151 if (!addInsTemplateName_.empty()) {
152 if (split_) {
154 } else {
156 }
157 }
158
159 // print immediate info if print parameter given
160 if (print_) {
162 }
163
164 if (createNewConfig_) {
165 // create the new configuration to be saved to dsdb
166 // do long immediates affect these
168 if (conf.hasImplementation) {
169 newConf.hasImplementation = true;
172 CostEstimator::Estimator estimator;
174 estimator.totalArea(*mach, *idf);
175 CostEstimator::DelayInNanoSeconds longestPathDelay =
176 estimator.longestPath(*mach, *idf);
177 newConf.implementationID =
178 dsdb.addImplementation(*idf, longestPathDelay, area);
179 } else {
180 newConf.hasImplementation = false;
181 }
182 newConf.architectureID = dsdb.addArchitecture(*mach);
183 CostEstimates estimates;
184
185 RowID confID = dsdb.addConfiguration(newConf);
186 result.push_back(confID);
187 }
188
189 } catch (const Exception& e) {
190 std::ostringstream msg(std::ostringstream::out);
191 msg << "Error while using ImmediateGenerator:" << endl
192 << e.errorMessage() << endl;
193 verboseLog(msg.str());
194 return result;
195 }
196 return result;
197 }
int RowID
Type definition of row ID in relational databases.
Definition DBTypes.hh:37
AreaInGates totalArea(const TTAMachine::Machine &machine, const IDF::MachineImplementation &machineImplementation)
area estimation functions
Definition Estimator.cc:84
DelayInNanoSeconds longestPath(const TTAMachine::Machine &machine, const IDF::MachineImplementation &machineImplementation)
delay estimation functions
Definition Estimator.cc:915
RowID addArchitecture(const TTAMachine::Machine &mom)
TTAMachine::Machine * architecture(RowID id) const
IDF::MachineImplementation * implementation(RowID id) const
MachineConfiguration configuration(RowID id) const
RowID addImplementation(const IDF::MachineImplementation &impl, double longestPathDelay, CostEstimator::AreaInGates area)
RowID addConfiguration(const MachineConfiguration &conf)
virtual DSDBManager & db()
void addInsTemplate(TTAMachine::Machine &mach, std::string name)
void removeInsTemplate(TTAMachine::Machine &mach, std::string name)
void addSplitInsTemplate(TTAMachine::Machine &mach, std::string name)
void printImmediateTemplates(TTAMachine::Machine &mach)
double AreaInGates
type for area values in equivalent gates
double DelayInNanoSeconds
type for propagation delays in nano seconds

References DSDBManager::addArchitecture(), DSDBManager::addConfiguration(), DSDBManager::addImplementation(), addInsTemplate(), addInsTemplateName_, addSplitInsTemplate(), DSDBManager::architecture(), DSDBManager::MachineConfiguration::architectureID, DSDBManager::configuration(), createNewConfig_, DesignSpaceExplorer::db(), Exception::errorMessage(), DSDBManager::MachineConfiguration::hasImplementation, DSDBManager::implementation(), DSDBManager::MachineConfiguration::implementationID, CostEstimator::Estimator::longestPath(), print_, printImmediateTemplates(), readParameters(), removeInsTemplate(), removeInsTemplateName_, split_, CostEstimator::Estimator::totalArea(), and verboseLog.

Here is the call graph for this function:

◆ PLUGIN_DESCRIPTION()

ImmediateGenerator::PLUGIN_DESCRIPTION ( "Creates immediates for configuration."  )
private

◆ printImmediateTemplates()

void ImmediateGenerator::printImmediateTemplates ( TTAMachine::Machine mach)
inlineprivate

Print info about instruction templates of a given machine.

Parameters
machMachine which instruction templates are to be printed.

Definition at line 252 of file ImmediateGenerator.cc.

252 {
255
256 std::ostringstream msg(std::ostringstream::out);
257 msg << "====== Instruction templates: =======" << endl;
258
259 TTAMachine::InstructionTemplate* insTemplate = NULL;
260 TTAMachine::TemplateSlot* tempSlot = NULL;
261 for (int it = 0; it < ITNav.count(); it++) {
262 insTemplate = ITNav.item(it);
263
264 msg << "Instruction template: " << insTemplate->name() << endl;
265 if (insTemplate->isEmpty()) {
266 msg << "\tEmpty instruction template." << endl;
267 continue;
268 }
269
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: "
276 << tempSlot->destination()->name() << endl;
277 }
278
279 msg << "\tSupported Width: " << insTemplate->supportedWidth() << endl;
280 msg << "\tNumber of Destinations: "
281 << insTemplate->numberOfDestinations() << endl;
282 }
283 verboseLog(msg.str());
284 }
virtual TemplateSlot * slot(int index) const
virtual InstructionTemplateNavigator instructionTemplateNavigator() const
Definition Machine.cc:428
std::string slot() const
ImmediateUnit * destination() const

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::TemplateSlot::slot(), TTAMachine::InstructionTemplate::slot(), TTAMachine::InstructionTemplate::slotCount(), TTAMachine::InstructionTemplate::supportedWidth(), verboseLog, and TTAMachine::TemplateSlot::width().

Referenced by explore().

Here is the call graph for this function:

◆ producesArchitecture()

virtual bool ImmediateGenerator::producesArchitecture ( ) const
inlineprivatevirtual

Implements DesignSpaceExplorerPlugin.

Definition at line 98 of file ImmediateGenerator.cc.

98{ return true; }

◆ readParameters()

void ImmediateGenerator::readParameters ( )
inlineprivate

◆ removeInsTemplate()

void ImmediateGenerator::removeInsTemplate ( TTAMachine::Machine mach,
std::string  name 
)
inlineprivate

Removes instruction template with a name given as parameter.

Parameters
machTarget machine.
nameInstruction template name to be removed.

Definition at line 292 of file ImmediateGenerator.cc.

292 {
295
296 TTAMachine::InstructionTemplate* insTemplate = NULL;
297 for (int it = 0; it < ITNav.count(); it++) {
298 insTemplate = ITNav.item(it);
299 if (insTemplate->name() == name) {
300 mach.deleteInstructionTemplate(*insTemplate);
301 createNewConfig_ = true;
302 }
303 }
304
305 if (!createNewConfig_) {
306 std::ostringstream msg(std::ostringstream::out);
307 msg << "Error while using ImmediateGenerator:" << endl
308 << "Instruction template with name \"" << name
309 << "\" was not found." << endl;
310 verboseLog(msg.str());
311 }
312 }
virtual void deleteInstructionTemplate(InstructionTemplate &instrTempl)
Definition Machine.cc:599

References TTAMachine::Machine::Navigator< ComponentType >::count(), createNewConfig_, TTAMachine::Machine::deleteInstructionTemplate(), TTAMachine::Machine::instructionTemplateNavigator(), TTAMachine::Machine::Navigator< ComponentType >::item(), DesignSpaceExplorerPlugin::name(), TTAMachine::Component::name(), and verboseLog.

Referenced by explore().

Here is the call graph for this function:

◆ requiresApplication()

virtual bool ImmediateGenerator::requiresApplication ( ) const
inlineprivatevirtual

Reimplemented from DesignSpaceExplorerPlugin.

Definition at line 101 of file ImmediateGenerator.cc.

101{ return false; }

◆ requiresHDB()

virtual bool ImmediateGenerator::requiresHDB ( ) const
inlineprivatevirtual

Implements DesignSpaceExplorerPlugin.

Definition at line 99 of file ImmediateGenerator.cc.

99{ return false; }

◆ requiresSimulationData()

virtual bool ImmediateGenerator::requiresSimulationData ( ) const
inlineprivatevirtual

Implements DesignSpaceExplorerPlugin.

Definition at line 100 of file ImmediateGenerator.cc.

100{ return false; }

◆ requiresStartingPointArchitecture()

virtual bool ImmediateGenerator::requiresStartingPointArchitecture ( ) const
inlineprivatevirtual

Implements DesignSpaceExplorerPlugin.

Definition at line 97 of file ImmediateGenerator.cc.

97{ return true; }

Member Data Documentation

◆ addInsTemplateName_

std::string ImmediateGenerator::addInsTemplateName_
private

instruction template name to be added.

Definition at line 219 of file ImmediateGenerator.cc.

Referenced by explore(), ImmediateGenerator(), and readParameters().

◆ addInsTemplateNamePN_

const std::string ImmediateGenerator::addInsTemplateNamePN_
staticprivate

Definition at line 206 of file ImmediateGenerator.cc.

Referenced by ImmediateGenerator(), and readParameters().

◆ createNewConfig_

bool ImmediateGenerator::createNewConfig_
private

Boolean value used to decide if new config is created.

Definition at line 201 of file ImmediateGenerator.cc.

Referenced by addInsTemplate(), addSplitInsTemplate(), explore(), and removeInsTemplate().

◆ dstImmUnitName_

std::string ImmediateGenerator::dstImmUnitName_
private

destination immediate unit name

Definition at line 229 of file ImmediateGenerator.cc.

Referenced by addSplitInsTemplate(), ImmediateGenerator(), and readParameters().

◆ dstImmUnitNamePN_

const std::string ImmediateGenerator::dstImmUnitNamePN_
staticprivate

Definition at line 211 of file ImmediateGenerator.cc.

Referenced by ImmediateGenerator(), and readParameters().

◆ modInsTemplateName_

std::string ImmediateGenerator::modInsTemplateName_
private

instruction template name to be modified.

Definition at line 221 of file ImmediateGenerator.cc.

Referenced by ImmediateGenerator(), and readParameters().

◆ modInsTemplateNamePN_

const std::string ImmediateGenerator::modInsTemplateNamePN_
staticprivate

Definition at line 207 of file ImmediateGenerator.cc.

Referenced by ImmediateGenerator(), and readParameters().

◆ print_

bool ImmediateGenerator::print_
private

print values

Definition at line 215 of file ImmediateGenerator.cc.

Referenced by explore(), ImmediateGenerator(), and readParameters().

◆ printPN_

const std::string ImmediateGenerator::printPN_
staticprivate

Definition at line 204 of file ImmediateGenerator.cc.

Referenced by ImmediateGenerator(), and readParameters().

◆ removeInsTemplateName_

std::string ImmediateGenerator::removeInsTemplateName_
private

instruction template name to be removed.

Definition at line 217 of file ImmediateGenerator.cc.

Referenced by explore(), ImmediateGenerator(), and readParameters().

◆ removeInsTemplateNamePN_

const std::string ImmediateGenerator::removeInsTemplateNamePN_
staticprivate

Definition at line 205 of file ImmediateGenerator.cc.

Referenced by ImmediateGenerator(), and readParameters().

◆ split_

bool ImmediateGenerator::split_
private

make evenly bus/slot wise splitted template.

Definition at line 227 of file ImmediateGenerator.cc.

Referenced by explore(), ImmediateGenerator(), and readParameters().

◆ splitPN_

const std::string ImmediateGenerator::splitPN_
staticprivate

Definition at line 210 of file ImmediateGenerator.cc.

Referenced by ImmediateGenerator(), and readParameters().

◆ width_

unsigned int ImmediateGenerator::width_
private

width of the target template

Definition at line 223 of file ImmediateGenerator.cc.

Referenced by addSplitInsTemplate(), ImmediateGenerator(), and readParameters().

◆ widthPart_

unsigned int ImmediateGenerator::widthPart_
private

minimum width on long instruction slot when splitting the template.

Definition at line 225 of file ImmediateGenerator.cc.

Referenced by addSplitInsTemplate(), ImmediateGenerator(), and readParameters().

◆ widthPartPN_

const std::string ImmediateGenerator::widthPartPN_
staticprivate

Definition at line 209 of file ImmediateGenerator.cc.

Referenced by ImmediateGenerator(), and readParameters().

◆ widthPN_

const std::string ImmediateGenerator::widthPN_
staticprivate

Definition at line 208 of file ImmediateGenerator.cc.

Referenced by ImmediateGenerator(), and readParameters().


The documentation for this class was generated from the following file: