Got rid of message attributes (varsize and packed).
authorMilind Bhandarkar <milind@cs.uiuc.edu>
Mon, 26 Feb 2001 06:33:59 +0000 (06:33 +0000)
committerMilind Bhandarkar <milind@cs.uiuc.edu>
Mon, 26 Feb 2001 06:33:59 +0000 (06:33 +0000)
19 files changed:
src/ck-core/charm++.h
src/ck-core/ckarray.C
src/ck-core/ckarray.ci
src/ck-core/ckarray.h
src/ck-core/ckreduction.C
src/ck-core/ckreduction.ci
src/ck-core/ckreduction.h
src/ck-core/tempo.ci
src/ck-ldb/CentralLB.ci
src/ck-ldb/NborBaseLB.ci
src/ck-ldb/WSLB.ci
src/langs/ampi/ampi.ci
src/libs/ck-libs/ampi/ampi.ci
src/libs/ck-libs/fem/fem.ci
src/libs/ck-libs/irecv/receiver.ci
src/xlat-i/xi-grammar.tab.C
src/xlat-i/xi-grammar.y
src/xlat-i/xi-symbol.C
src/xlat-i/xi-symbol.h

index 6c9ad6794f59d01a8e249cfcad6106d326c9c830..91eb382993dbae9a94cfb9dcb64f6384767b58b2 100644 (file)
@@ -110,6 +110,11 @@ class CkQdMsg {
   public:
     void *operator new(size_t s) { return CkAllocMsg(0,s,0); }
     void operator delete(void* ptr) { CkFreeMsg(ptr); }
+    static void *alloc(int, size_t s, int*, int) {
+      return CkAllocMsg(0,s,0);
+    }
+    static void *pack(CkQdMsg *m) { return (void*) m; }
+    static CkQdMsg *unpack(void *buf) { return (CkQdMsg*) buf; }
 };
 
 class CkThrCallArg {
index 002ca8ded8b5bf692ca3284293bbf010fa62126c..0aeef04652a588c0c238175178e319273e1b62b3 100644 (file)
@@ -1356,7 +1356,7 @@ CkArrayUpdateMsg::CkArrayUpdateMsg(const CkArrayIndex &idx)
 }
 
 void *
-CkArrayElementMigrateMessage::alloc(int msgnum,int size,int *array,int priobits)
+CkArrayElementMigrateMessage::alloc(int msgnum,size_t size,int *array,int priobits)
 {
   int totalsize;
   totalsize = size + array[0] + 8;
index eb86c41f499930a8ea7afa73c04ab23e36e849df..113d69e8d675cfc1829f0200aca31b0e78a93f98 100644 (file)
@@ -4,7 +4,7 @@ module CkArray {
   readonly CkGroupID _RRMapID;
   message CkArrayMessage;
   message CkArrayElementCreateMsg;
-  message [varsize] CkArrayElementMigrateMessage;
+  message CkArrayElementMigrateMessage;
   
   message CkArrayCreateMsg;
   message CkArrayRemoveMsg;
index 9ae204e4d851c9410f8cdbc8def02e1a31dbbb68..c285f87cfa62f1c2cd5763ad82a871f441ec8f3d 100644 (file)
@@ -112,6 +112,11 @@ public:
   
   //This allows us to delete bare CkArrayMessages
   void operator delete(void *p){CkFreeMsg(p);}
+  static void* alloc(int idx, size_t sz, int *szs, int pb) {
+    return CkAllocMsg(idx, sz, pb);
+  }
+  static void *pack(CkArrayMessage *m) { return (void *) m; }
+  static CkArrayMessage *unpack(void *buf) { return (CkArrayMessage*) buf; }
 };
 
 #include "ckreduction.h"
@@ -449,9 +454,9 @@ protected:
        void* packData;
        ~CkArrayElementMigrateMessage() {}
 public:
-       static void *alloc(int msgnum, int size, int *array, int priobits);
-       static void *pack(CkArrayElementMigrateMessage *);
-       static CkArrayElementMigrateMessage *unpack(void *in);
+  static void *alloc(int msgnum, size_t size, int *array, int priobits);
+  static void *pack(CkArrayElementMigrateMessage *);
+  static CkArrayElementMigrateMessage *unpack(void *in);
 };
 
 //Message: Remove the array element at the given index.
index 7fb940c4712163c3b9cdeb3c5c3b2e9315a066cf..ff0db8a29f727bcf4ec71a5c8a0c648fad226322 100644 (file)
@@ -584,7 +584,7 @@ CkReductionMsg *CkReductionMsg::
 
 // Charm kernel message runtime support:
 void *
