Changed CMK_FT_CHARE to CMK_CHARE_USE_PTR with opposite meaning:
authorFilippo Gioachin <gioachin@uiuc.edu>
Tue, 12 Jan 2010 19:32:07 +0000 (13:32 -0600)
committerFilippo Gioachin <gioachin@uiuc.edu>
Tue, 12 Jan 2010 19:32:07 +0000 (13:32 -0600)
before CMK_FT_CHARE should have been declared to enable chares to be position independent,
now they are by default, and by defining CMK_CHARE_USE_PTR the old behaviour can be enabled.

src/ck-core/charm++.h
src/ck-core/ck.C
src/ck-core/ck.h
src/ck-core/ckcheckpoint.C
src/ck-core/ckmemcheckpoint.C
src/ck-core/init.C

index 3f19838279293b281c05998d9fc96ec6c5729677..de03401e3f9cb9ec918e6c8520eac4f3a236be59 100644 (file)
@@ -418,7 +418,7 @@ class Chare {
     CkObjectMsgQ objQ;                // object message queue
 #endif
   public:
-#if CMK_FT_CHARE
+#ifndef CMK_CHARE_USE_PTR
     int chareIdx;                  // index in the chare obj table (chare_objs)
 #endif
 #ifdef _FAULT_MLOG_
@@ -726,7 +726,7 @@ class CProxy_Chare : public CProxy {
     }
 #ifndef CMK_OPTIMIZE
     inline void ckCheck(void) const  {   //Make sure this proxy has a value
-#if !CMK_FT_CHARE
+#ifdef CMK_CHARE_USE_PTR
        if (_ck_cid.objPtr==0)
                CkAbort("Error! This chare proxy has not been initialized!");
 #endif
index 080b91b0f6b1191b6917d7d8eff4f6ae17b07a20..1663ab2fb51ed2fe5e1db5e2b07311f6c83139ee 100644 (file)
@@ -25,7 +25,7 @@ void automaticallySetMessagePriority(envelope *env); // in control point framewo
 #include "LBDatabase.h"
 #endif // CMK_LBDB_ON
 
-#if CMK_FT_CHARE
+#ifndef CMK_CHARE_USE_PTR
 CpvDeclare(CkVec<void *>, chare_objs);
 CpvDeclare(CkVec<VidBlock *>, vidblocks);
 #endif
@@ -46,7 +46,7 @@ extern int _defaultObjectQ;
 Chare::Chare(void) {
   thishandle.onPE=CkMyPe();
   thishandle.objPtr=this;
-#if CMK_FT_CHARE
+#ifndef CMK_CHARE_USE_PTR
      // for plain chare, objPtr is actually the index to chare table
   if (chareIdx >= 0) thishandle.objPtr=(void*)chareIdx;
 #endif
@@ -82,7 +82,7 @@ void Chare::pup(PUP::er &p)
 {
   p(thishandle.onPE);
   thishandle.objPtr=(void *)this;
-#if CMK_FT_CHARE
+#ifndef CMK_CHARE_USE_PTR
   p(chareIdx);
   if (chareIdx != -1) thishandle.objPtr=(void*)chareIdx;
 #endif
@@ -551,7 +551,7 @@ void CkCreateChare(int cIdx, int eIdx, void *msg, CkChareID *pCid, int destPE)
     _MEMCHECK(pCid->objPtr);
     env->setMsgtype(NewVChareMsg);
     env->setVidPtr(pCid->objPtr);
-#if CMK_FT_CHARE
+#ifndef CMK_CHARE_USE_PTR
     CpvAccess(vidblocks).push_back((VidBlock*)pCid->objPtr);
     int idx = CpvAccess(vidblocks).size()-1;
     pCid->objPtr = (void *)idx;
@@ -595,7 +595,7 @@ void CkCreateLocalGroup(CkGroupID groupID, int epIdx, envelope *env)
 
   CkpvAccess(_currentGroup) = groupID;
   CkpvAccess(_currentGroupRednMgr) = env->getRednMgr();
-#if CMK_FT_CHARE
+#ifndef CMK_CHARE_USE_PTR
   ((Chare *)obj)->chareIdx = -1;
 #endif
   _invokeEntryNoTrace(epIdx,env,obj); /* can't trace groups: would cause nested begin's */
@@ -618,7 +618,7 @@ void CkCreateLocalNodeGroup(CkGroupID groupID, int epIdx, envelope *env)
 // User may call CkLocalNodeBranch() inside the nodegroup constructor
 //  store nodegroup into _currentNodeGroupObj
   CkpvAccess(_currentNodeGroupObj) = obj;
-#if CMK_FT_CHARE
+#ifndef CMK_CHARE_USE_PTR
   ((Chare *)obj)->chareIdx = -1;
 #endif
   _invokeEntryNoTrace(epIdx,env,obj);
@@ -774,7 +774,7 @@ static inline void *_allocNewChare(envelope *env, int &idx)
 {
   int chareIdx = _entryTable[env->getEpIdx()]->chareIdx;
   void *tmp=malloc(_chareTable[chareIdx]->size);
-#if CMK_FT_CHARE
+#ifndef CMK_CHARE_USE_PTR
   CpvAccess(chare_objs).push_back(tmp);
   idx = CpvAccess(chare_objs).size()-1;
 #endif
@@ -787,7 +787,7 @@ static void _processNewChareMsg(CkCoreState *ck,envelope *env)
 {
   int idx;
   register void *obj = _allocNewChare(env, idx);
-#if CMK_FT_CHARE
+#ifndef CMK_CHARE_USE_PTR
   ((Chare *)obj)->chareIdx = idx;
 #endif
   _invokeEntry(env->getEpIdx(),env,obj);
@@ -800,7 +800,7 @@ static void _processNewVChareMsg(CkCoreState *ck,envelope *env)
   register CkChareID *pCid = (CkChareID *)
       _allocMsg(FillVidMsg, sizeof(CkChareID));
   pCid->onPE = CkMyPe();
-#if CMK_FT_CHARE
+#ifndef CMK_CHARE_USE_PTR
   pCid->objPtr = (void*)idx;
 #else
   pCid->objPtr = obj;
@@ -813,7 +813,7 @@ static void _processNewVChareMsg(CkCoreState *ck,envelope *env)
   CmiSetHandler(ret, _charmHandlerIdx);
   CmiSyncSendAndFree(srcPe, ret->getTotalsize(), (char *)ret);
   CpvAccess(_qd)->create();
-#if CMK_FT_CHARE
+#ifndef CMK_CHARE_USE_PTR
   ((Chare *)obj)->chareIdx = idx;
 #endif
   _invokeEntry(env->getEpIdx(),env,obj);
@@ -831,7 +831,7 @@ static inline void _processForPlainChareMsg(CkCoreState *ck,envelope *env)
     obj = _mainTable[mainIdx]->getObj();
   }
   else {
-#if CMK_FT_CHARE
+#ifndef CMK_CHARE_USE_PTR
     if (_chareTable[_entryTable[epIdx]->chareIdx]->chareType == TypeChare)
       obj = CpvAccess(chare_objs)[(CmiIntPtr)env->getObjPtr()];
     else
@@ -852,7 +852,7 @@ static inline void _processForChareMsg(CkCoreState *ck,envelope *env)
 
 static inline void _processFillVidMsg(CkCoreState *ck,envelope *env)
 {
-#if CMK_FT_CHARE
+#ifndef CMK_CHARE_USE_PTR
   register VidBlock *vptr = CpvAccess(vidblocks)[(CmiIntPtr)env->getVidPtr()];
 #else
   register VidBlock *vptr = (VidBlock *) env->getVidPtr();
@@ -866,7 +866,7 @@ static inline void _processFillVidMsg(CkCoreState *ck,envelope *env)
 
 static inline void _processForVidMsg(CkCoreState *ck,envelope *env)
 {
-#if CMK_FT_CHARE
+#ifndef CMK_CHARE_USE_PTR
   register VidBlock *vptr = CpvAccess(vidblocks)[(CmiIntPtr)env->getVidPtr()];
 #else
   VidBlock *vptr = (VidBlock *) env->getVidPtr();
@@ -1340,7 +1340,7 @@ static inline int _prepareMsg(int eIdx,void *msg,const CkChareID *pCid)
   if (pCid->onPE < 0) { //Virtual chare ID (VID)
     register int pe = -(pCid->onPE+1);
     if(pe==CkMyPe()) {
-#if CMK_FT_CHARE
+#ifndef CMK_CHARE_USE_PTR
       VidBlock *vblk = CpvAccess(vidblocks)[(CmiIntPtr)pCid->objPtr];
 #else
       VidBlock *vblk = (VidBlock *) pCid->objPtr;
index f33cf43973180ba597dffe0993a4d550254867f4..b3db8c3706cc0a438adfd896a74fa795d5330a98 100644 (file)
@@ -63,7 +63,7 @@ class VidBlock {
       return NULL;
     }
     void pup(PUP::er &p) {
-#if CMK_FT_CHARE
+#ifndef CMK_CHARE_USE_PTR
       int s;
       if (!p.isUnpacking()) s = state-FILLED;
       p|s;
index 5e154fae46c73befb1348b9ec893c325be518f71..ae55c06ac0d216e61c6164cd15587f818ecaff3f 100644 (file)
@@ -192,7 +192,7 @@ void CkPupMainChareData(PUP::er &p, CkArgMsg *args)
                bdcastRO();
 }
 
-#if CMK_FT_CHARE
+#ifnedf CMK_CHARE_USE_PTR
 
 CpvExtern(CkVec<void *>, chare_objs);
 CpvExtern(CkVec<VidBlock *>, vidblocks);
index 7a6aade09f869936d00d1d0ff2e104f3ad774eba..1cf432c16f6c278a12f43b0698030f4223eaed07 100644 (file)
@@ -416,7 +416,7 @@ static inline void _handleProcData(PUP::er &p)
     // save mainchares into MainChares.dat
     if(CkMyPe()==0) CkPupMainChareData(p, (CkArgMsg*)NULL);
        
-#if CMK_FT_CHARE
+#ifndef CMK_CHARE_USE_PTR
     // save non-migratable chare
     CkPupChareData(p);
 #endif
index f0c19ac418f2348f88d56aa77e427a20e9cb1a7d..b565101c531d287f03e9a7b5d1a2638d094ea729 100644 (file)
@@ -105,7 +105,7 @@ CkpvStaticDeclare(int,  _numInitsRecd); /* UInt changed to int */
 CkpvStaticDeclare(PtrQ*, _buffQ);
 CkpvStaticDeclare(PtrVec*, _bocInitVec);
 
-#if CMK_FT_CHARE
+#ifndef CMK_CHARE_USE_PTR
 CpvExtern(CkVec<void *>, chare_objs);
 CpvExtern(CkVec<VidBlock *>, vidblocks);
 #endif
@@ -757,7 +757,7 @@ void _initCharm(int unused_argc, char **argv)
 #endif
        CpvInitialize(int,serializer);
 
-#if CMK_FT_CHARE
+#ifndef CMK_CHARE_USE_PTR
           /* chare and vidblock table */
         CpvInitialize(CkVec<void *>, chare_objs);
         CpvInitialize(CkVec<VidBlock *>, vidblocks);