useless calls are no longer made when not linked with projector
authorSayantan Chakravorty <sayantan_chak@yahoo.com>
Fri, 27 Jun 2003 22:48:19 +0000 (22:48 +0000)
committerSayantan Chakravorty <sayantan_chak@yahoo.com>
Fri, 27 Jun 2003 22:48:19 +0000 (22:48 +0000)
12 files changed:
src/conv-perf/ampiEvents.h
src/conv-perf/ampiProjections.C
src/conv-perf/charmEvents.h
src/conv-perf/charmProjections.C
src/conv-perf/converseEvents.h
src/conv-perf/converseProjections.C
src/conv-perf/machineEvents.h
src/conv-perf/machineProjections.C
src/conv-perf/traceCore.C
src/conv-perf/traceCore.h
src/conv-perf/traceCoreAPI.h
src/conv-perf/traceCoreCommon.C

index a5533c9438bcede2de0b47b7b9a4180f40339f51..9c40914175b2049c38f56979c322344aa6d729ed 100644 (file)
@@ -19,7 +19,7 @@
          RegisterEvent(_AMPI_LANG_ID,_E_AMPI_MSG_SEND); \
          \
        }
-#define _LOG_E_BEGIN_AMPI_PROCESSING(tag,src,count) { ampi_beginProcessing(tag,src,count);}
-#define _LOG_E_END_AMPI_PROCESSING()               { ampi_endProcessing();}
-#define _LOG_E_AMPI_MSG_SEND(tag,dest,count,size)   { ampi_msgSend(tag,dest,count,size);}
+#define _LOG_E_BEGIN_AMPI_PROCESSING(tag,src,count) { LOGCONDITIONAL(ampi_beginProcessing(tag,src,count));}
+#define _LOG_E_END_AMPI_PROCESSING()               { LOGCONDITIONAL(ampi_endProcessing());}
+#define _LOG_E_AMPI_MSG_SEND(tag,dest,count,size)   { LOGCONDITIONAL(ampi_msgSend(tag,dest,count,size));}
 #endif
