Merge branch 'charm' of charmgit:charm into charm
authorYanhua Sun <sun51@illinois.edu>
Thu, 18 Apr 2013 20:07:46 +0000 (20:07 +0000)
committerYanhua Sun <sun51@illinois.edu>
Thu, 18 Apr 2013 20:07:46 +0000 (20:07 +0000)
15 files changed:
src/ck-com/ChunkMulticastStrategy.C
src/ck-com/ComlibManager.C
src/ck-com/ComlibSectionInfo.C
src/ck-com/ComlibStrategy.C
src/ck-com/MsgPacker.C
src/ck-com/MsgPacker.h
src/ck-com/NodeMulticast.C
src/ck-core/ck.C
src/ck-core/ckarray.C
src/ck-core/ckarrayindex.h
src/ck-core/ckcausalmlog.C
src/ck-core/cklocation.C
src/ck-core/ckmessagelogging.C
src/ck-core/debug-charm.C
src/ck-core/envelope.h

index 023fdcf470b2ef88dfe784af350818c73082e264..a3d7129818209886bb303d4c6d75b3d54701ac69 100644 (file)
@@ -56,7 +56,7 @@ void ChunkMulticastStrategy::insertMessage(CharmMessageHolder *cmsg){
 
 
   //THIS IS A TEMPORARY HACK, WILL WORK ONLY FOR RING
-  const CkArrayID destArrayID(env->getsetArrayMgr());
+  const CkArrayID destArrayID(env->getArrayMgr());
   int nRemotePes=-1, nRemoteIndices=-1;
   ComlibMulticastIndexCount *indicesCount;
   int *belongingList;
index 46e12fbc4ebfc0343bf4ff621341e5d59af62680..7e79f9b49a599d73f93c9c56e842cd1451a3d5c4 100644 (file)
@@ -52,7 +52,7 @@ void recv_array_msg(void *msg){
 
        RECORD_RECV_STATS(sid, env->getTotalsize(), srcPe);
 
-       CkArray *a=(CkArray *)_localBranch(env->getsetArrayMgr());
+       CkArray *a=(CkArray *)_localBranch(env->getArrayMgr());
        
        a->deliver((CkArrayMessage *)EnvToUsr(env), CkDeliver_queue);
 
index abdd8a30bc2faebd4a59924ec855c711ff918565..86f36affb50731b481e5d1408e59620e20edf0f9 100644 (file)
@@ -43,7 +43,7 @@ ComlibMulticastMsg * ComlibSectionInfo::getNewMulticastMessage(CharmMessageHolde
 
     CkPackMessage(&env);
 
-    const CkArrayID destArrayID(env->getsetArrayMgr());
+    const CkArrayID destArrayID(env->getArrayMgr());
     int nRemotePes=-1, nRemoteIndices=-1;
     ComlibMulticastIndexCount *indicesCount;
     int *belongingList;
@@ -114,7 +114,7 @@ ComlibMulticastMsg * ComlibSectionInfo::getNewMulticastMessage(CharmMessageHolde
     delete [] indicesCount;
     delete [] belongingList;
 
-    newenv->getsetArrayMgr() = env->getsetArrayMgr();
+    newenv->getArrayMgr() = env->getArrayMgr();
     newenv->getsetArraySrcPe() = env->getsetArraySrcPe();
     newenv->getsetArrayEp() = env->getsetArrayEp();
     newenv->getsetArrayHops() = env->getsetArrayHops();
index 6278bff94fb519602fd3ea817cfc6b4b034e1c42..2ac2dacfbe1e995a3ad3b61c3b6ea339ed64a9e3 100644 (file)
@@ -38,7 +38,7 @@ int CharmStrategy::deliverToIndices(void *msg, int numDestIdxs, const CkArrayInd
   int ep = env->getsetArrayEp();
   CkUnpackMessage(&env);
 
-  CkArrayID destination_aid = env->getsetArrayMgr();
+  CkArrayID destination_aid = env->getArrayMgr();
   CkArray *a=(CkArray *)_localBranch(destination_aid);
 
   env->setPacked(0);
@@ -431,7 +431,7 @@ int ComlibArrayInfo::localMulticast(CkVec<CkArrayIndex>*vec,
     int ep = env->getsetArrayEp();
     CkUnpackMessage(&env);
 
-    CkArrayID destination_aid = env->getsetArrayMgr();
+    CkArrayID destination_aid = env->getArrayMgr();
     env->setPacked(0);
     env->getsetArrayHops()=1;
     env->setUsed(0);
@@ -481,7 +481,7 @@ void ComlibArrayInfo::deliver(envelope *env){
     env->getsetArrayHops()=1;
     CkUnpackMessage(&env);
     
-    CkArray *a=(CkArray *)_localBranch(env->getsetArrayMgr());
+    CkArray *a=(CkArray *)_localBranch(env->getArrayMgr());
     a->deliver((CkArrayMessage *)EnvToUsr(env), CkDeliver_queue);
 }
 
index 6a662913f269764ad5743b99cf4b0e0e063ff5e4..a44b1088e473757ae9510d6d3e20725124fcbc91 100644 (file)
@@ -23,7 +23,7 @@
 //         CkPackMessage(&env);
 
 //         if(count == 0) {
-//             aid = env->getsetArrayMgr();
+//             aid = env->getArrayMgr();
 //             if(aid.isZero()) 
 //                 CkAbort("Array packing set and ArrayID is zero");
 //         }        
@@ -53,7 +53,7 @@
 //         CkPackMessage(&env);
 
 //         if(count == 0) {
-//             aid = env->getsetArrayMgr();
+//             aid = env->getArrayMgr();
 //             if(aid.isZero()) 
 //                 CkAbort("Array packing set and ArrayID is zero");
 //         }        
index 375f844e0480edaf4d19c70b007661c94636add1..edb8d7b4b8c0b4ec0888d4bff62365f8feeead0e 100644 (file)
@@ -153,7 +153,7 @@ inline void MsgPacker::deliver(CombinedMessage *cmb_msg){
             //Unpack the message
             data = (char *)_msgTable[msgIdx]->unpack(data); 
             
-            env->getsetArrayMgr() = aid;
+            env->setArrayMgr(aid);
             env->getsetArrayIndex() = senv.idx;
             env->getsetArrayEp() = ep;
             env->setPacked(0); 
index a25beda1e32815c842a4ddcda4638bea85fab39a..c9ffa7f943371f110844318276d847b6790f12f5 100644 (file)
 //     env->setUsed(0);
 //     ComlibPrintf("In receive Handler\n");
 //     if(mode == ARRAY_MODE) {
-//         env->getsetArrayMgr()=mAid;
+//         env->setArrayMgr(mAid);
 //     env->getsetArrayEp()=entryPoint;
 //     env->getsetArrayHops()=0;       
 //     CkUnpackMessage(&env);
index 7a8d1800ff4018868c23508ef301d4e1fe77bd87..874e36ed60b220fd1f03360d37af192f849d2426 100644 (file)
@@ -1139,14 +1139,14 @@ void _processNodeBocInitMsg(CkCoreState *ck,envelope *env)
 /************** Receive: Arrays *************/
 
 static void _processArrayEltInitMsg(CkCoreState *ck,envelope *env) {
-  CkArray *mgr=(CkArray *)_lookupGroupAndBufferIfNotThere(ck,env,env->getsetArrayMgr());
+  CkArray *mgr=(CkArray *)_lookupGroupAndBufferIfNotThere(ck,env,env->getArrayMgr());
   if (mgr) {
     _SET_USED(env, 0);
     mgr->insertElement((CkMessage *)EnvToUsr(env));
   }
 }
 static void _processArrayEltMsg(CkCoreState *ck,envelope *env) {
-  CkArray *mgr=(CkArray *)_lookupGroupAndBufferIfNotThere(ck,env,env->getsetArrayMgr());
+  CkArray *mgr=(CkArray *)_lookupGroupAndBufferIfNotThere(ck,env,env->getArrayMgr());
   if (mgr) {
     _SET_USED(env, 0);
     mgr->getLocMgr()->deliverInline((CkMessage *)EnvToUsr(env));
@@ -2018,7 +2018,7 @@ static void _prepareOutgoingArrayMsg(envelope *env,int type)
 extern "C"
 void CkArrayManagerInsert(int pe,void *msg,CkGroupID aID) {
   register envelope *env = UsrToEnv(msg);
-  env->getsetArrayMgr()=aID;
+  env->setArrayMgr(aID);
   _prepareOutgoingArrayMsg(env,ArrayEltInitMsg);
   _CldEnqueue(pe, env, _infoIdx);
 }
index 2ea8cc2ff898a281dba51cf7b4a6122c0eeea319..bdde0ae526da007d1010a334b49253735dabaa4a 100644 (file)
@@ -1037,7 +1037,7 @@ inline void msg_prepareSend(CkArrayMessage *msg, int ep,CkArrayID aid)
 {
        envelope *env=UsrToEnv((void *)msg);
         env->setMsgtype(ForArrayEltMsg);
-       env->getsetArrayMgr()=aid;
+       env->setArrayMgr(aid);
        env->getsetArraySrcPe()=CkMyPe();
 #if CMK_SMP_TRACE_COMMTHREAD
         env->setSrcPe(CkMyPe());
@@ -1055,7 +1055,7 @@ inline void msg_prepareSend(CkArrayMessage *msg, int ep,CkArrayID aid)
 void msg_prepareSend_noinline(CkArrayMessage *msg, int ep,CkArrayID aid)
 {
        envelope *env=UsrToEnv((void *)msg);
-       env->getsetArrayMgr()=aid;
+       env->setArrayMgr(aid);
        env->getsetArraySrcPe()=CkMyPe();
 #if CMK_SMP_TRACE_COMMTHREAD
         env->setSrcPe(CkMyPe());
@@ -1239,7 +1239,7 @@ CmiBool CkArrayBroadcaster::deliver(CkArrayMessage *bcast, ArrayElement *el,
     }
     envelope *env = UsrToEnv(bcast);
     env->getsetArrayEp() = epIdx;
-    env->getsetArrayMgr() = el->ckGetArrayID();
+    env->setArrayMgr( el->ckGetArrayID() );
     env->getsetArrayIndex() = el->ckGetArrayIndex();
     CkArrayManagerDeliver(CkMyPe(), bcast, 0);
     return true;
@@ -1399,7 +1399,7 @@ void CkArray::broadcastHomeElements(void *data,CkLocRec *rec,CkArrayIndex *index
                env->SN = 0;
         env->piggyBcastIdx = epIdx;
         env->setEpIdx(CkIndex_ArrayElement::recvBroadcast(0));
-        env->getsetArrayMgr() = thisgroup;
+        env->setArrayMgr(thisgroup);
         env->getsetArrayIndex() = *index;
     env->getsetArrayEp() = CkIndex_ArrayElement::recvBroadcast(0);
         env->setSrcPe(CkMyPe());
index 70f4e74be97c6fc924a15cecf00150a72f427727..759954ad7ffbeebbc3b7e640732f7e6d71c5f3bb 100644 (file)
@@ -90,7 +90,7 @@ class CkArrayIndex: public CkArrayIndexBase
         }
 
         /// Used for debug prints elsewhere
-        void print() { CmiPrintf("%d: %d %d %d\n", nInts, index[0], index[1], index[2]); }
+        void print() const { CmiPrintf("%d: %d %d %d\n", nInts, index[0], index[1], index[2]); }
 
         /// Equality comparison
         CmiBool operator==(const CkArrayIndex& idx) const
@@ -185,9 +185,11 @@ class CkArrayIndex: public CkArrayIndexBase
             if (lhs.nInts != rhs.nInts)
                 CkAbort("cannot compare two indices of different cardinality");
             for (int i = 0; i < lhs.nInts; i++)
-                if (lhs.data()[i] >= rhs.data()[i])
+                if (lhs.data()[i] < rhs.data()[i])
+                    return true;
+                else if (rhs.data()[i] < lhs.data()[i])
                     return false;
-            return true;
+            return false;
         }
 };
 
index 9abca40e1dfc6e73336fbf0f854d09f2310b3364..383c6fc800da5351e85a5c375f14b45b3208477e 100644 (file)
@@ -693,7 +693,7 @@ void sendNodeGroupMsg(envelope *env, int destNode, int _infoIdx){
 void sendArrayMsg(envelope *env,int destPE,int _infoIdx){
        CkObjID recver;
        recver.type = TypeArray;
-       recver.data.array.id = env->getsetArrayMgr();
+       recver.data.array.id = env->getArrayMgr();
        recver.data.array.idx.asChild() = *(&env->getsetArrayIndex());
 
        if(CpvAccess(_currentObj)!=NULL &&  CpvAccess(_currentObj)->mlogData->objID.type != TypeArray){
index bbccc51e83cea3100218e7171cf70465cb1eb87f..05d7bd8917f6f69a87fa6da5c97afe4221a09a45 100644 (file)
@@ -942,7 +942,7 @@ public:
 CkMigratable * CkArrayMessageObjectPtr(envelope *env) {
   if (env->getMsgtype()!=ForArrayEltMsg) return NULL;   // not an array msg
 
-  CkArrayID aid = env->getsetArrayMgr();
+  CkArrayID aid = env->getArrayMgr();
   CkArray *mgr=(CkArray *)_localBranch(aid);
   if (mgr) {
     CkLocMgr *locMgr = mgr->getLocMgr();
@@ -1548,7 +1548,7 @@ LDObjHandle CkMigratable::timingBeforeCall(int* objstopped){
        //      CkPrintf("ckLocation.C beginExecuteDetailed %d %d \n",env->getEvent(),env->getsetArraySrcPe());
                if (_entryTable[epIdx]->traceEnabled)
                        _TRACE_BEGIN_EXECUTE_DETAILED(env->getEvent(),
-                                ForChareMsg,epIdx,env->getsetArraySrcPe(), env->getTotalsize(), idx.getProjectionID(((CkGroupID)env->getsetArrayMgr())).idx);
+                                ForChareMsg,epIdx,env->getsetArraySrcPe(), env->getTotalsize(), idx.getProjectionID(((CkGroupID)env->getArrayMgr())).idx);
        }
 #endif*/
 
@@ -1597,7 +1597,7 @@ CmiBool CkLocRec_local::invokeEntry(CkMigratable *obj,void *msg,
        //      CkPrintf("ckLocation.C beginExecuteDetailed %d %d \n",env->getEvent(),env->getsetArraySrcPe());
                if (_entryTable[epIdx]->traceEnabled)
                        _TRACE_BEGIN_EXECUTE_DETAILED(env->getEvent(),
-                                ForChareMsg,epIdx,env->getsetArraySrcPe(), env->getTotalsize(), idx.getProjectionID((((CkGroupID)env->getsetArrayMgr())).idx));
+                                ForChareMsg,epIdx,env->getsetArraySrcPe(), env->getTotalsize(), idx.getProjectionID((((CkGroupID)env->getArrayMgr())).idx));
        }
 #endif
 
@@ -1634,7 +1634,7 @@ CmiBool CkLocRec_local::deliver(CkArrayMessage *msg,CkDeliver_t type,int opts)
        else
        {
                CkMigratable *obj=myLocMgr->lookupLocal(localIdx,
-                       UsrToEnv(msg)->getsetArrayMgr());
+                       UsrToEnv(msg)->getArrayMgr());
                if (obj==NULL) {//That sibling of this object isn't created yet!
                        if (opts & CK_MSG_KEEP)
                                msg = (CkArrayMessage *)CkCopyMsg((void **)&msg);
@@ -2611,7 +2611,7 @@ CmiBool CkLocMgr::deliverUnknown(CkArrayMessage *msg,CkDeliver_t type,int opts)
        else
        { // We *are* the home processor:
        //Check if the element's array manager has been registered yet:
-         CkArrMgr *mgr=managers.find(UsrToEnv((void *)msg)->getsetArrayMgr())->mgr;
+         CkArrMgr *mgr=managers.find(UsrToEnv((void *)msg)->getArrayMgr())->mgr;
          if (!mgr) { //No manager yet-- postpone the message (stupidly)
            if (CkInRestarting()) {
              // during restarting, this message should be ignored
@@ -2654,7 +2654,7 @@ CmiBool CkLocMgr::demandCreateElement(CkArrayMessage *msg,int onPe,CkDeliver_t t
        
        //Find the manager and build the element
        DEBC((AA"Demand-creating element %s on pe %d\n"AB,idx2str(idx),onPe));
-       CkArrMgr *mgr=managers.find(UsrToEnv((void *)msg)->getsetArrayMgr())->mgr;
+       CkArrMgr *mgr=managers.find(UsrToEnv((void *)msg)->getArrayMgr())->mgr;
        if (!mgr) CkAbort("Tried to demand-create for nonexistent arrMgr");
        return mgr->demandCreateElement(idx,onPe,ctor,type);
 }
index fff557da096e84084aa360548426402ed85c5c79..26fc394aa55db239c9cce97c34fdaa283bc75f8f 100644 (file)
@@ -513,7 +513,7 @@ void sendNodeGroupMsg(envelope *env, int destNode, int _infoIdx){
 void sendArrayMsg(envelope *env,int destPE,int _infoIdx){
        CkObjID recver;
        recver.type = TypeArray;
-       recver.data.array.id = env->getsetArrayMgr();
+       recver.data.array.id = env->getArrayMgr();
        recver.data.array.idx.asChild() = *(&env->getsetArrayIndex());
 
        if(CpvAccess(_currentObj)!=NULL &&  CpvAccess(_currentObj)->mlogData->objID.type != TypeArray){
index bdd44b706459578b33f11652622cb831cd6d7b7b..cd5ff2acfa301565f13e95b46781901dccb4ef76 100644 (file)
@@ -391,7 +391,7 @@ void CpdPupMessage(PUP::er &p, void *msg)
 
   // Pup the information specific to this envelope type
   if (envType == ForArrayEltMsg || envType == ArrayEltInitMsg) {
-    int arrID = env->getsetArrayMgr().idx;
+    int arrID = env->getArrayMgr().idx;
     PUPn(arrID);
     CkArrayIndex &idx = env->getsetArrayIndex();
     int nInts = idx.nInts;
index 528956600b43cb82f2fab8c35333598a5e0dc7f0..0651debfcd8c7c3d53286026dd48f67b2769f260 100644 (file)
@@ -165,7 +165,7 @@ struct s_group {         // NodeBocInitMsg, BocInitMsg, ForNodeBocMsg, ForBocMsg
         UShort arrayEp;        ///< Used only for array broadcasts
 };
 
-struct s_array{             ///< For arrays only (ArrayEltInitMsg, ForArrayEltMsg)
+struct s_array{             ///< ForArrayEltMsg
         CkArrayIndexBase index; ///< Array element index
         CkGroupID arr;            ///< Array manager GID
 #if CMK_SMP_TRACE_COMMTHREAD
@@ -175,7 +175,7 @@ struct s_array{             ///< For arrays only (ArrayEltInitMsg, ForArrayEltMs
         UChar ifNotThere;         ///< what to do if array element is missing
 };
 
-struct s_arrayinit{         ///< For arrays only (ArrayEltInitMsg, ForArrayEltMsg)
+struct s_arrayinit{         ///< ArrayEltInitMsg
         CkArrayIndexBase index; ///< Array element index
         CkGroupID arr;            ///< Array manager GID
 #if CMK_SMP_TRACE_COMMTHREAD
@@ -333,7 +333,7 @@ private:
     }
     static envelope *alloc(const UChar type, const UInt size=0, const UShort prio=0)
     {
-      CkAssert(type>=NewChareMsg && type<=ForArrayEltMsg);
+      CkAssert(type >= NewChareMsg && type < LAST_CK_ENVELOPE_TYPE);
 
 #if CMK_USE_STL_MSGQ
       // Ideally, this should be a static compile-time assert. However we need API changes for that
@@ -460,7 +460,8 @@ private:
     void setGroupDep(const CkGroupID &r){ /* CkAssert(getMsgtype()==BocInitMsg || getMsgtype()==NodeBocInitMsg ); */ ((struct s_groupinit*)extraData())->dep = r; }
 
 // Array-specific fields
-    CkGroupID &getsetArrayMgr(void) {return ((struct s_array*)extraData())->arr;}
+    CkGroupID getArrayMgr(void) const { return ((struct s_array*)extraData())->arr; }
+    void setArrayMgr(const CkGroupID gid) { ((struct s_array*)extraData())->arr = gid; }
     int getArrayMgrIdx(void) const {return ((struct s_array*)extraData())->arr.idx;}
     UShort &getsetArrayEp(void) {return epIdx;}
     UShort &getsetArrayBcastEp(void) {return ((struct s_group*)extraData())->arrayEp;}