Go to the documentation of this file.
33 #ifndef TTA_PROGRAMMABILITY_VALIDATOR_HH
34 #define TTA_PROGRAMMABILITY_VALIDATOR_HH
97 const std::set<ErrorCode>& errorsToCheck);
100 void findConnections();
101 void printConnections();
102 void printRegisterConnections();
104 void findGlobalRegisterConnections();
108 string> >& toConnections,
110 string> >& fromConnections);
111 bool checkBooleanRegister(
117 addConnectionToProgram(
const Port* sourcePort,
118 const Port* destPort,
123 addConnections(set<Segment*>& newConnections,
124 set<Segment*>& connections);
127 set<HWOperation*>& operations);
130 listConnections(set<Segment*>& connections,
133 printConnection(
const Port* sourcePort,
134 const Port* destPort,
142 addDirectConnection(
const Port* sourcePort,
143 const Port* destPort,
147 addGlobalRegisterConnection(
const Port* sourcePort,
148 const Port* destPort,
151 void addDirectConnectionsToProgram();
152 void addGlobalRegisterConnectionsToProgram();
168 vector<pair<const Port*, set<Segment*> > >
inputs;
221 typedef map<string, map<const Socket*, Connections> >::iterator
mapIter;
223 typedef set<pair<const Port*, const Port*> >::iterator
portSetIter;
MinimalOpSetCheck * minimalOpSetCheck_
Minimal operation checker.
const Machine & machine_
the target machine
set< pair< const Port *, const Port * > > gcrConnections
@ GLOBAL_CONNECTION_REGISTER_NOT_FOUND
Global connection register could not be determined.
set< pair< const RegisterFile *, const RegisterFile * > > registerRegisterConnections
TTAMachine::Machine * machine
the architecture definition of the estimated processor
map< string, map< const Socket *, Connections > > RFConnections
Register file connections.
set< pair< const Port *, const RegisterFile * > > portRegisterConnections
Set of unit connections to ensure that only one connection per register file is added.
set< pair< const RegisterFile *, const RegisterFile * > > gcrRegisterConnections
vector< pair< const Port *, set< Segment * > > > inputs
All inputs found in the machine are stored here.
set< pair< const RegisterFile *, const Port * > > gcrPortConnections
Program * program_
Program where moves are generated.
set< Segment * > triggeredInputs
map< string, map< const Socket *, Connections > > GCUConnections
Global control unit connections.
set< pair< const Port *, const Port * > > allConnections
Set of connections to ensure that same Move is not done in multiple buses.
RegisterFile * globalConnectionRegister_
The global connection register of the machine.
set< pair< const RegisterFile *, const Port * > > registerPortConnections
int gcrCounter
The counter of global register file connections added to the program.
@ BOOLEAN_REGISTER_ERROR
Machine should have one and only one boolean register.
set< pair< const Port *, const Port * > >::iterator portSetIter
type definition for going through connection sets
map< string, map< const Socket *, Connections > > FUConnections
Function unit connections.
@ OPERATION_MISSING_FROM_THE_PRIMITIVE_OPERATION_SET
Machine don't have all the operations needed to support ANSI C.
@ BOOLEAN_REGISTER_GUARD_MISSING
Bus is missing a boolean register file guard.
map< string, map< const Socket *, Connections > > IMMConnections
Immediate unit connections.
set< pair< const RegisterFile *, const RegisterFile * > >::iterator registerRegisterSetIter
ErrorCode
Error codes for different errors.
map< string, map< const Socket *, Connections > >::iterator mapIter
type definition for going through connection maps
vector< ConnectionSet > directConnections
Storage of all the Moves that are found in the machine.
set< pair< const Port *, const RegisterFile * > >::iterator portRegisterSetIter
int directCounter
The counter of direct connections added to the program.
RegisterFile * booleanRegister_
Boolean register file of the machine.
set< pair< const RegisterFile *, const Port * > >::iterator registerPortSetIter
Moves are generated from these.
set< pair< const Port *, const RegisterFile * > > portGcrConnections
vector< ConnectionSet > globalRegisterConnections
Storage of all Moves to and from the Global Connection Register.
set< HWOperation * > operations
Procedure * procedure_
Procedure of the program.