index 0c3bccfe53bc9983dfa4783c7224f2d744d2640e..fe75d9629536379c82ced0a76afa3e95cfea2cbd 100644 (file)
@@ -19,7 +19,7 @@ extern "C" void closeAmpiProjections(){
 }
 
 extern "C" void ampi_beginProcessing(int tag,int src,int count){
-       int *iData = (int *)malloc(sizeof(int)*3);
+       int iData[3];
        iData[0] = tag;
        iData[1] = src;
        iData[2] = count;
@@ -30,7 +30,7 @@ extern "C" void ampi_beginProcessing(int tag,int src,int count){
 }
 
 extern "C" void ampi_endProcessing(){
-       int *iData = (int *)malloc(sizeof(int)*3);
+       int iData[3];
        iData[0] = current_tag;
        iData[1] = current_src;
        iData[2] = current_count;
@@ -38,7 +38,7 @@ extern "C" void ampi_endProcessing(){
 }
 
 extern "C" void ampi_msgSend(int tag,int dest,int count,int size){
-       int *iData = (int *)malloc(sizeof(int)*4);
+       int iData[4];
        iData[0] = tag;
        iData[1] = dest;
        iData[2] = count;
index 83c2c299c8c1fd57cb94e4e4e42db85b974211f0..69ccf60c938e48d08ccb550851333ce3d11f314e 100644 (file)
          RegisterEvent(_CHARM_LANG_ID, _E_USER_EVENT_PAIR  ); \
          \
        }
-#define _LOG_E_CREATION_N(env, ep, n)  { charm_creation(env, ep, n); }
-#define _LOG_E_BEGIN_EXECUTE(env)      { charm_beginExecute(env); }
+#define _LOG_E_CREATION_N(env, ep, n)  { LOGCONDITIONAL(charm_creation(env, ep, n)); }
+#define _LOG_E_BEGIN_EXECUTE(env)      { LOGCONDITIONAL(charm_beginExecute(env)); }
 #define _LOG_E_BEGIN_EXECUTE_DETAILED(event, msgType, ep, srcPe, ml) \
-       { charm_beginExecuteDetailed(event, msgType, ep, srcPe, ml); }
-#define _LOG_E_END_EXECUTE()           { charm_endExecute(); }
+       { LOGCONDITIONAL(charm_beginExecuteDetailed(event, msgType, ep, srcPe, ml)); }
+#define _LOG_E_END_EXECUTE()           { LOGCONDITIONAL(charm_endExecute()); }
 //what is EXECUTE ? isn't it the same as processing --- schak
 //TODO#define _LOG_E_BEGIN_PROCESSING()
 //TODO#define _LOG_E_END_PROCESSING()
-#define _LOG_E_ENQUEUE(env)            { charm_enqueueMsg(env); }
-#define _LOG_E_DEQUEUE(env)            { charm_dequeueMsg(env); }
-#define _LOG_E_BEGIN_COMPUTATION()     { charm_beginComputation(); }
-#define _LOG_E_END_COMPUTATION()       { charm_endComputation(); }
+#define _LOG_E_ENQUEUE(env)            { LOGCONDITIONAL(charm_enqueueMsg(env)); }
+#define _LOG_E_DEQUEUE(env)            { LOGCONDITIONAL(charm_dequeueMsg(env)); }
+#define _LOG_E_BEGIN_COMPUTATION()     { LOGCONDITIONAL(charm_beginComputation()); }
+#define _LOG_E_END_COMPUTATION()       { LOGCONDITIONAL(charm_endComputation()); }
 //even projection actually doesn't use these  two
 #define _LOG_E_BEGIN_INTERRUPT()
 #define _LOG_E_END_INTERRUPT()
 
 
-#define _LOG_E_MSG_RECV_CHARM(env, pe)         { charm_messageRecv(env, pe); }
-#define _LOG_E_USER_EVENT_CHARM(x)             { charm_userEvent(x); }
-#define _LOG_E_BEGIN_PACK()                    { charm_beginPack(); }
-#define _LOG_E_END_PACK()                              { charm_endPack(); }
-#define _LOG_E_BEGIN_UNPACK()                  { charm_beginUnpack(); }
-#define _LOG_E_END_UNPACK()                    { charm_endUnpack(); }
-#define _LOG_E_USER_EVENT_PAIR_CHARM(x,bt,et)  { charm_userPairEvent(x,bt,et);}
+#define _LOG_E_MSG_RECV_CHARM(env, pe)         { LOGCONDITIONAL(charm_messageRecv(env, pe)); }
+#define _LOG_E_USER_EVENT_CHARM(x)             { LOGCONDITIONAL(charm_userEvent(x)); }
+#define _LOG_E_BEGIN_PACK()                    { LOGCONDITIONAL(charm_beginPack()); }
+#define _LOG_E_END_PACK()                              { LOGCONDITIONAL(charm_endPack()); }
+#define _LOG_E_BEGIN_UNPACK()                  { LOGCONDITIONAL(charm_beginUnpack()); }
+#define _LOG_E_END_UNPACK()                    { LOGCONDITIONAL(charm_endUnpack()); }
+#define _LOG_E_USER_EVENT_PAIR_CHARM(x,bt,et)  { LOGCONDITIONAL(charm_userPairEvent(x,bt,et));}
 #endif
index d8d564d197e3550cfec72bcacfea01eb72e4a9db..9edcaff29158aad9527c49ddab6df46c4bf3b615 100644 (file)
@@ -33,7 +33,7 @@ extern "C" void charm_creation(envelope *e, int ep, int num)
 {
   if(e==0) {
     CtvAccess(curThreadEvent)=curEvent;
-       int* iData = (int*)malloc(sizeof(int)*4); 
+       int iData[4];
        iData[0] = ForChareMsg;
        iData[1] = ep;
        iData[2] = curEvent++;
@@ -42,7 +42,7 @@ extern "C" void charm_creation(envelope *e, int ep, int num)
   } else {
     e->setEvent(curEvent);
     for(int i=0; i<num; i++) {
-               int* iData = (int*)malloc(sizeof(int)*5); 
+               int iData[5];
                iData[0] = e->getMsgtype();
                iData[1] = ep;
                iData[2] = curEvent+i;
@@ -60,7 +60,7 @@ extern "C" void charm_beginExecute(envelope *e)
   if(e==0) {
     execEvent = CtvAccess(curThreadEvent);
     execEp = (-1);
-       int* iData = (int*)malloc(sizeof(int)*4); 
+       int iData[4];
        iData[0] = ForChareMsg;
        iData[1] = _threadEP;
        iData[2] = execEvent;
@@ -77,7 +77,7 @@ extern "C" void charm_beginExecuteDetailed(int event,int msgType,int ep,int srcP
   execEvent=event;
   execEp=ep;
   execPe=srcPe;
-  int* iData = (int*)malloc(sizeof(int)*5); 
+  int iData[5];
   iData[0] = msgType;
   iData[1] = ep;
   iData[2] = event;
@@ -91,14 +91,14 @@ extern "C" void charm_endExecute(void)
 {
    
   if(execEp == (-1)) {
-       int* iData = (int*)malloc(sizeof(int)*4); 
+       int iData[4];
        iData[0] = 0;
        iData[1] = _threadEP;
        iData[2] = execEvent;
        iData[3] = CkMyPe();
        LogEvent1(_CHARM_LANG_ID, _E_END_PROCESSING, 4, iData); 
   } else {
-       int* iData = (int*)malloc(sizeof(int)*4); 
+       int iData[4];
        iData[0] = 0;
        iData[1] = execEp;
        iData[2] = execEvent;
@@ -112,7 +112,7 @@ extern "C" void charm_endExecute(void)
 
 extern "C" void charm_enqueueMsg(envelope *e) {
        
-       int *iData = (int *)malloc(sizeof(int )*3);
+       int iData[3];
        iData[0] = e->getMsgtype();
        iData[1] = e->getEvent();
        iData[2] = e->getSrcPe();
@@ -120,7 +120,7 @@ extern "C" void charm_enqueueMsg(envelope *e) {
 }      
 
 extern "C" void charm_dequeueMsg(envelope *e) {
-       int *iData = (int *)malloc(sizeof(int )*3);
+       int iData[3];
        iData[0] = e->getMsgtype();
        iData[1] = e->getEvent();
        iData[2] = e->getSrcPe();
@@ -141,7 +141,7 @@ extern "C" void charm_endComputation(void)
 extern "C" void charm_messageRecv(char *env, int pe) {} //TODO
 
 extern "C" void charm_userEvent(int e) {
-       int *iData = (int *)malloc(sizeof(int)*3);
+       int iData[3];
        iData[0] = e;
        iData[1] = curevent;
        iData[2] = CkMyPe();
@@ -151,8 +151,8 @@ extern "C" void charm_userEvent(int e) {
 
 
 extern "C" void charm_userPairEvent(int e,double bt,double et){
-       int *iData1 = (int *)malloc(sizeof(int)*3);
-       int *iData2 = (int *)malloc(sizeof(int)*3);
+       int iData1[3];
+       int iData2[3];
        iData1[0] = iData2[0] = e;
        iData1[1] = iData2[1] = curevent;
        iData1[2] = iData2[2] = CkMyPe();
@@ -164,28 +164,28 @@ extern "C" void charm_userPairEvent(int e,double bt,double et){
 
 extern "C" void charm_beginPack(void)
 {
-       int* iData = (int*)malloc(sizeof(int)); 
+       int iData[1];
        iData[0] = CkMyPe();
        LogEvent1(_CHARM_LANG_ID, _E_BEGIN_PACK, 1, iData); 
 }
 
 extern "C" void charm_endPack(void)
 {
-       int* iData = (int*)malloc(sizeof(int)); 
+       int iData[1];
        iData[0] = CkMyPe();
        LogEvent1(_CHARM_LANG_ID, _E_END_PACK, 1, iData); 
 }
 
 extern "C" void charm_beginUnpack(void)
 {
-       int* iData = (int*)malloc(sizeof(int)); 
+       int iData[1];
        iData[0] = CkMyPe();
        LogEvent1(_CHARM_LANG_ID, _E_BEGIN_UNPACK, 1, iData); 
 }
 
 extern "C" void charm_endUnpack(void)
 {
-       int* iData = (int*)malloc(sizeof(int)); 
+       int iData[1];
        iData[0] = CkMyPe();
        LogEvent1(_CHARM_LANG_ID, _E_END_UNPACK, 1, iData); 
 }
index 5ef1f0c4a1ed197bd4190de4521aad046249c149..556d53ec4784fcb5293182107e0179225f1bd45d 100644 (file)
          \
        }
 
-#ifdef CMK_OPTIMIZE
-#define _LOG_E_MSG_SENT(destPE, size)
-#define _LOG_E_MSG_QUEUED()
-#define _LOG_E_MSG_RECV_MC()
-#define _LOG_E_MSG_RECV_SC()
-#define _LOG_E_HANDLER_BEGIN(handlerIdx)
-#define _LOG_E_HANDLER_END(handlerIdx)
-#else
 #define _LOG_E_MSG_SENT(destPE, size) \
-       { converse_msgSent(destPE, size); }
+       { LOGCONDITIONAL (converse_msgSent(destPE, size)); }
 #define _LOG_E_MSG_QUEUED() \
-       { LogEvent(_CONVERSE_LANG_ID, _E_MSG_QUEUED); }         //TODO
+       { LOGCONDITIONAL (LogEvent(_CONVERSE_LANG_ID, _E_MSG_QUEUED)); }                //TODO
 #define _LOG_E_MSG_RECV_MC() \
-       { LogEvent(_CONVERSE_LANG_ID, _E_MSG_RECV_MC); }        //TODO
+       { LOGCONDITIONAL (LogEvent(_CONVERSE_LANG_ID, _E_MSG_RECV_MC)); }       //TODO
 #define _LOG_E_MSG_RECV_SC() \
-       { LogEvent(_CONVERSE_LANG_ID, _E_MSG_RECV_SC); }        //TODO
+       { LOGCONDITIONAL (LogEvent(_CONVERSE_LANG_ID, _E_MSG_RECV_SC)); }       //TODO
 #define _LOG_E_HANDLER_BEGIN(handlerIdx) \
-       { converse_handlerBegin(handlerIdx); }
+       { LOGCONDITIONAL (converse_handlerBegin(handlerIdx)); }
 #define _LOG_E_HANDLER_END(handlerIdx) \
-       { converse_handlerEnd(handlerIdx); }
-#endif
+       { LOGCONDITIONAL (converse_handlerEnd(handlerIdx)); }
 
 #endif
index 310159d0023eb78df3c00d0c855a8fed30399934..cf540819a8a0074f8e0caaea7b7ebd48d17aa11d 100644 (file)
@@ -8,7 +8,7 @@
 
 extern "C" void converse_msgSent(int destPE, int size)
 {
-       int* iData = (int*)malloc(sizeof(int)*2); 
+       int iData[2];
        iData[0] = destPE;
        iData[1] = size;
        LogEvent1(_CONVERSE_LANG_ID, _E_MSG_SENT, 2, iData); 
@@ -23,7 +23,7 @@ extern "C" void converse_msgRecvSC();
 
 extern "C" void converse_handlerBegin(int handlerIdx)
 {              
-       int* iData = (int*)malloc(sizeof(int)*2); 
+       int iData[2];
        iData[0] = handlerIdx;
        iData[1] = CmiMyPe();
        LogEvent1(_CONVERSE_LANG_ID, _E_HANDLER_BEGIN, 2, iData); 
@@ -31,7 +31,7 @@ extern "C" void converse_handlerBegin(int handlerIdx)
 
 extern "C" void converse_handlerEnd(int handlerIdx)
 {      
-       int* iData = (int*)malloc(sizeof(int)*2); 
+       int iData[2];
        iData[0] = handlerIdx;
        iData[1] = CmiMyPe();
        LogEvent1(_CONVERSE_LANG_ID, _E_HANDLER_END, 2, iData); 
index 85f2561365c3361e7c76c3c9a03654dea01eca97..d659d2b20d72102eef9d89877bebd0f4e94e12a2 100644 (file)
                \
        }
 
-#ifdef CMK_OPTIMIZE
-#define _LOG_E_PROC_IDLE()
-#define _LOG_E_PROC_BUSY()
-#else
 #define _LOG_E_PROC_IDLE() \
-       { machine_procIdle(); }
+       { LOGCONDITIONAL(machine_procIdle()); }
 #define _LOG_E_PROC_BUSY() \
-       { machine_procBusy(); }
-#endif
+       { LOGCONDITIONAL(machine_procBusy()); }
 
 #endif
 
index 00ba8169df9a7794becf68d7574e5e001ac789d4..f4e714aba76c8e618dcfabda67c02451c49220a5 100644 (file)
@@ -8,14 +8,14 @@
 
 extern "C" void machine_procIdle()
 {
-       int* iData = (int*)malloc(sizeof(int));
+       int iData[1];
        iData[0] = CmiMyPe();
        LogEvent1(_MACHINE_LANG_ID, _E_PROC_IDLE, 1, iData);
 }
 
 extern "C" void machine_procBusy()
 {
-       int* iData = (int*)malloc(sizeof(int));
+       int iData[1];
        iData[0] = CmiMyPe();
        LogEvent1(_MACHINE_LANG_ID, _E_PROC_BUSY, 1, iData);
 }
index 27d7ab005ac6030f71382e88340ad8edbc5fab33..734147379ee4becf637cb5f0d4e82b77364b2a0d 100644 (file)
@@ -171,58 +171,71 @@ void TraceCore::LogEvent(int lID, int eID)
        LogEvent(lID, eID, 0, NULL, 0, NULL); 
 }
 
-void TraceCore::LogEvent(int lID, int eID, int iLen, int* iData)
+void TraceCore::LogEvent(int lID, int eID, int iLen, const int* iData)
 { 
        if(traceCoreOn == 0){
-               if(iData){
-                       free(iData);                    
-               }               
                return;
        }
        LogEvent(lID, eID, iLen, iData, 0, NULL); 
 }
 
-void TraceCore::LogEvent(int lID, int eID, int iLen, int* iData,double t){
+void TraceCore::LogEvent(int lID, int eID, int iLen, const int* iData,double t){
        if(traceCoreOn == 0){
-               if(iData){
-                       free(iData);
-               }               
                return;
        }
        CmiPrintf("TraceCore LogEvent called \n");
 #ifndef CMK_OPTIMIZE   
-       traceLogger->add(lID,eID,TraceCoreTimer(t),iLen,iData,0,NULL);
+       int *iDataalloc;
+       if(iLen != 0){
+               iDataalloc = (int *)malloc(iLen*sizeof(int));
+               for(int i=0;i<iLen;i++){
+                       iDataalloc[i] = iData[i];
+               }
+       }else{
+               iDataalloc = NULL;
+       }
+       traceLogger->add(lID,eID,TraceCoreTimer(t),iLen,iDataalloc,0,NULL);
 #endif
 }
 
 
-void TraceCore::LogEvent(int lID, int eID, int sLen, char* sData)
+void TraceCore::LogEvent(int lID, int eID, int sLen, const char* sData)
 { 
        if(traceCoreOn == 0){
-               if(sData){
-                       free(sData);
-               }               
                return;
        }
        LogEvent(lID, eID, 0, NULL, sLen, sData); 
 }
 
-void TraceCore::LogEvent(int lID, int eID, int iLen, int* iData, int sLen, char* sData)
+void TraceCore::LogEvent(int lID, int eID, int iLen, const int* iData, int sLen,const char* sData)
 {
        //CmiPrintf("lID: %d, eID: %d", lID, eID);
        if(traceCoreOn == 0){
-               if(iData){
-                       free(iData);
-               }       
-               if(sData){
-                       free(sData);
-               }                       
                return;
        }
                
 
 #ifndef CMK_OPTIMIZE
-       traceLogger->add(lID, eID, TraceCoreTimer(), iLen, iData, sLen, sData);
+       int *iDataalloc;
+       char *sDataalloc;
+       if(iLen != 0){
+               iDataalloc = (int *)malloc(iLen*sizeof(int));
+               for(int i=0;i<iLen;i++){
+                       iDataalloc[i] = iData[i];
+               }
+       }else{
+               iDataalloc = NULL;
+       }
+       if(sLen != 0){
+               sDataalloc = (char *)malloc(sLen*sizeof(char));
+               for(int i=0;i<sLen;i++){
+                       sDataalloc[i] = sData[i];
+               }
+       }else{
+               sDataalloc = NULL;
+       }
+
+       traceLogger->add(lID, eID, TraceCoreTimer(), iLen, iDataalloc, sLen, sDataalloc);
 #endif
 }
 
index 0bf691b132dcc06c2fe3bc3606feaf116e59e609..485507a3a3a403b5d1bfe2f30a3bfdc6eb0d3ac8 100644 (file)
@@ -50,10 +50,10 @@ class TraceCore
        void RegisterLanguage(int lID, char* lName);
        void RegisterEvent(int lID, int eID);
        void LogEvent(int lID, int eID);
-       void LogEvent(int lID, int eID, int iLen, int* iData);
-       void LogEvent(int lID, int eID, int iLen, int* iData,double t);
-       void LogEvent(int lID, int eID, int sLen, char* sData);
-       void LogEvent(int lID, int eID, int iLen, int* iData, int sLen, char* sData);
+       void LogEvent(int lID, int eID, int iLen, const int* iData);
+       void LogEvent(int lID, int eID, int iLen, const int* iData,double t);
+       void LogEvent(int lID, int eID, int sLen, const char* sData);
+       void LogEvent(int lID, int eID, int iLen, const int* iData, int sLen, const char* sData);
 
 };
 
index d029a2442075f548939b4ec06b0889db89c0196d..7bd66c4e8297662a7cc9add0bbcfb1fe04a8614f 100644 (file)
@@ -5,16 +5,25 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
-
+CpvExtern(int,_traceCoreOn);
 /* Tracing API */
+#ifdef CMK_OPTIMIZE
+#define LOGCONDITIONAL(x) 
+#else 
+#define LOGCONDITIONAL(x) \
+               if(CpvAccess(_traceCoreOn)!=0){ \
+                       x;\
+               }
+#endif
+
 void RegisterLanguage(int lID, char* ln);
 void RegisterEvent(int lID, int eID);
 /* TODO some cleanup required below */
 void LogEvent(int lID, int eID);
-void LogEvent1(int lID, int eID, int iLen, int* iData);
-void LogEvent2(int lID, int eID, int sLen, char* sData);
-void LogEvent3(int lID, int eID, int iLen, int* iData, int sLen, char* sData);
-void LogEvent4(int lID, int eID, int iLen, int* iData, double t);
+void LogEvent1(int lID, int eID, int iLen, const int* iData);
+void LogEvent2(int lID, int eID, int sLen, const char* sData);
+void LogEvent3(int lID, int eID, int iLen, const int* iData, int sLen, const char* sData);
+void LogEvent4(int lID, int eID, int iLen, const int* iData, double t);
 #ifdef __cplusplus
 }
 #endif
index 2042d2a8949ab1c694f686bc648ece678a43b48e..f48f2ff7d067b0b10be06e5deb579e6926a90240 100644 (file)
@@ -85,15 +85,15 @@ extern "C" void RegisterEvent(int lID, int eID)
 extern "C" void LogEvent(int lID, int eID)
 { CpvAccess(_traceCore)->LogEvent(lID, eID); }
 
-extern "C" void LogEvent1(int lID, int eID, int iLen, int* iData)
+extern "C" void LogEvent1(int lID, int eID, int iLen, const int* iData)
 { CpvAccess(_traceCore)->LogEvent(lID, eID, iLen, iData); }
 
-extern "C" void LogEvent2(int lID, int eID, int sLen, char* sData)
+extern "C" void LogEvent2(int lID, int eID, int sLen, const char* sData)
 { CpvAccess(_traceCore)->LogEvent(lID, eID, sLen, sData); }
 
-extern "C" void LogEvent3(int lID, int eID, int iLen, int* iData, int sLen, char* sData)
+extern "C" void LogEvent3(int lID, int eID, int iLen, const int* iData, int sLen, const char* sData)
 { CpvAccess(_traceCore)->LogEvent(lID, eID, iLen, iData, sLen, sData); }
 
-extern "C" void LogEvent4(int lID, int eID, int iLen, int* iData, double t)
+extern "C" void LogEvent4(int lID, int eID, int iLen, const int* iData, double t)
 { CpvAccess(_traceCore)->LogEvent(lID, eID, iLen, iData,t); }