comparison src/parallel_execution/examples/calc.cbc @ 344:b8be1d51f002

Add CodeGear interface
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Fri, 26 May 2017 07:39:23 +0900
parents de1e315379c6
children 2da00c034fbc
comparison
equal deleted inserted replaced
343:5065d1e4adbb 344:b8be1d51f002
127 __code createTask3(struct TaskManager* taskManager) { 127 __code createTask3(struct TaskManager* taskManager) {
128 taskManager->next = C_createTask4; 128 taskManager->next = C_createTask4;
129 goto meta(context, taskManager->taskManager->TaskManager.spawn); 129 goto meta(context, taskManager->taskManager->TaskManager.spawn);
130 } 130 }
131 131
132 __code createTask4(struct TaskManager* taskManager) { 132 __code createTask4(LoopCounter* loopCounter, TaskManager* taskManager, struct Context* task, Integer *integer1, Integer *integer2, Integer *integer3) {
133 taskManager->next = C_createTask5;
134 goto meta(context, taskManager->taskManager->TaskManager.createTask);
135 }
136
137 __code createTask5(LoopCounter* loopCounter, TaskManager* taskManager, struct Context* task, Integer *integer1, Integer *integer2, Integer *integer3) {
138 int i = loopCounter->i; 133 int i = loopCounter->i;
139 integer1->value = i; 134 integer1->value = i;
140 integer2->value = i+1; 135 integer2->value = i+1;
141 task->next = C_add; 136 codeGear->codeGear= createAdd(context);
142 task->idgCount = 0; 137 codeGear->codeGear[0] = (union Data*)integer1;
143 task->data[task->idg] = (union Data*)integer1; 138 codeGear->codeGear[1] = (union Data*)integer2;
144 task->data[task->idg+1] = (union Data*)integer2; 139 codeGear->codeGear[2] = (union Data*)integer3;
145 task->maxIdg = task->idg + 2; 140 codeGear->next = C_createTask1
146 task->odg = task->maxIdg;
147 task->data[task->odg] = (union Data*)integer3;
148 task->maxOdg = task->odg + 1;
149 taskManager->context = task; 141 taskManager->context = task;
150 taskManager->next = C_createTask1; 142 taskManager->next = C_createTask1;
151 goto meta(context, taskManager->taskManager->TaskManager.spawn); 143 goto meta(context, taskManager->taskManager->TaskManager.spawn);
152 } 144 goto meta(context, codeGear->codeGear->CodeGear.);
153 145 }
154 __code createTask5_stub(struct Context* context) { 146
147 __code createTask4_stub(struct Context* context) {
155 Integer* integer1 = &ALLOCATE_DATA_GEAR(context, Integer)->Integer; 148 Integer* integer1 = &ALLOCATE_DATA_GEAR(context, Integer)->Integer;
156 Integer* integer2 = &ALLOCATE_DATA_GEAR(context, Integer)->Integer; 149 Integer* integer2 = &ALLOCATE_DATA_GEAR(context, Integer)->Integer;
157 goto createTask5(context, 150 goto createTask5(context,
158 Gearef(context, LoopCounter), 151 Gearef(context, LoopCounter),
159 Gearef(context, TaskManager), 152 Gearef(context, TaskManager),