annotate loop.c @ 166:aefd87f9d12f

loop graph
author Nina Engelhardt
date Tue, 18 Oct 2011 15:53:04 +0200
parents
children 3bd35fc83c61
rev   line source
Nina@166 1 #include "VMS.h"
Nina@166 2 #include "vmalloc.h"
Nina@166 3 #include "loop.h"
Nina@166 4
Nina@166 5 bulb new_bulb() {
Nina@166 6 bulb b = VMS__malloc((2*NUM_SCHED_SLOTS + 2)*sizeof(int));
Nina@166 7 memset(b,0,(2*NUM_SCHED_SLOTS + 2)*sizeof(int));
Nina@166 8 return b;
Nina@166 9 }
Nina@166 10
Nina@166 11 void set_bulb_member(bulb b, int i, int vp, int task){
Nina@166 12 b[2*i]=vp;
Nina@166 13 b[2*i+1]=task;
Nina@166 14 }
Nina@166 15
Nina@166 16 void set_bulb_core(bulb b, int core){
Nina@166 17 b[2*NUM_SCHED_SLOTS] = core;
Nina@166 18 }
Nina@166 19
Nina@166 20 void set_bulb_id(bulb b, int id){
Nina@166 21 b[2*NUM_SCHED_SLOTS + 1] = id;
Nina@166 22 }
Nina@166 23
Nina@166 24 void set_loop_file(FILE* file){
Nina@166 25 loop_file=file;
Nina@166 26 }
Nina@166 27
Nina@166 28 void print_bulb_to_file(void* _b){
Nina@166 29 bulb b = (bulb) _b;
Nina@166 30 if(b[2*NUM_SCHED_SLOTS]!=0 || b[2*NUM_SCHED_SLOTS + 1]!=0)
Nina@166 31 fprintf(loop_file,"sync%d_%d [shape=rect];\n",b[2*NUM_SCHED_SLOTS],b[2*NUM_SCHED_SLOTS + 1]);
Nina@166 32 int i;
Nina@166 33 for(i=0;i<NUM_SCHED_SLOTS;++i){
Nina@166 34 if(b[2*i] != 0){
Nina@166 35 fprintf(loop_file, "sync%d_%d -> VP_%d_%d;\n",b[2*NUM_SCHED_SLOTS],b[2*NUM_SCHED_SLOTS + 1],b[2*i],b[2*i+1]);
Nina@166 36 fprintf(loop_file, "VP_%d_%d -> sync%d_%d;\n",b[2*i],b[2*i+1],b[2*NUM_SCHED_SLOTS],b[2*NUM_SCHED_SLOTS + 1] + 1);
Nina@166 37 }
Nina@166 38 }
Nina@166 39 }
Nina@166 40
Nina@166 41 int prev_slots[NUM_CORES][2*NUM_SCHED_SLOTS];
Nina@166 42
Nina@166 43 void print_per_slot_to_file(void* _b){
Nina@166 44 bulb b = (bulb) _b;
Nina@166 45 int i;
Nina@166 46 for(i=0;i<NUM_SCHED_SLOTS;++i){
Nina@166 47 if(b[2*i] != 0){
Nina@166 48 if(prev_slots[b[2*NUM_SCHED_SLOTS]][2*i] != 0){
Nina@166 49 fprintf(loop_file, "VP_%d_%d -> VP_%d_%d;\n",prev_slots[b[2*NUM_SCHED_SLOTS]][2*i],prev_slots[b[2*NUM_SCHED_SLOTS]][2*i+1],b[2*i],b[2*i+1]);
Nina@166 50 }
Nina@166 51 prev_slots[b[2*NUM_SCHED_SLOTS]][2*i] = b[2*i];
Nina@166 52 prev_slots[b[2*NUM_SCHED_SLOTS]][2*i+1] = b[2*i+1];
Nina@166 53 }
Nina@166 54 }
Nina@166 55 }