-CkReductionMsg::alloc(int msgnum,int size,int *sz,int priobits)
+CkReductionMsg::alloc(int msgnum,size_t size,int *sz,int priobits)
 {
   int totalsize=ARM_DATASTART+(*sz);
   DEBR(("CkReductionMsg::Allocating %d store; %d bytes total\n",*sz,totalsize));
index e7ca081c9c3030f8ee28e61ae084f5fdc0d9234a..d0ab9e97b77818a2774e54eed3dcadd6305789fe 100644 (file)
@@ -8,7 +8,7 @@ module CkReduction {
        entry void callMeBack(CkGroupInitCallbackMsg *);
   };
   
-  message [varsize] CkReductionMsg;
+  message CkReductionMsg;
   message CkReductionNumberMsg;
   
   group CkReductionMgr : CkGroupInitCallback {
index 03e97ea83fdfaf27f91ab67ec0deda60dad1adb1..418217db9645a701b815531ff30a611b23f8ebec 100644 (file)
@@ -268,7 +268,7 @@ public:
                CkReduction::reducerType reducer=CkReduction::invalid);
 
        //Msg runtime support
-       static void *alloc(int msgnum, int size, int *reqSize, int priobits);
+       static void *alloc(int msgnum, size_t size, int *reqSize, int priobits);
        static void *pack(CkReductionMsg *);
        static CkReductionMsg *unpack(void *in);
        
index 34bcb5d666073eb90c1faaf07b8b665c7b507ded..2b9baef1e0a1799d6c497ecfbfa6c78db46a581e 100644 (file)
@@ -1,5 +1,5 @@
 module tempo  {
-  message [varsize] TempoMessage;
+  message TempoMessage;
 
   chare TempoChare
   {
index b793c24475674609cd21ce9a60b70cde5b6107eb..a501f356c88d8398b591a41252e4b3186b986d33 100644 (file)
@@ -4,8 +4,8 @@ extern module LBDatabase;
 
 readonly CkGroupID loadbalancer;
 
-message[varsize] CLBStatsMsg;
-message[varsize] CLBMigrateMsg;
+message CLBStatsMsg;
+message CLBMigrateMsg;
 
 group CentralLB {
   entry void CentralLB(void);  
index 26a8d47d7867a20d8e75f1236b2771e732fb791d..7a827b500a3b17a03c935f5f22015aa6aaa86ff6 100644 (file)
@@ -5,7 +5,7 @@ extern module LBDatabase;
 readonly CkGroupID nborBaselb;
 
 message NLBStatsMsg;
-message[varsize] NLBMigrateMsg;
+message NLBMigrateMsg;
 
 group NborBaseLB {
   entry void NborBaseLB(void);  
index bef5be267a503cc80ea85fd964a9ec7ed7326e55..89d4bb522d1c71fa918319b485a51966b54d5f0e 100644 (file)
@@ -5,7 +5,7 @@ extern module LBDatabase;
 readonly CkGroupID wslb;
 
 message WSLBStatsMsg;
-message[varsize] WSLBMigrateMsg;
+message WSLBMigrateMsg;
 
 group WSLB {
   entry void WSLB(void);  
index fcdc7bfb8718212c02aa1d87589531de2e674813..b067e770b40d7ffa12d45dfdd08090ea89382255 100644 (file)
@@ -1,7 +1,7 @@
 module ampi {
   extern module MetisLB;
-  message [packed] ArgsInfo;
-  message [varsize] AmpiMsg;
+  message ArgsInfo;
+  message AmpiMsg;
   message AmpiStartMsg;
   array[1D] ampi {
     entry ampi(AmpiStartMsg *);
index fcdc7bfb8718212c02aa1d87589531de2e674813..b067e770b40d7ffa12d45dfdd08090ea89382255 100644 (file)
@@ -1,7 +1,7 @@
 module ampi {
   extern module MetisLB;
-  message [packed] ArgsInfo;
-  message [varsize] AmpiMsg;
+  message ArgsInfo;
+  message AmpiMsg;
   message AmpiStartMsg;
   array[1D] ampi {
     entry ampi(AmpiStartMsg *);
index 3617158a4e04629c7de72ffc7e7311a4f4e3d2df..92635d7936a1fecf979e562c5348cd5faea36302 100644 (file)
@@ -3,8 +3,8 @@ mainmodule fem {
   readonly CkChareID _mainhandle;
   readonly CkArrayID _femaid;
   readonly unsigned int _nchunks;
-  message [varsize] DataMsg;
-  message [packed] ChunkMsg;
+  message DataMsg;
+  message ChunkMsg;
   mainchare main {
     entry main();
     entry void updateMesh(ChunkMsg *);
index 3bcd016f88ce4997b6670a6d8a8be376df871aeb..2b2e52671269268530913cd3fab6fa991be25069 100644 (file)
@@ -1,6 +1,6 @@
 module receiver {
 
-  message [varsize] receiverMsg;
+  message receiverMsg;
 
   array [1D] receiver {
     entry receiver(void);
index bf6a9fcf5ed0e4222026e86e7964a8470075eae4..edf16316996502a9852c00b86597e4c680ca4ffb 100644 (file)
@@ -206,14 +206,14 @@ static const short yyrline[] = { 0,
    208,   210,   212,   214,   216,   218,   220,   222,   226,   230,
    232,   236,   240,   242,   246,   248,   252,   256,   260,   262,
    264,   266,   268,   272,   274,   276,   280,   284,   286,   290,
-   294,   298,   300,   304,   306,   310,   312,   316,   318,   322,
-   324,   328,   332,   336,   338,   342,   344,   346,   350,   352,
-   356,   358,   362,   364,   368,   372,   376,   382,   386,   390,
-   392,   396,   400,   404,   408,   412,   414,   418,   420,   422,
-   426,   428,   430,   434,   436,   440,   444,   446,   448,   450,
-   452,   456,   458,   462,   464,   468,   470,   472,   476,   478,
-   480,   484,   486,   490,   492,   496,   498,   500,   502,   506,
-   508,   510,   514,   518,   520,   524,   526
+   294,   298,   300,   310,   312,   316,   318,   322,   324,   328,
+   330,   334,   338,   342,   344,   348,   350,   352,   356,   358,
+   362,   364,   368,   370,   374,   378,   382,   388,   392,   396,
+   398,   402,   406,   410,   414,   418,   420,   424,   426,   428,
+   432,   434,   436,   440,   442,   446,   450,   452,   454,   456,
+   458,   462,   464,   468,   470,   474,   476,   478,   482,   484,
+   486,   490,   492,   496,   498,   502,   504,   506,   508,   512,
+   514,   516,   520,   524,   526,   530,   532
 };
 #endif
 
@@ -424,7 +424,7 @@ static const short yycheck[] = {     1,
    253,   156,   268,   264,    -1,    -1,    -1,    -1,    -1,    73
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "/home/csar2/bhandark/share/bison.simple"
+#line 3 "/usr/lib/bison.simple"
 /* This file comes from bison-1.28.  */
 
 /* Skeleton output parser for bison,
@@ -638,7 +638,7 @@ __yy_memcpy (char *to, char *from, unsigned int count)
 #endif
 #endif
 \f
-#line 217 "/home/csar2/bhandark/share/bison.simple"
+#line 217 "/usr/lib/bison.simple"
 
 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
    into yyparse.  The argument should have type void *.
@@ -1260,102 +1260,108 @@ case 72:
     break;}
 case 73:
 #line 301 "xi-grammar.y"
-{ yyval.intval = yyvsp[-1].intval; ;
+{ 
+                 /*
+                 printf("Warning: Message attributes are being phased out.\n");
+                 printf("Warning: Please remove them from interface files.\n");
+                 */
+                 yyval.intval = yyvsp[-1].intval; 
+               ;
     break;}
 case 74:
-#line 305 "xi-grammar.y"
+#line 311 "xi-grammar.y"
 { yyval.intval = yyvsp[0].intval; ;
     break;}
 case 75:
-#line 307 "xi-grammar.y"
+#line 313 "xi-grammar.y"
 { yyval.intval = yyvsp[-2].intval | yyvsp[0].intval; ;
     break;}
 case 76:
-#line 311 "xi-grammar.y"
-{ yyval.intval = SPACKED; ;
+#line 317 "xi-grammar.y"
+{ yyval.intval = 0; ;
     break;}
 case 77:
-#line 313 "xi-grammar.y"
-{ yyval.intval = SVARSIZE; ;
+#line 319 "xi-grammar.y"
+{ yyval.intval = 0; ;
     break;}
 case 78:
-#line 317 "xi-grammar.y"
+#line 323 "xi-grammar.y"
 { yyval.intval = 0; ;
     break;}
 case 79:
-#line 319 "xi-grammar.y"
+#line 325 "xi-grammar.y"
 { yyval.intval = yyvsp[-1].intval; ;
     break;}
 case 80:
-#line 323 "xi-grammar.y"
+#line 329 "xi-grammar.y"
 { yyval.intval = yyvsp[0].intval; ;
     break;}
 case 81:
-#line 325 "xi-grammar.y"
+#line 331 "xi-grammar.y"
 { yyval.intval = yyvsp[-2].intval | yyvsp[0].intval; ;
     break;}
 case 82:
-#line 329 "xi-grammar.y"
+#line 335 "xi-grammar.y"
 { yyval.intval = 0x01; ;
     break;}
 case 83:
-#line 333 "xi-grammar.y"
+#line 339 "xi-grammar.y"
 { yyval.mv = new MsgVar(yyvsp[-4].type, yyvsp[-3].strval); ;
     break;}
 case 84:
-#line 337 "xi-grammar.y"
+#line 343 "xi-grammar.y"
 { yyval.mvlist = new MsgVarList(yyvsp[0].mv); ;
     break;}
 case 85:
-#line 339 "xi-grammar.y"
+#line 345 "xi-grammar.y"
 { yyval.mvlist = new MsgVarList(yyvsp[-1].mv, yyvsp[0].mvlist); ;
     break;}
 case 86:
-#line 343 "xi-grammar.y"
-{ yyval.message = new Message(lineno, yyvsp[0].ntype, yyvsp[-1].intval); ;
+#line 349 "xi-grammar.y"
+{ yyval.message = new Message(lineno, yyvsp[0].ntype); ;
     break;}
 case 87:
-#line 345 "xi-grammar.y"
-{ yyval.message = new Message(lineno, yyvsp[-3].ntype, yyvsp[-4].intval, yyvsp[-1].typelist); ;
+#line 351 "xi-grammar.y"
+{ yyval.message = new Message(lineno, yyvsp[-3].ntype, yyvsp[-1].typelist); ;
     break;}
 case 88:
-#line 347 "xi-grammar.y"
-{ yyval.message = new Message(lineno, yyvsp[-3].ntype, yyvsp[-4].intval, 0, yyvsp[-1].mvlist); ;
+#line 353 "xi-grammar.y"
+{ yyval.message = new Message(lineno, yyvsp[-3].ntype, 0, yyvsp[-1].mvlist); ;
     break;}
 case 89:
-#line 351 "xi-grammar.y"
+#line 357 "xi-grammar.y"
 { yyval.typelist = 0; ;
     break;}
 case 90:
-#line 353 "xi-grammar.y"
+#line 359 "xi-grammar.y"
 { yyval.typelist = yyvsp[0].typelist; ;
     break;}
 case 91:
-#line 357 "xi-grammar.y"
+#line 363 "xi-grammar.y"
 { yyval.typelist = new TypeList(yyvsp[0].ntype); ;
     break;}
 case 92:
-#line 359 "xi-grammar.y"
+#line 365 "xi-grammar.y"
 { yyval.typelist = new TypeList(yyvsp[-2].ntype, yyvsp[0].typelist); ;
     break;}
 case 93:
-#line 363 "xi-grammar.y"
+#line 369 "xi-grammar.y"
 { yyval.chare = new Chare(lineno, yyvsp[-2].ntype, yyvsp[-1].typelist, yyvsp[0].mbrlist, yyvsp[-3].intval); ;
     break;}
 case 94:
-#line 365 "xi-grammar.y"
+#line 371 "xi-grammar.y"
 { yyval.chare = new MainChare(lineno, yyvsp[-2].ntype, yyvsp[-1].typelist, yyvsp[0].mbrlist, yyvsp[-3].intval); ;
     break;}
 case 95:
-#line 369 "xi-grammar.y"
+#line 375 "xi-grammar.y"
 { yyval.chare = new Group(lineno, yyvsp[-2].ntype, yyvsp[-1].typelist, yyvsp[0].mbrlist, yyvsp[-3].intval); ;
     break;}
 case 96:
-#line 373 "xi-grammar.y"
+#line 379 "xi-grammar.y"
 { yyval.chare = new NodeGroup(lineno, yyvsp[-2].ntype, yyvsp[-1].typelist, yyvsp[0].mbrlist, yyvsp[-3].intval); ;
     break;}
 case 97:
-#line 377 "xi-grammar.y"
+#line 383 "xi-grammar.y"
 {/*Stupid special case for [1D] indices*/
                        char *buf=new char[40];
                        sprintf(buf,"%sD",yyvsp[-2].strval);
@@ -1363,210 +1369,210 @@ case 97:
                ;
     break;}
 case 98:
-#line 383 "xi-grammar.y"
+#line 389 "xi-grammar.y"
 { yyval.ntype = new NamedType(yyvsp[-1].strval); ;
     break;}
 case 99:
-#line 387 "xi-grammar.y"
+#line 393 "xi-grammar.y"
 { yyval.chare = new Array(lineno, yyvsp[-3].ntype, yyvsp[-2].ntype, yyvsp[-1].typelist, yyvsp[0].mbrlist); ;
     break;}
 case 100:
-#line 391 "xi-grammar.y"
+#line 397 "xi-grammar.y"
 { yyval.chare = new Chare(lineno, new NamedType(yyvsp[-2].strval), yyvsp[-1].typelist, yyvsp[0].mbrlist, yyvsp[-3].intval);;
     break;}
 case 101:
-#line 393 "xi-grammar.y"
+#line 399 "xi-grammar.y"
 { yyval.chare = new MainChare(lineno, new NamedType(yyvsp[-2].strval), yyvsp[-1].typelist, yyvsp[0].mbrlist, yyvsp[-3].intval); ;
     break;}
 case 102:
-#line 397 "xi-grammar.y"
+#line 403 "xi-grammar.y"
 { yyval.chare = new Group(lineno, new NamedType(yyvsp[-2].strval), yyvsp[-1].typelist, yyvsp[0].mbrlist, yyvsp[-3].intval); ;
     break;}
 case 103:
-#line 401 "xi-grammar.y"
+#line 407 "xi-grammar.y"
 { yyval.chare = new NodeGroup( lineno, new NamedType(yyvsp[-2].strval), yyvsp[-1].typelist, yyvsp[0].mbrlist, yyvsp[-3].intval); ;
     break;}
 case 104:
-#line 405 "xi-grammar.y"
+#line 411 "xi-grammar.y"
 { yyval.chare = new Array( lineno, yyvsp[-3].ntype, new NamedType(yyvsp[-2].strval), yyvsp[-1].typelist, yyvsp[0].mbrlist); ;
     break;}
 case 105:
-#line 409 "xi-grammar.y"
-{ yyval.message = new Message(lineno, new NamedType(yyvsp[-1].strval), yyvsp[-2].intval); ;
+#line 415 "xi-grammar.y"
+{ yyval.message = new Message(lineno, new NamedType(yyvsp[-1].strval)); ;
     break;}
 case 106:
-#line 413 "xi-grammar.y"
+#line 419 "xi-grammar.y"
 { yyval.type = 0; ;
     break;}
 case 107:
-#line 415 "xi-grammar.y"
+#line 421 "xi-grammar.y"
 { yyval.type = yyvsp[0].type; ;
     break;}
 case 108:
-#line 419 "xi-grammar.y"
+#line 425 "xi-grammar.y"
 { yyval.strval = 0; ;
     break;}
 case 109:
-#line 421 "xi-grammar.y"
+#line 427 "xi-grammar.y"
 { yyval.strval = yyvsp[0].strval; ;
     break;}
 case 110:
-#line 423 "xi-grammar.y"
+#line 429 "xi-grammar.y"
 { yyval.strval = yyvsp[0].strval; ;
     break;}
 case 111:
-#line 427 "xi-grammar.y"
+#line 433 "xi-grammar.y"
 { yyval.tvar = new TType(new NamedType(yyvsp[-1].strval), yyvsp[0].type); ;
     break;}
 case 112:
-#line 429 "xi-grammar.y"
+#line 435 "xi-grammar.y"
 { yyval.tvar = new TFunc(yyvsp[-1].ftype, yyvsp[0].strval); ;
     break;}
 case 113:
-#line 431 "xi-grammar.y"
+#line 437 "xi-grammar.y"
 { yyval.tvar = new TName(yyvsp[-2].type, yyvsp[-1].strval, yyvsp[0].strval); ;
     break;}
 case 114:
-#line 435 "xi-grammar.y"
+#line 441 "xi-grammar.y"
 { yyval.tvarlist = new TVarList(yyvsp[0].tvar); ;
     break;}
 case 115:
-#line 437 "xi-grammar.y"
+#line 443 "xi-grammar.y"
 { yyval.tvarlist = new TVarList(yyvsp[-2].tvar, yyvsp[0].tvarlist); ;
     break;}
 case 116:
-#line 441 "xi-grammar.y"
+#line 447 "xi-grammar.y"
 { yyval.tvarlist = yyvsp[-1].tvarlist; ;
     break;}
 case 117:
-#line 445 "xi-grammar.y"
+#line 451 "xi-grammar.y"
 { yyval.templat = new Template(yyvsp[-1].tvarlist, yyvsp[0].chare); yyvsp[0].chare->setTemplate(yyval.templat); ;
     break;}
 case 118:
-#line 447 "xi-grammar.y"
+#line 453 "xi-grammar.y"
 { yyval.templat = new Template(yyvsp[-1].tvarlist, yyvsp[0].chare); yyvsp[0].chare->setTemplate(yyval.templat); ;
     break;}
 case 119:
-#line 449 "xi-grammar.y"
+#line 455 "xi-grammar.y"
 { yyval.templat = new Template(yyvsp[-1].tvarlist, yyvsp[0].chare); yyvsp[0].chare->setTemplate(yyval.templat); ;
     break;}
 case 120:
-#line 451 "xi-grammar.y"
+#line 457 "xi-grammar.y"
 { yyval.templat = new Template(yyvsp[-1].tvarlist, yyvsp[0].chare); yyvsp[0].chare->setTemplate(yyval.templat); ;
     break;}
 case 121:
-#line 453 "xi-grammar.y"
+#line 459 "xi-grammar.y"
 { yyval.templat = new Template(yyvsp[-1].tvarlist, yyvsp[0].message); yyvsp[0].message->setTemplate(yyval.templat); ;
     break;}
 case 122:
-#line 457 "xi-grammar.y"
+#line 463 "xi-grammar.y"
 { yyval.mbrlist = 0; ;
     break;}
 case 123:
-#line 459 "xi-grammar.y"
+#line 465 "xi-grammar.y"
 { yyval.mbrlist = yyvsp[-2].mbrlist; ;
     break;}
 case 124:
-#line 463 "xi-grammar.y"
+#line 469 "xi-grammar.y"
 { yyval.mbrlist = 0; ;
     break;}
 case 125:
-#line 465 "xi-grammar.y"
+#line 471 "xi-grammar.y"
 { yyval.mbrlist = new MemberList(yyvsp[-1].member, yyvsp[0].mbrlist); ;
     break;}
 case 126:
-#line 469 "xi-grammar.y"
+#line 475 "xi-grammar.y"
 { yyval.member = yyvsp[-1].entry; ;
     break;}
 case 127:
-#line 471 "xi-grammar.y"
+#line 477 "xi-grammar.y"
 { yyval.member = yyvsp[-1].readonly; ;
     break;}
 case 128:
-#line 473 "xi-grammar.y"
+#line 479 "xi-grammar.y"
 { yyval.member = yyvsp[-1].readonly; ;
     break;}
 case 129:
-#line 477 "xi-grammar.y"
+#line 483 "xi-grammar.y"
 { yyval.entry = new Entry(lineno, yyvsp[-5].intval|yyvsp[-1].intval, new BuiltinType("void"), yyvsp[-3].strval, yyvsp[-2].rtype, yyvsp[0].val); ;
     break;}
 case 130:
-#line 479 "xi-grammar.y"
+#line 485 "xi-grammar.y"
 { yyval.entry = new Entry(lineno, yyvsp[-5].intval|yyvsp[-1].intval, yyvsp[-4].ptype, yyvsp[-3].strval, yyvsp[-2].rtype, yyvsp[0].val); ;
     break;}
 case 131:
-#line 481 "xi-grammar.y"
+#line 487 "xi-grammar.y"
 { yyval.entry = new Entry(lineno, yyvsp[-2].intval, 0, yyvsp[-1].strval, yyvsp[0].rtype, 0); ;
     break;}
 case 132:
-#line 485 "xi-grammar.y"
+#line 491 "xi-grammar.y"
 { yyval.intval = 0; ;
     break;}
 case 133:
-#line 487 "xi-grammar.y"
+#line 493 "xi-grammar.y"
 { yyval.intval = yyvsp[-1].intval; ;
     break;}
 case 134:
-#line 491 "xi-grammar.y"
+#line 497 "xi-grammar.y"
 { yyval.intval = yyvsp[0].intval; ;
     break;}
 case 135:
-#line 493 "xi-grammar.y"
+#line 499 "xi-grammar.y"
 { yyval.intval = yyvsp[-2].intval | yyvsp[0].intval; ;
     break;}
 case 136:
-#line 497 "xi-grammar.y"
+#line 503 "xi-grammar.y"
 { yyval.intval = STHREADED; ;
     break;}
 case 137:
-#line 499 "xi-grammar.y"
+#line 505 "xi-grammar.y"
 { yyval.intval = SSYNC; ;
     break;}
 case 138:
-#line 501 "xi-grammar.y"
+#line 507 "xi-grammar.y"
 { yyval.intval = SLOCKED; ;
     break;}
 case 139:
-#line 503 "xi-grammar.y"
+#line 509 "xi-grammar.y"
 { yyval.intval = SVIRTUAL; ;
     break;}
 case 140:
-#line 507 "xi-grammar.y"
+#line 513 "xi-grammar.y"
 { yyval.rtype = 0; ;
     break;}
 case 141:
-#line 509 "xi-grammar.y"
+#line 515 "xi-grammar.y"
 { yyval.rtype = new BuiltinType("void"); ;
     break;}
 case 142:
-#line 511 "xi-grammar.y"
+#line 517 "xi-grammar.y"
 { yyval.rtype = yyvsp[0].ptype; ;
     break;}
 case 143:
-#line 515 "xi-grammar.y"
+#line 521 "xi-grammar.y"
 { yyval.rtype = yyvsp[-1].rtype; ;
     break;}
 case 144:
-#line 519 "xi-grammar.y"
+#line 525 "xi-grammar.y"
 { yyval.val = 0; ;
     break;}
 case 145:
-#line 521 "xi-grammar.y"
+#line 527 "xi-grammar.y"
 { yyval.val = new Value(yyvsp[0].strval); ;
     break;}
 case 146:
-#line 525 "xi-grammar.y"
+#line 531 "xi-grammar.y"
 { yyval.intval = 0; ;
     break;}
 case 147:
-#line 527 "xi-grammar.y"
+#line 533 "xi-grammar.y"
 { if(strcmp(yyvsp[0].strval, "0")) { yyerror("expected 0"); exit(1); }
                  yyval.intval = SPURE; 
                ;
     break;}
 }
    /* the action file gets copied in in place of this dollarsign */
-#line 543 "/home/csar2/bhandark/share/bison.simple"
+#line 543 "/usr/lib/bison.simple"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -1786,7 +1792,7 @@ yyerrhandle:
     }
   return 1;
 }
-#line 531 "xi-grammar.y"
+#line 537 "xi-grammar.y"
 
 void yyerror(const char *mesg)
 {
index 57268bba0a12e3e00f7bbfb357faae7b6aca3674..387cf543ab5666fb60fef0e1c94f19c7fde95f4c 100644 (file)
@@ -298,7 +298,13 @@ ReadonlyMsg        : READONLY MESSAGE SimpleType '*'  Name
 MAttribs       : /* Empty */
                { $$ = 0; }
                | '[' MAttribList ']'
-               { $$ = $2; }
+               { 
+                 /*
+                 printf("Warning: Message attributes are being phased out.\n");
+                 printf("Warning: Please remove them from interface files.\n");
+                 */
+                 $$ = $2; 
+               }
                ;
 
 MAttribList    : MAttrib
@@ -308,9 +314,9 @@ MAttribList : MAttrib
                ;
 
 MAttrib                : PACKED
-               { $$ = SPACKED; }
+               { $$ = 0; }
                | VARSIZE
-               { $$ = SVARSIZE; }
+               { $$ = 0; }
                ;
 
 CAttribs       : /* Empty */
@@ -340,11 +346,11 @@ VarList           : Var
                ;
 
 Message                : MESSAGE MAttribs NamedType
-               { $$ = new Message(lineno, $3, $2); }
+               { $$ = new Message(lineno, $3); }
                | MESSAGE MAttribs NamedType '{' TypeList '}'
-               { $$ = new Message(lineno, $3, $2, $5); }
+               { $$ = new Message(lineno, $3, $5); }
                | MESSAGE MAttribs NamedType '{' VarList '}'
-               { $$ = new Message(lineno, $3, $2, 0, $5); }
+               { $$ = new Message(lineno, $3, 0, $5); }
                ;
 
 OptBaseList    : /* Empty */
@@ -406,7 +412,7 @@ TArray              : ARRAY ArrayIndexType Name OptBaseList MemberEList
                ;
 
 TMessage       : MESSAGE MAttribs Name ';'
-               { $$ = new Message(lineno, new NamedType($3), $2); }
+               { $$ = new Message(lineno, new NamedType($3)); }
                ;
 
 OptTypeInit    : /* Empty */
index 1928d9501c78c3d7bad6ece93c19c4c65cfe0aee..5bb5ad090b0267b63bf7aed08ac231ea93dc52e3 100644 (file)
@@ -152,11 +152,7 @@ Message::print(XStr& str)
     templat->genSpec(str);
   str << "message ";
   type->print(str);
-  if(isVarrays()) {
-    str << "{\n";
-    mvlist->print(str);
-    str << "}\n";
-  }
+  printVars(str);
   str << ";\n";
 }
 
@@ -739,116 +735,55 @@ static const char *CIMsgClass =
 "{\n"
 "  public:\n"
 "    static int __idx;\n"
-"    void*operator new(size_t s){return CkAllocMsg(__idx,s,0);}\n"
+"    void* operator new(size_t, const int pb=0);\n"
 "    void operator delete(void *p){CkFreeMsg(p);}\n"
-"    void*operator new(size_t,void*p){return p;}\n"
-"    void*operator new(size_t s, int p){return CkAllocMsg(__idx,s,p);}\n"
+"    void* operator new(size_t, void*p) {return p;}\n"
+"    void* operator new(size_t, int*, const int pb=0);\n"
+"    static void*alloc(int,size_t,int*,int);\n"
 ;
 
 static const char *CIMsgClassAnsi =
 "{\n"
 "  public:\n"
 "    static int __idx;\n"
-"    void*operator new(size_t s){return CkAllocMsg(__idx,s,0);}\n"
-"    void operator delete(void *p){CkFreeMsg(p);}\n"
-"    void*operator new(size_t,void*p){return p;}\n"
-"    void operator delete(void*,void*){}\n"
-"    void*operator new(size_t s, int p){return CkAllocMsg(__idx,s,p);}\n"
-"    void operator delete(void *,int){}\n"
-;
-
-static const char *CIAllocDecl =
-"    void *operator new(size_t s, int *sz, int p);\n"
-;
-
-static const char *CIAllocDeclAnsi =
-"    void *operator new(size_t s, int *sz, int p);\n"
-"    void operator delete(void*,int *,int);\n"
+"    void* operator new(size_t,void*p) { return p; }\n"
+"    void operator delete(void*p,void*){CkFreeMsg(p);}\n"
+"    void* operator new(size_t,const int pb=0);\n"
+"    void operator delete(void*p,const int pb=0){\n"
+"      CkFreeMsg(p);}\n"
+"    void* operator new(size_t, int*, const int pb=0);\n"
+"    void operator delete(void*p,int*,const int pb=0){\n"
+"      CkFreeMsg(p);}\n"
+"    static void* alloc(int,size_t,int*,int);\n"
 ;
 
 void
 Message::genAllocDecl(XStr &str)
 {
+  int i, num;
+  XStr mtype;
+  mtype << type;
+  if(templat) templat->genVars(mtype);
   if(compilemode==ansi)
     str << CIMsgClassAnsi;
   else str << CIMsgClass;
-
-  if(isVarsize()) {
-    if(compilemode==ansi)
-      str << CIAllocDeclAnsi;
-    else str << CIAllocDecl;
-  }
-  if(isVarrays()) {
-    int num = mvlist->len();
-    str << "    void *operator new(size_t s,";
-    int i;
+  str << "    static void *pack(" << mtype << " *p);\n";
+  str << "    static " << mtype << "* unpack(void* p);\n";
+  num = numVars();
+  if(num>0) {
+    str << "    void *operator new(size_t,";
     for(i=0;i<num;i++)
-      str << "int sz" << i << ", ";
-    str << "int p);\n";
+      str << "int, ";
+    str << "const int);\n";
     if(compilemode==ansi) {
-      str << "    void operator delete(void*,";
+      str << "    void operator delete(void *p,";
       for(i=0;i<num;i++)
         str << "int, ";
-      str << "int);\n";
+      str << "const int){CkFreeMsg(p)}\n";
     }
   }
 }
 
-void
-Message::genVarraysMacros(XStr& str)
-{
-  int num = mvlist->len();
-  assert(num>0);
-  MsgVarList *ml = mvlist;
-  MsgVar *mv = ml->msg_var;
-  int i;
-  str << "\n#define " << type << "_VARSIZE_MACROS() \\\n";
-  str << "  static void* alloc(int msgnum, int sz, int *sizes, int pb) {\\\n";
-  str << "    int offsets[" << num+1 << "];\\\n";
-  str << "    offsets[0] = ALIGN8(sz);\\\n";
-  for(i=1; i<=num; i++) {
-    str << "    offsets[" << i << "] = offsets[" << i-1 << "] + ";
-    str << "ALIGN8(sizeof(" << mv->type << ")*sizes[" << i-1 << "]);\\\n";
-    ml = ml->next;
-    if (ml != 0) mv = ml->msg_var;
-  }
-  ml = mvlist;
-  mv = ml->msg_var;
-  str << "    " << type << " *newmsg = (" << type << " *) ";
-  str << "CkAllocMsg(msgnum, offsets[" << num << "], pb);\\\n";
-  for(i=0;i<num;i++) {
-    str << "    newmsg->" << mv->name << " = (" << mv->type << " *) ";
-    str << "((char *)newmsg + offsets[" << i << "]);\\\n";
-    ml = ml->next;
-    if (ml != 0) mv = ml->msg_var;
-  }
-  str << "    return (void *) newmsg;\\\n";
-  str << "  }\\\n";
-  str << "  static void* pack(" << type << "* msg) {\\\n";
-  ml = mvlist;
-  mv = ml->msg_var;
-  for(i=0;i<num;i++) {
-    str << "    msg->" << mv->name << " = (" <<mv->type << " *) ";
-    str << "((char *)msg->" << mv->name << " - (char *)msg);\\\n";
-    ml = ml->next;
-    if (ml != 0) mv = ml->msg_var;
-  }
-  str << "    return (void *) msg;\\\n";
-  str << "  }\\\n";
-  str << "  static " << type << "* unpack(void* buf) {\\\n";
-  str << "    " << type << " * msg = (" << type << " *) buf;\\\n";
-  ml = mvlist;
-  mv = ml->msg_var;
-  for(i=0;i<num;i++) {
-    str << "    msg->" << mv->name << " = (" <<mv->type << " *) ";
-    str << "((size_t)msg->" << mv->name << " + (char *)msg);\\\n";
-    ml = ml->next;
-    if (ml != 0) mv = ml->msg_var;
-  }
-  str << "    return msg;\\\n";
-  str << "  }\n";
-}
-
 void
 Message::genDecls(XStr& str)
 {
@@ -856,8 +791,6 @@ Message::genDecls(XStr& str)
   ptype<<proxyPrefix()<<type;
   if(type->isTemplated())
     return;
-  if(isVarrays())
-    genVarraysMacros(str);
   str << "/* DECLS: "; print(str); str << " */\n";
   if(templat)
     templat->genSpec(str);
@@ -868,7 +801,7 @@ Message::genDecls(XStr& str)
     templat->genSpec(str);
   str << "class "<<ptype;
   if(external || type->isTemplated()) {
-    str << ";";
+    str << ";\n";
     return;
   }
 //OSL 4/11/2000-- make *all* messages inherit from CkArrayMessage.
@@ -890,8 +823,15 @@ Message::genDecls(XStr& str)
 void
 Message::genDefs(XStr& str)
 {
-  XStr ptype;
+  int i, num = numVars();
+  MsgVarList *ml;
+  MsgVar *mv;
+  XStr ptype, mtype, tspec;
   ptype<<proxyPrefix()<<type;
+  if(templat) templat->genVars(ptype);
+  mtype << type;
+  if(templat) templat->genVars(mtype);
+  if(templat) { templat->genSpec(tspec); tspec << " "; }
   
   str << "/* DEFS: "; print(str); str << " */\n";
   if(!templat) {
@@ -900,84 +840,68 @@ Message::genDefs(XStr& str)
     str << "#ifdef CK_TEMPLATES_ONLY\n";
   }
   if(!(external||type->isTemplated())) {
-    // generate varsize new operator
-    if(isVarsize()) {
-      if(templat) {
-        templat->genSpec(str);
-        str << " ";
-      }
-      str << "void *"<<ptype;
-      if(templat)
-        templat->genVars(str);
-      str << "::operator new(size_t s, int *sz, int p)\n";
-      str << "{\n";
-      str << "  return ";
-      type->print(str);
-      if(templat)
-        templat->genVars(str);
-      str << "::alloc(__idx, s, sz, p);\n";
-      str << "}\n";
-
-      if(compilemode==ansi) {
-        // Generate corresponding delete
-        if(templat) {
-          templat->genSpec(str);
-          str << " ";
-        }
-        str << "void "<<ptype;
-        if(templat)
-          templat->genVars(str);
-        str << "::operator delete(void *p, int *, int)\n";
-        str << "{\n";
-        str << "  CkFreeMsg(p);\n";
-        str << "}\n";
-      }
-    }
-    if(isVarrays()) {
-      int num = mvlist->len();
-      if(templat) {
-        templat->genSpec(str);
-        str << " ";
-      }
-      str << "void *"<<ptype;
-      if(templat)
-        templat->genVars(str);
-      str << "::operator new(size_t s, ";
-      int i;
+    // new (size_t, priobits)
+    str << tspec << "void *" << ptype << "::operator new(size_t s,";
+    str << "const int pb){\n";
+    str << "  return " << mtype << "::alloc(__idx, s, 0, pb);\n}\n";
+    // new (size_t, int*, priobits)
+    str << tspec << "void *" << ptype << "::operator new(size_t s, int* sz,";
+    str << "const int pb){\n";
+    str << "  return " << mtype << "::alloc(__idx, s, sz, pb);\n}\n";
+    // new (size_t, int, int, ..., int, priobits)
+    if(num>0) {
+      str << tspec << "void *"<< ptype << "::operator new(size_t s, ";
       for(i=0;i<num;i++)
         str << "int sz" << i << ", ";
-      str << "int p) {\n";
-      str << "  int i, sizes[" << num << "];\n";
+      str << "const int p) {\n";
+      str << "  int i; int sizes[" << num << "];\n";
       for(i=0;i<num;i++)
         str << "  sizes[" << i << "] = sz" << i << ";\n";
-      str << "  return ";
-      type->print(str);
-      if(templat)
-        templat->genVars(str);
-      str << "::alloc(__idx, s, sizes, p);\n";
+      str << "  return " << mtype << "::alloc(__idx, s, sizes, p);\n";
       str << "}\n";
-
-      if(compilemode==ansi) {
-        // Generate corresponding delete
-        if(templat) {
-          templat->genSpec(str);
-          str << " ";
-        }
-        str << "void "<<ptype;
-        if(templat)
-          templat->genVars(str);
-        str << "::operator delete(void *p, \n";
-       for(i=0;i<num;i++)
-         str << "int,";
-        str << "int) {\n";
-        str << "  CkFreeMsg(p);\n";
-        str << "}\n";
-      }
     }
+    // alloc(int, size_t, int*, priobits)
+    str << tspec << "void* " << ptype;
+    str << "::alloc(int msgnum, size_t sz, int *sizes, int pb) {\n";
+    str << "  int offsets[" << num+1 << "];\n";
+    str << "  offsets[0] = ALIGN8(sz);\n";
+    for(i=0, ml=mvlist; i<num; i++, ml=ml->next) {
+      mv = ml->msg_var;
+      str << "  if(sizes==0)\n";
+      str << "    offsets[" << i+1 << "] = offsets[0];\n";
+      str << "  else\n";
+      str << "    offsets[" << i+1 << "] = offsets[" << i << "] + ";
+      str << "ALIGN8(sizeof(" << mv->type << ")*sizes[" << i << "]);\n";
+    }
+    str << "  " << mtype << " *newmsg = (" << mtype << " *) ";
+    str << "CkAllocMsg(msgnum, offsets[" << num << "], pb);\n";
+    for(i=0, ml=mvlist; i<num; i++,ml=ml->next) {
+      mv = ml->msg_var;
+      str << "  newmsg->" << mv->name << " = (" << mv->type << " *) ";
+      str << "((char *)newmsg + offsets[" << i << "]);\n";
+    }
+    str << "  return (void *) newmsg;\n}\n";
+    // pack
+    str << tspec << "void* " << ptype << "::pack(" << mtype << " *msg) {\n";
+    for(i=0, ml=mvlist; i<num; i++, ml=ml->next) {
+      mv = ml->msg_var;
+      str << "  msg->" << mv->name << " = (" <<mv->type << " *) ";
+      str << "((char *)msg->" << mv->name << " - (char *)msg);\n";
+    }
+    str << "  return (void *) msg;\n}\n";
+    // unpack
+    str << tspec << mtype << "* " << ptype << "::unpack(void* buf) {\n";
+    str << "  " << mtype << " *msg = (" << mtype << " *) buf;\n";
+    for(i=0, ml=mvlist; i<num; i++, ml=ml->next) {
+      mv = ml->msg_var;
+      str << "  msg->" << mv->name << " = (" <<mv->type << " *) ";
+      str << "((size_t)msg->" << mv->name << " + (char *)msg);\n";
+    }
+    str << "  return msg;\n}\n";
   }
   if(!templat) {
     if(!external && !type->isTemplated()) {
-      str << "int "<<ptype<<"::__idx=0;\n";
+      str << "int "<< ptype <<"::__idx=0;\n";
 
       // Define the Marshalling message for Fortran
       if (fortranMode)
@@ -991,10 +915,7 @@ Message::genDefs(XStr& str)
       }
     }
   } else {
-    templat->genSpec(str);
-    str << "int "<<proxyPrefix()<<type;
-    templat->genVars(str);
-    str <<"::__idx=0;\n";
+    str << tspec << "int "<< ptype <<"::__idx=0;\n";
   }
   str << "#endif\n";
 }
@@ -1004,20 +925,11 @@ Message::genReg(XStr& str)
 {
   str << "/* REG: "; print(str); str << "*/\n";
   if(!templat && !external) {
-    str << "  "<<proxyPrefix()<<type<<"::";
-    str << "__register(\""<<type<<"\", sizeof("<<type<<"),";
-    if(isPacked()||isVarsize()) {
-      str << "(CkPackFnPtr) "<<type;
-      if(templat)
-        templat->genVars(str);
-      str << "::pack, ";
-      str << "(CkUnpackFnPtr) "<<type;
-      if(templat)
-        templat->genVars(str);
-      str << "::unpack);\n";
-    } else {
-      str << "0, 0);\n";
-    }
+    XStr ptype, mtype, tspec;
+    ptype<<proxyPrefix()<<type;
+    str << ptype << "::__register(\"" << type << "\", sizeof(" << type <<"),";
+    str << "(CkPackFnPtr) " << type << "::pack,";
+    str << "(CkUnpackFnPtr) " << type << "::unpack);\n";
   }
 }
 
index 3ad593dbec5a21af9992a0a14e48af83d1325837..307b9c853dfbb7c07413a00fbf379fc333797303 100644 (file)
@@ -387,9 +387,6 @@ class NodeGroup : public Group {
 };
 
 
-#define SPACKED  0x01
-#define SVARSIZE 0x02
-
 class Message; // forward declaration
 //  typedef map< string, Message* > MessageList;
 class MessageList {
@@ -450,26 +447,28 @@ class MsgVarList : public Printable {
 };
 
 class Message : public TEntity, public Construct {
-    int attrib;
     NamedType *type;
     TypeList *contents;
     MsgVarList *mvlist;
+    void printVars(XStr& str) {
+      if(mvlist!=0) {
+        str << "{\n";
+        mvlist->print(str);
+        str << "}\n";
+      }
+    }
   public:
-    Message(int l, NamedType *t, int a, TypeList *c=0, MsgVarList *mv=0)
-      : attrib(a), type(t), contents(c), mvlist(mv) 
-      { line=l; setTemplate(0);
-        message_list.add(type->getBaseName(), this); }
+    Message(int l, NamedType *t, TypeList *c=0, MsgVarList *mv=0)
+      : type(t), contents(c), mvlist(mv) 
+      { line=l; setTemplate(0); message_list.add(type->getBaseName(), this); }
     void print(XStr& str);
     void genDecls(XStr& str);
     void genDefs(XStr& str);
     void genReg(XStr& str);
-    int  isPacked(void) { return attrib&SPACKED; }
-    int  isVarsize(void) { return attrib&SVARSIZE; }
-    int  isVarrays(void) { return (isVarsize() && (mvlist!=0)); }
     virtual char *proxyPrefix(void) {return msg_prefix();}
     TypeList *getContents(void) const { return contents; }
     void genAllocDecl(XStr& str);
-    void genVarraysMacros(XStr& str);
+    int numVars(void) { return ((mvlist==0) ? 0 : mvlist->len()); }
 };
 
 /* A formal argument of a template */