# HG changeset patch # User Nina Engelhardt # Date 1334593531 -7200 # Node ID f20b4d9d3086988d2f5f02af659a5a500d3a3d4d # Parent d20b105981b70c7a279e42cebc772dc13a25b508 add recording of req type for unit fusing in ucc diff -r d20b105981b7 -r f20b4d9d3086 SSR.h --- a/SSR.h Wed Mar 28 18:02:38 2012 +0200 +++ b/SSR.h Mon Apr 16 18:25:31 2012 +0200 @@ -123,6 +123,7 @@ ListOfArrays* dynDependenciesList; Unit last_in_slot[NUM_CORES * NUM_ANIM_SLOTS]; ListOfArrays* hwArcs; + int lastReqType; #endif #ifdef HOLISTIC__TURN_ON_PERF_COUNTERS diff -r d20b105981b7 -r f20b4d9d3086 SSR_PluginFns.c --- a/SSR_PluginFns.c Wed Mar 28 18:02:38 2012 +0200 +++ b/SSR_PluginFns.c Mon Apr 16 18:25:31 2012 +0200 @@ -115,9 +115,10 @@ semEnv = (SSRSemEnv *)_semEnv; req = VMS_PI__take_next_request_out_of( requestingPr ); - + while( req != NULL ) { + semEnv->lastReqType = 0; switch( req->reqType ) { case semantic: handleSemReq( req, requestingPr, semEnv); break; @@ -265,8 +266,7 @@ newd.from_vp = requestingPr->slaveID; newd.from_task = requestingPr->assignCount; newd.to_vp = newPr->slaveID; - newd.to_task = 1; - //addToListOfArraysDependency(newd,semEnv->commDependenciesList); + newd.to_task = 1; addToListOfArrays(Dependency,newd,semEnv->commDependenciesList); #endif @@ -294,6 +294,7 @@ Unit newu; newu.vp = procr->slaveID; newu.task = procr->assignCount; + newu.reqType = semEnv->lastReqType; if(procr->assignCount <= 1){ newu.ret_ptr = procr->resumeInstrPtr; } else { diff -r d20b105981b7 -r f20b4d9d3086 SSR_Request_Handlers.c --- a/SSR_Request_Handlers.c Wed Mar 28 18:02:38 2012 +0200 +++ b/SSR_Request_Handlers.c Mon Apr 16 18:25:31 2012 +0200 @@ -428,7 +428,7 @@ { void *ptr; DEBUG__printf1(dbgRqstHdlr,"Malloc request from processor %d",requestingPr->slaveID) - + semEnv->lastReqType = 1; ptr = VMS_PI__malloc( semReq->sizeToMalloc ); requestingPr->dataRetFromReq = ptr; resume_slaveVP( requestingPr, semEnv ); @@ -440,7 +440,8 @@ handleFree( SSRSemReq *semReq, SlaveVP *requestingPr, SSRSemEnv *semEnv ) { DEBUG__printf1(dbgRqstHdlr,"Free request from processor %d",requestingPr->slaveID) - VMS_PI__free( semReq->ptrToFree ); + semEnv->lastReqType = 1; + VMS_PI__free( semReq->ptrToFree ); resume_slaveVP( requestingPr, semEnv ); } diff -r d20b105981b7 -r f20b4d9d3086 dependency.c --- a/dependency.c Wed Mar 28 18:02:38 2012 +0200 +++ b/dependency.c Mon Apr 16 18:25:31 2012 +0200 @@ -57,7 +57,7 @@ void print_unit_to_file(void* _unit){ Unit* unit = (Unit*) _unit; if(!unit) return; - fprintf(dependency_file,"unit,%d,%d,%p\n",unit->vp,unit->task,unit->ret_ptr); + fprintf(dependency_file,"unit,%d,%d,%p,%d\n",unit->vp,unit->task,unit->ret_ptr,unit->reqType); } void print_nton_set_helper(void* _u){ diff -r d20b105981b7 -r f20b4d9d3086 dependency.h --- a/dependency.h Wed Mar 28 18:02:38 2012 +0200 +++ b/dependency.h Mon Apr 16 18:25:31 2012 +0200 @@ -16,6 +16,7 @@ int vp; int task; void* ret_ptr; + int reqType; } Unit; typedef struct {