Merge branch 'charm' of charmgit:charm into charm
authorChao Mei <chaomei2@illinois.edu>
Tue, 3 May 2011 02:06:18 +0000 (21:06 -0500)
committerChao Mei <chaomei2@illinois.edu>
Tue, 3 May 2011 02:06:18 +0000 (21:06 -0500)
47 files changed:
src/arch/bluegenep/conv-mach.sh
src/arch/bluegenep/machine.c
src/arch/cuda/hybridAPI/Makefile
src/arch/cuda/hybridAPI/wrqueue.cu
src/arch/mpi-darwin-ppc/conv-mach.sh
src/arch/mpi/machine.c
src/arch/multicore-darwin-x86/conv-mach.sh
src/arch/multicore-darwin-x86_64/conv-mach.sh
src/arch/net-darwin-ppc/cc-cc64.sh
src/ck-core/charm++.h
src/ck-core/cklocation.h
src/ck-core/cktiming.C
src/ck-ldb/HybridBaseLB.C
src/ck-ldb/HybridBaseLB.h
src/ck-ldb/HybridLB.C
src/conv-core/convcore.c
src/conv-core/converse.h
src/conv-core/cpuaffinity.c
src/conv-core/cputopology.C
src/langs/bluegene/bigsim_init.C
src/langs/bluegene/bigsim_logs.C
src/langs/bluegene/bigsim_logs.h
src/langs/bluegene/blue.C
src/langs/bluegene/blue_impl.h
src/langs/bluegene/blue_standalone.C
src/langs/charj/.gitignore
src/langs/charj/src/charj/translator/Charj.g
src/langs/charj/src/charj/translator/CharjASTModifier2.g
src/langs/charj/tests/run_tests.sh [new file with mode: 0755]
src/langs/charj/tests/unit/Assert.cj
src/langs/charj/tests/unit/FieldModifiers.cj
src/langs/charj/tests/unit/FieldModifiersFailure.cj [new file with mode: 0644]
src/langs/charj/tests/unit/FuncArgs.cj
src/langs/charj/tests/unit/Main.cj
src/langs/charj/tests/unit/ObjectField.cj
src/libs/ck-libs/ampi/ampi.C
src/libs/ck-libs/tcharm/tcharm_impl.h
src/scripts/charmc
src/scripts/configure
src/scripts/configure.in
src/scripts/conv-autoconfig.h.in
src/xlat-i/sdag/CSdagConstruct.C
src/xlat-i/xi-scan.C
src/xlat-i/xi-scan.l
src/xlat-i/xi-symbol.C
src/xlat-i/xi-symbol.h
src/xlat-i/xi-util.C

index ad37e5d6abd0d4c8fb8356ee655aeca22fe4222c..1a5ca0c6505d0796aa9cde4c6a8b13bfe0d4be5c 100644 (file)
@@ -60,4 +60,4 @@ CMK_MOD_EXT="mod"
 CMK_F90_USE_MODDIR=1
 CMK_F90_MODINC="-I"
 CMK_QT="generic-light"
-CMK_PRODUCTION='-DOPTIMIZED_MULTICAST -DOPT_RZV '
+CMK_PRODUCTION='-DOPTIMIZED_MULTICAST=1 -DOPT_RZV '
index 10a3a3fc52e4bee6103fc163084120bbb5336ca2..179c2295e4e77d1a6fe719933001403ae346a01b 100644 (file)
@@ -64,7 +64,7 @@ CsvDeclare(CmiNodeLock, node_bcastLock);
 /* FIXME: need a random number that everyone agrees ! */
 #define CHARM_MAGIC_NUMBER               126
 
-#if !CMK_OPTIMIZE
+#if CMK_ERROR_CHECKING
 static int checksum_flag = 0;
 extern unsigned char computeCheckSum(unsigned char *data, int len);
 
@@ -938,7 +938,7 @@ void ConverseInit(int argc, char **argv, CmiStartFn fn, int usched, int initret)
 
     /* checksum flag */
     if (CmiGetArgFlag(argv,"+checksum")) {
-#if !CMK_OPTIMIZE
+#if CMK_ERROR_CHECKING
         checksum_flag = 1;
         if (_Cmi_mynode == 0) CmiPrintf("Charm++: CheckSum checking enabled! \n");
 #else
@@ -1768,7 +1768,7 @@ void CmiFreeListSendFn(int npes, int *pes, int size, char *msg) {
         }
     }
 
-#if OPTIMIZED_MULTICAST
+#if OPTIMIZED_MULTICAST && CMK_SMP
 #warning "Using Optimized Multicast"
     if (npes > 1) {    
       int *newpelist = (int *) malloc (sizeof(int) * npes);
index 639071004b1c11b00ea592586d92ed352cd31b6e..b8e10313446fe54fda1fbc2bf9df2730daf3142c 100644 (file)
@@ -1,5 +1,5 @@
-CUDA_DIR=/usr/local/cuda/cuda
-NVIDIA_CUDA_SDK=/usr/local/NVIDIA_CUDA_SDK
+CUDA_DIR=/usr/local/cuda
+NVIDIA_CUDA_SDK=/usr/local/NVIDIA_GPU_Computing_SDK/C
 CHARMDIR=../../
 CHARMC=$(CHARMDIR)/bin/charmc
 
@@ -26,7 +26,7 @@ hybridapi.o: cuda-hybrid-api.cu cuda-hybrid-api.h
        $(NVCC) $(NVCC_FLAGS) $(NVCC_INC) -o hybridapi.o cuda-hybrid-api.cu
 
 wrqueue.o: wrqueue.cu wrqueue.h wr.h 
-       $(NVCC) $(NVCC_FLAGS) $(NVCC_INC) -o wrqueue.o wrqueue.cu 
+       $(NVCC) $(NVCC_FLAGS) $(NVCC_INC) -o wrqueue.o wrqueue.cu
 
 clean:
        rm -f *.o *.a 
index 566fc5649b3eeae2b1005b1c02e6f6419099a116..00cc2b5d28eb003e8d59e925bb3a22bcff194a81 100644 (file)
@@ -8,6 +8,7 @@
  *
  */
 
+#include "ck.h"
 #include "cuda-hybrid-api.h"
 #include "wrqueue.h"
 #include "stdio.h"
@@ -77,6 +78,8 @@ void enqueue(workRequestQueue *q, workRequest *wr) {
 
   q->size++; 
 
+  CpvAccess(_qd)->create();
+
 #ifdef GPU_WRQ_VERBOSE
   printf("(%d) ENQ size: %d\n", CmiMyPe(), q->size);
 #endif
@@ -95,6 +98,9 @@ void dequeue(workRequestQueue *q) {
 #ifdef GPU_WRQ_VERBOSE
   printf("(%d) DEQ size: %d\n", CmiMyPe(), q->size);
 #endif
+
+  CpvAccess(_qd)->process();
+
 }
 
 int deleteWRqueue(workRequestQueue *q) {
index 28c1e2ac143825d50c468933a74d2fffd01b4bab..24ba37c63c07656961e22c36ef12577b2f89e725 100644 (file)
@@ -3,10 +3,10 @@
 
 CMK_CPP_CHARM="/lib/cpp -P"
 CMK_CPP_C="mpicc -E"
-OPTS_CC="$OPTS_CC -Wno-long-double -dynamic -fno-common "
+OPTS_CC="$OPTS_CC -dynamic -fno-common "
 CMK_CC="mpicc -fPIC "
-#CMK_CXX="/private/automount/home/gzheng/csar/genx/build_charm_mpi/mpicxx -Wno-long-double -fPIC -dynamic -fno-common "
-OPTS_CXX="$OPTS_CXX -Wno-long-double -dynamic -fno-common "
+#CMK_CXX="/private/automount/home/gzheng/csar/genx/build_charm_mpi/mpicxx -fPIC -dynamic -fno-common "
+OPTS_CXX="$OPTS_CXX -dynamic -fno-common "
 CMK_CXX="mpicxx -fPIC "
 CMK_CXXPP="mpicxx -E "
 OPTS_LD="$OPTS_LD -multiply_defined suppress -flat_namespace "
index c01d809d5d6699ba113d785a24eaf75c399d73b4..387e3fab253bee49fd7382454a17f6a65c15771b 100644 (file)
@@ -300,7 +300,7 @@ int CmiTimerIsSynchronized()
   if (flag) {
     _is_global = *(int*)v;
     if (_is_global && CmiMyPe() == 0)
-      printf("Charm++> MPI timer is synchronized!\n");
+      printf("Charm++> MPI timer is synchronized\n");
   }
   return _is_global;
 }
@@ -323,6 +323,8 @@ double CmiInitTime()
 void CmiTimerInit(char **argv)
 {
   _absoluteTime = CmiGetArgFlagDesc(argv,"+useAbsoluteTime", "Use system's absolute time as wallclock time.");
+  if (_absoluteTime && CmiMyPe() == 0)
+      printf("Charm++> absolute MPI timer is used\n");
 
   _is_global = CmiTimerIsSynchronized();
 
@@ -1505,14 +1507,14 @@ void SendSpanningChildren(int size, char *msg)
     nd += startnode;
     nd = nd%CmiNumNodes();
     CmiAssert(nd>=0 && nd!=CmiMyNode());       
-       #if CMK_SMP
-       /* always send to the first rank of other nodes */
-       char *newmsg = CmiCopyMsg(msg, size);
-       CMI_DEST_RANK(newmsg) = 0;
+#if CMK_SMP
+      /* always send to the first rank of other nodes */
+    char *newmsg = CmiCopyMsg(msg, size);
+    CMI_DEST_RANK(newmsg) = 0;
     EnqueueMsg(newmsg, size, nd);
-       #else
-       CmiSyncSendFn1(nd, size, msg);
-       #endif
+#else
+    CmiSyncSendFn1(nd, size, msg);
+#endif
   }
 #if CMK_SMP  
    /* second send msgs to my peers on this node */
index 8d4b5d84651784df161670982df94251d8b3c656..7bb39f7a0d073c9c7aaf8fdd726bbdce6ae34189 100644 (file)
@@ -3,8 +3,8 @@ CMK_DEFS=' -D_REENTRANT '
 
 CMK_CPP_CHARM="/usr/bin/cpp -P"
 CMK_CPP_C="gcc -E"
-CMK_CC="gcc -Wno-long-double -fPIC -dynamic -fno-common $CMK_DEFS "
-CMK_CXX="g++ -Wno-long-double -fPIC -dynamic -fno-common $CMK_DEFS "
+CMK_CC="gcc -fPIC -dynamic -fno-common $CMK_DEFS "
+CMK_CXX="g++ -fPIC -dynamic -fno-common $CMK_DEFS "
 CMK_CXXPP="g++ -x g++ -E "
 CMK_LDXX="$CMK_CXX -multiply_defined suppress $CMK_DEFS "
 CMK_XIOPTS=""
index 9292c7e597c9dc5d6a6fda698bd2f5e21e6b7477..0dc0ab3a483ab44868c58ffad6c26e6d8d786205 100644 (file)
@@ -3,8 +3,8 @@ CMK_DEFS=' -D_REENTRANT '
 
 CMK_CPP_CHARM="/usr/bin/cpp -P"
 CMK_CPP_C="gcc -arch x86_64 -E"
-CMK_CC="gcc -arch x86_64 -Wno-long-double -fPIC -dynamic -fno-common $CMK_DEFS "
-CMK_CXX="g++ -arch x86_64 -Wno-long-double -fPIC -dynamic -fno-common $CMK_DEFS "
+CMK_CC="gcc -arch x86_64 -fPIC -dynamic -fno-common $CMK_DEFS "
+CMK_CXX="g++ -arch x86_64 -fPIC -dynamic -fno-common $CMK_DEFS "
 CMK_CXXPP="g++ -arch x86_64 -x g++ -E "
 CMK_LDXX="$CMK_CXX -multiply_defined suppress $CMK_DEFS "
 CMK_XIOPTS=""
index 6c7882420c4a4431f098a4981b2c3ba8a6799574..c27fc86ecf4bce89ad20685534a857f4d782b2a7 100644 (file)
@@ -1,8 +1,8 @@
 COMMENTS="gcc 64bit for MacOSX Tiger"
 
 CMK_MACOSX64=1
-CMK_CC="cc -m64 -Wno-long-double -fPIC -dynamic -fno-common "
-CMK_CXX="c++ -m64 -Wno-long-double -fPIC -dynamic -fno-common "
+CMK_CC="cc -m64 -fPIC -dynamic -fno-common "
+CMK_CXX="c++ -m64 -fPIC -dynamic -fno-common "
 CMK_CXXPP="c++ -m64 -x c++ -E "
 CMK_LD="$CMK_CC -multiply_defined suppress "
 CMK_LDXX="$CMK_CXX -multiply_defined suppress "
index 9f2296fa87459ab4a1bac9b63c0330d275fb7a52..225291a4781db2fae80ba17c8e2a535ab27c90a0 100644 (file)
@@ -29,7 +29,9 @@ public: static int __idx;
 #include "ckbitvector.h"
 #include "init.h"
 #include "debug-charm.h"
+#ifndef __CUDACC__
 #include "simd.h"
+#endif
 
 PUPbytes(CkChareID)
 PUPbytes(CkGroupID)
index a479ee3aca12100d18d679e0ec8301842bb3e578..c817b5f612e2e093e862962734526c994b9fe888 100644 (file)
@@ -408,7 +408,7 @@ template <class T>
 class CkMigratableListT : public CkMigratableList {
        typedef CkMigratableList super;
 public:
-       inline void put(T *v,int atIdx) {super::put((void *)v,atIdx);}
+       inline void put(T *v,int atIdx) {super::put((CkMigratable *)v,atIdx);}
        inline T *get(int localIdx) {return (T *)super::get(localIdx);}
        inline T *next(int &from) {return (T *)super::next(from);}
 };
index 2156493f0ac9182762644ea373cf5ba7b58d5f77..9d23ac807df7f8c925efa2d77f23db205522fcd1 100644 (file)
@@ -64,7 +64,7 @@ public:
       CmiAbort("Failed to generated trace param file!");
       // write out
     for (int i=0; i<events.size(); i++)
-      fprintf(fp, events[i]);
+      fprintf(fp, "%s", events[i]);
     fclose(fp);
     dumped = 1;
   }
index fbf631f9d8a868d21f9154eb6e321a5d5f753315..46c812a0701a3e15d25a1b32cf2b0f30a9502dd9 100644 (file)
@@ -78,7 +78,13 @@ HybridBaseLB::HybridBaseLB(const CkLBOptions &opt): BaseLB(opt)
 
   if (_lb_args.statsOn()) theLbdb->CollectStatsOn();
 
-  group1_created = 0;
+  group1_created = 0;             // base class need to call initTree()
+#endif
+}
+
+void HybridBaseLB::initTree()
+{
+#if CMK_LBDB_ON
 #if ! CMK_BLUEGENE_CHARM
     // create a multicast group to optimize level 1 multicast
   if (tree->isroot(CkMyPe(), 1)) {
@@ -1231,26 +1237,7 @@ LBMigrateMsg * HybridBaseLB::createMigrateMsg(LDStats* stats)
     DEBUGF(("[%d] obj (%d %d %d %d) migrate from %d to %d\n", CkMyPe(), item->obj.objID().id[0], item->obj.objID().id[1], item->obj.objID().id[2], item->obj.objID().id[3], item->from_pe, item->to_pe));
   }
 
-  if (_lb_args.printSummary()) {
-    double stime = CkWallTimer();
-#if 0
-    if (currentLevel == 1) {
-      LBInfo info(count);
-      info.getInfo(stats, count, 1);   // no comm cost
-      double mLoad, mCpuLoad, totalLoad;
-      info.getSummary(mLoad, mCpuLoad, totalLoad);
-      int nmsgs, nbytes;
-      stats->computeNonlocalComm(nmsgs, nbytes);
-      //CkPrintf("[%d] Load Summary: max (with comm): %f max (obj only): %f total: %f on %d processors at step %d useMem: %fKB nonlocal: %d %dKB.\n", CkMyPe(), maxLoad, mCpuLoad, totalLoad, count, step(), (1.0*useMem())/1024, nmsgs, nbytes/1024);
-      thisProxy[0].reportLBQulity(mLoad, mCpuLoad, totalLoad, nmsgs, nbytes/1024);
-    }
-#endif
-    if (currentLevel == tree->numLevels()-2) {
-      double mem = (1.0*useMem())/1024;
-      thisProxy[0].reportLBMem(mem);
-    }
-    CkPrintf("[%d] Print Summary takes %f seconds. \n", CkMyPe(), CkWallTimer()-stime);
-  }   // end print summary
+  if (_lb_args.printSummary())  printSummary(stats, stats->nprocs());
 
   // translate relative pe number to its real number
   for(i=0; i < migrate_count; i++) {
@@ -1290,6 +1277,8 @@ LBMigrateMsg * HybridBaseLB::createMigrateMsg(CkVec<MigrateInfo *> &migrateInfo,
     migrateInfo.insertAtEnd(migrateMe);
   }
 
+  if (_lb_args.printSummary())  printSummary(NULL, count);
+
   int migrate_count=migrateInfo.length();
   // ignore avail_vector, etc for now
   //LBMigrateMsg * msg = new(migrate_count,count,count,0) LBMigrateMsg;
@@ -1317,6 +1306,29 @@ int HybridBaseLB::NeighborIndex(int pe, int atlevel)
     return peslot;
 }
 
+void HybridBaseLB::printSummary(LDStats *stats, int count)
+{
+  double stime = CkWallTimer();
+#if 1
+  if (currentLevel == 1 && stats!=NULL) {
+      LBInfo info(count);
+      info.getInfo(stats, count, 1);   // no comm cost
+      double mLoad, mCpuLoad, totalLoad;
+      info.getSummary(mLoad, mCpuLoad, totalLoad);
+      int nmsgs, nbytes;
+      stats->computeNonlocalComm(nmsgs, nbytes);
+      //CkPrintf("[%d] Load Summary: max (with comm): %f max (obj only): %f total: %f on %d processors at step %d useMem: %fKB nonlocal: %d %dKB.\n", CkMyPe(), maxLoad, mCpuLoad, totalLoad, count, step(), (1.0*useMem())/1024, nmsgs, nbytes/1024);
+      thisProxy[0].reportLBQulity(mLoad, mCpuLoad, totalLoad, nmsgs, nbytes/1024);
+  }
+#endif
+
+  if (currentLevel == tree->numLevels()-2) {
+      double mem = (1.0*useMem())/1024;
+      thisProxy[0].reportLBMem(mem);
+  }
+  CkPrintf("[%d] Print Summary takes %f seconds. \n", CkMyPe(), CkWallTimer()-stime);
+}
+
 // only called on PE 0
 void HybridBaseLB::reportLBQulity(double mload, double mCpuLoad, double totalload, int nmsgs, double bytes)
 {
index eb556ff4ef2ead68089b20c1c20bed7687222844..41030f25ce5fa5d25701a9ec4669ce585da4b2f9 100644 (file)
@@ -352,6 +352,8 @@ protected:
   // helper function
   LBMigrateMsg * createMigrateMsg(CkVec<MigrateInfo *> &migrateInfo, int count);
   virtual LBVectorMigrateMsg* VectorStrategy(LDStats* stats);
+  void    printSummary(LDStats *stats, int count);
+  void    initTree();
 
   // Not to be used -- maintained for legacy applications
   virtual LBMigrateMsg* Strategy(LDStats* stats, int nprocs) {
index 819e367e6d188d2e7e7caece59abc056f0db061a..342633e383c1afe6a0284656bc7b8a024f3932f4 100644 (file)
@@ -36,6 +36,8 @@ HybridLB::HybridLB(const CkLBOptions &opt): HybridBaseLB(opt)
   refine = (CentralLB *)AllocateRefineLB();
 //  greedy = (CentralLB *)AllocateMetisLB();
   greedy = (CentralLB *)AllocateGreedyLB();
+
+  initTree();
 #endif
 }
 
index eede4ed98d301a28d4b1a71b2320d8706a2e5cd6..e971b81c97154e85e757afbdeef8cbea822bc3e0 100644 (file)
@@ -782,6 +782,27 @@ static void CmiHandlerInit()
  *
  *****************************************************************************/
 
+#if CMK_HAS_ASCTIME
+
+char *CmiPrintDate()
+{
+  struct tm *local;
+  time_t t;
+
+  t = time(NULL);
+  local = localtime(&t);
+  return asctime(local);
+}
+
+#else
+
+char *CmiPrintDate()
+{
+  return "N/A";
+}
+
+#endif
+
 static int _absoluteTime = 0;
 
 #if CMK_TIMER_USE_TIMES
index 5ed3cf6ceee216c5e0e8cc2cf2d1ff249bbc65da..a6880c595321f1de782651da6664a1e3df028c80 100644 (file)
@@ -778,6 +778,8 @@ double   CmiWallTimer(void);
 int      CmiTimerIsSynchronized();
 #endif
 
+char *CmiPrintDate();
+
 #include "queueing.h" /* for "Queue" */
 
 #if CMK_NODE_QUEUE_AVAILABLE
index 80bc4e0796f47896bd5e82488f9ea16b522a5c0c..675d04e43d2ad1a2581991f5872c3e75debb17f4 100644 (file)
@@ -578,7 +578,7 @@ void CmiInitCPUAffinity(char **argv)
 
   if (pemap != NULL) {
     int mycore = search_pemap(pemap, CmiMyPe());
-    if(CmiMyNode()==0) CmiPrintf("Charm++> set PE %d on node %d to core #%d\n", CmiMyPe(), CmiMyNode(), mycore); 
+    if(show_affinity_flag && CmiMyNode()==0) CmiPrintf("Charm++> set PE %d on node %d to core #%d\n", CmiMyPe(), CmiMyNode(), mycore); 
     if (mycore >= CmiNumCores()) {
       CmiPrintf("Error> Invalid core number %d, only have %d cores (0-%d) on the node. \n", mycore, CmiNumCores(), CmiNumCores()-1);
       CmiAbort("Invalid core number");
@@ -586,18 +586,40 @@ void CmiInitCPUAffinity(char **argv)
     if (CmiSetCPUAffinity(mycore) == -1) CmiAbort("set_cpu_affinity abort!");
     CmiNodeAllBarrier();
     CmiNodeAllBarrier();
-    if (show_affinity_flag) CmiPrintCPUAffinity();
+    /* if (show_affinity_flag) CmiPrintCPUAffinity(); */
     return;
   }
 
+#if CMK_CRAYXT
+  if (CmiMyRank() == 0)
+  {
+    int numPes = CmiNumPes();
+    int numNodes = CmiNumNodes();
+
+    int myid = getXTNodeID(CmiMyNode(), CmiNumNodes());
+    int myrank;
+    int pe = CmiMyPe();
+    pe --;
+    while (pe >= 0) {
+      if (getXTNodeID(CmiNodeOf(pe), numNodes) != myid) break;
+      pe --;
+    }
+    myrank = CmiMyPe() - pe - 1;
+
+    if (-1 != CmiSetCPUAffinity(myrank)) {
+      DEBUGP(("Processor %d is bound to core #%d on node #%d\n", CmiMyPe(), myrank, mynode));
+    }
+    else{
+      CmiPrintf("Processor %d set affinity failed!\n", CmiMyPe());
+      CmiAbort("set cpu affinity abort!\n");
+    }
+  }
+  CmiNodeAllBarrier();
+#else
     /* get my ip address */
   if (CmiMyRank() == 0)
   {
-#if CMK_CRAYXT
-    ret = getXTNodeID(CmiMyNode(), CmiNumNodes());
-    //printf("NODEID: %d %d. \n", CmiMyNode(), ret);
-    memcpy(&myip, &ret, sizeof(int));
-#elif CMK_HAS_GETHOSTNAME
+#if CMK_HAS_GETHOSTNAME
     myip = skt_my_ip();        /* not thread safe, so only calls on rank 0 */
 #else
     CmiAbort("Can not get unique name for the compute nodes. \n");
@@ -636,6 +658,7 @@ void CmiInitCPUAffinity(char **argv)
   affinity_doneflag++;
   CmiUnlock(affLock);
   CmiNodeAllBarrier();
+#endif
 
   if (show_affinity_flag) CmiPrintCPUAffinity();
 }
index f2f1dd62f151bb2d4fc63e7e0bc47243935e70ea..f48b186ab8379251b54e2a2b24bf6b1c8226cca2 100644 (file)
@@ -396,7 +396,7 @@ extern "C" void CmiInitCPUTopology(char **argv)
   }
 
   int obtain_flag = 1;              // default on
-#if __FAULT__
+#if __FAULT_|| CMK_BLUEGENEQ
   obtain_flag = 0;
 #endif
   if(CmiGetArgFlagDesc(argv,"+obtain_cpu_topology",
@@ -419,9 +419,11 @@ extern "C" void CmiInitCPUTopology(char **argv)
   if (!obtain_flag) {
     if (CmiMyRank() == 0) cpuTopo.sort();
     CmiNodeAllBarrier();
+    CcdRaiseCondition(CcdTOPOLOGY_AVAIL);      // call callbacks
     return;
   }
-  else if (CmiMyPe() == 0) {
+
+  if (CmiMyPe() == 0) {
 #if CMK_BLUEGENE_CHARM
     if (BgNodeRank() == 0)
 #endif
@@ -449,15 +451,6 @@ extern "C" void CmiInitCPUTopology(char **argv)
   CmiBarrier();
 #endif
 
-  if (CmiMyPe() >= CmiNumPes()) {
-    CmiNodeAllBarrier();         // comm thread waiting
-#if CMK_MACHINE_PROGRESS_DEFINED
-#if ! CMK_CRAYXT
-    while (done < CmiMyNodeSize()) CmiNetworkProgress();
-#endif
-#endif
-    return;    /* comm thread return */
-  }
 
 #if 0
   if (gethostname(hostname, 999)!=0) {
@@ -482,7 +475,6 @@ extern "C" void CmiInitCPUTopology(char **argv)
     if (CmiMyPe()==0)  CmiPrintf("Charm++> Running on %d unique compute nodes (%d-way SMP).\n", cpuTopo.numNodes, CmiNumCores());
   }
   CmiNodeAllBarrier();
-#elif CMK_BLUEGENEQ
 #elif CMK_CRAYXT
   if(CmiMyRank() == 0) {
     int numPes = cpuTopo.numPes = CmiNumPes();
@@ -512,7 +504,19 @@ extern "C" void CmiInitCPUTopology(char **argv)
     if (CmiMyPe()==0)  CmiPrintf("Charm++> Running on %d unique compute nodes (%d-way SMP).\n", cpuTopo.numNodes, CmiNumCores());
   }
   CmiNodeAllBarrier();
+
 #else
+
+  if (CmiMyPe() >= CmiNumPes()) {
+    CmiNodeAllBarrier();         // comm thread waiting
+#if CMK_MACHINE_PROGRESS_DEFINED
+#if ! CMK_CRAYXT
+    while (done < CmiMyNodeSize()) CmiNetworkProgress();
+#endif
+#endif
+    return;    /* comm thread return */
+  }
+
     /* get my ip address */
   if (CmiMyRank() == 0)
   {
@@ -541,6 +545,7 @@ extern "C" void CmiInitCPUTopology(char **argv)
   msg->procs[0].ip = myip;
   msg->procs[0].ncores = CmiNumCores();
   msg->procs[0].rank = 0;
+  msg->procs[0].nodeID = 0;
   CmiReduce(msg, sizeof(hostnameMsg)+sizeof(_procInfo), combineMessage);
 
     // blocking here
index 409b0ff15cceb1019e49bb5c3ec38fb503be4a78..f0df484892a5f7f6b4f0097f6be02f3edd3c78b2 100644 (file)
@@ -122,7 +122,7 @@ CmiPrintf("\n\n\nBroadcast begin EXIT\n");
   }
 }
 
-int BGMach::traceProejctions(int pe)
+int BGMach::traceProjections(int pe)
 {
   if (procList.isEmpty()) return 1;
   return procList.includes(pe);
index 125a6d6f0c62de00c82dc460c5f52bd96e074cff..5ca3ce0d0b134066dfc73a32d3db64d499fdda0f 100644 (file)
@@ -158,7 +158,8 @@ BgTimeLog::BgTimeLog()
 
 BgTimeLog::BgTimeLog(BgTimeLog *log)
 {
-  strncpy(name,log->name,20);
+  strncpy(name,log->name,BGLOG_NAMELEN-1);
+  name[BGLOG_NAMELEN-1] = 0;
   ep = log->ep;
   charm_ep = -1;
   startTime = log->startTime;
@@ -197,7 +198,8 @@ BgTimeLog::BgTimeLog(int epc, const char* namestr,double sTime)
 { 
   if(namestr == NULL)
     namestr = (char*)"dummyname1";
-  strncpy(name,namestr,20);
+  strncpy(name,namestr,BGLOG_NAMELEN-1);
+  name[BGLOG_NAMELEN-1] = 0;
   ep = epc;
   charm_ep = -1;
   startTime = sTime;
@@ -217,7 +219,8 @@ BgTimeLog::BgTimeLog(int epc, const char* namestr, double sTime, double eTime)
 {
   if(namestr == NULL)
     namestr = (char*)"dummyname2";
-  strncpy(name,namestr, 20);
+  strncpy(name,namestr, BGLOG_NAMELEN-1);
+  name[BGLOG_NAMELEN-1] = 0;
   ep = epc;
   charm_ep = -1;
   startTime = sTime;
@@ -313,6 +316,17 @@ void BgTimeLog::write(FILE *fp)
     if (!objId.isNull())
       fprintf(fp," ObjID: %d %d %d %d\n", objId.id[0], objId.id[1], objId.id[2], objId.id[3]);
   }
+  if (bglog_version >= 6) {
+    if (mpiOp!=MPI_NONE) {
+      fprintf(fp, "MPI collective: ");
+      switch (mpiOp) {
+      case MPI_BARRIER:   fprintf(fp, "MPI Barrier"); break;
+      case MPI_ALLREDUCE: fprintf(fp, "MPI_Allreduce"); break;
+      case MPI_ALLTOALL:  fprintf(fp, "MPI_Alltoall"); break;
+      }
+      fprintf(fp, " mpiSize: %d\n", mpiSize);
+    }
+  }
   for (i=0; i<msgs.length(); i++)
     msgs[i]->write(fp);
   for (i=0; i<evts.length(); i++)
@@ -407,7 +421,7 @@ void BgTimeLog::pupCommon(PUP::er &p) {
 
   if (bglog_version >= 4) p(charm_ep);
   p|recvTime; p|effRecvTime; p|startTime; p|execTime; p|endTime; 
-  p|flag; p(name,20);
+  p|flag; p(name,BGLOG_NAMELEN);
   if (bglog_version >= 3)
     p((int *)&objId, sizeof(CmiObjId)/sizeof(int));
   else if (bglog_version == 2)
index bfcc32816460a0e0f3d3bedcbd707471f3dc99e3..467deccbc96b187bf198bc32c1208dea16fd61e3 100644 (file)
@@ -111,7 +111,9 @@ extern void BgDelaySend(BgMsgEntry *msgEntry);
 
 class BgTimeLineRec;
 
-enum BgMPIOp { MPI_NONE = 0, MPI_BARRIER = 1, MPI_ALLREDUCE = 2 };
+enum BgMPIOp { MPI_NONE = 0, MPI_BARRIER = 1, MPI_ALLREDUCE = 2 , MPI_ALLTOALL = 3};
+
+#define BGLOG_NAMELEN   20
 
 /**
   one time log for an handler function;
@@ -137,7 +139,7 @@ public:
   unsigned short mpiOp;
   short charm_ep;
 
-  char name[20];
+  char name[BGLOG_NAMELEN];
   char doCorrect;
   char flag;
 
index 5f6330535d42b1dda05f1c81d7f2afd7ae320608..4175bf5dd0baed260b3192d08a64866c8adad56d 100644 (file)
@@ -1112,7 +1112,7 @@ void BgGetSize(int *sx, int *sy, int *sz)
 
 int BgTraceProjectionOn(int pe)
 {
-  return cva(bgMach).traceProejctions(pe);
+  return cva(bgMach).traceProjections(pe);
 }
 
 /* return the total number of Blue gene nodes */
index 62d7fa9c06feff155b182fc9a4c27606214d65a3..e0858def5d633378e486a5b814bd14cf972a84f4 100644 (file)
@@ -62,7 +62,7 @@ public:
         p|x; p|y; p|z; p|numCth; p|numWth; 
        p|stacksize; p|timingMethod; 
        }
-  int traceProejctions(int pe);
+  int traceProjections(int pe);
   void setNetworkModel(char *model);
   int inReplayMode() { return replay != -1 || replaynode != -1; }
 };
index 3c2daaeaf227d979026f6a8473df2a85e1ab9bcc..c08fe8390b9d4d6d232d4ae493dce537f24ac19f 100644 (file)
@@ -5,6 +5,11 @@
 #include <string.h> /*<- for strlen */
 
 /* CkPrintf/CkAbort support: */
+extern "C" void CmiOutOfMemory(int nbytes) {
+       fprintf(stderr,"Fatal error> %d\n",nbytes);
+       abort();
+}
+
 extern "C" void CmiAbort(const char *why) {
         fprintf(stderr,"Fatal error> %s\n",why);
         abort();
index db30012c57199c5ae1ca4ba4d3cd53d945b89fe1..711ed9a30c0ea98e3e7cc42d55361da9ae3103fc 100644 (file)
@@ -1,3 +1,4 @@
 build
 .vimproject
 *.gen
+run_tests.log
index 0b3bc40c4bc2868232be1ed34df37218e16e3355..4bc0e2302c43ede10053aac5b5143e5b69dbc5ed 100644 (file)
@@ -17,6 +17,7 @@ options {
 
 tokens {
 
+    ASSERT                  = 'assert'          ;
     ENTRY                   = 'entry'           ;
     SDAGENTRY               = 'sdagentry'       ;
     TRACED                  = 'traced'          ;
@@ -665,11 +666,11 @@ divconExpr
     ;
 
 nonBlockStatement
-    :   'assert' expr1=expression 
+    :   ASSERT expr1=expression 
         (   ':' expr2=expression ';'
-            ->  ^('assert' $expr1 $expr2)
+            ->  ^(ASSERT $expr1 $expr2)
         |   ';'
-            ->  ^('assert' $expr1)
+            ->  ^(ASSERT $expr1)
         )
     |   IF parenthesizedExpression ifStat=block
         (   ELSE elseStat=block
index a5b00e9f2206358b7d97694c05bb380ab72ed462..b8b85daf7594e00e679187d2a6e61bd8dde3cdb9 100644 (file)
@@ -396,8 +396,8 @@ nonBlockStatement returns [boolean sdag]
     |   ^(FOR forInit? FOR_EXPR (e1=expression)? FOR_UPDATE (e2+=expression)* block {
             $sdag = $block.sdag;
         })
-        -> {$sdag}? ^(SDAG_FOR forInit? FOR_EXPR $e1 FOR_UPDATE $e2 block)
-        -> ^(FOR forInit? FOR_EXPR $e1 FOR_UPDATE $e2 block)
+        -> {$sdag}? ^(SDAG_FOR forInit? FOR_EXPR $e1? FOR_UPDATE $e2? block)
+        -> ^(FOR forInit? FOR_EXPR $e1? FOR_UPDATE $e2? block)
     |   ^(FOR_EACH localModifierList? type IDENT expression block { $sdag = $block.sdag; })
     |   ^(WHILE parenthesizedExpression block { $sdag = $block.sdag; })
         -> {$sdag}? ^(SDAG_WHILE parenthesizedExpression block)
diff --git a/src/langs/charj/tests/run_tests.sh b/src/langs/charj/tests/run_tests.sh
new file mode 100755 (executable)
index 0000000..aa71cf9
--- /dev/null
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+tests=0
+passed_tests=0
+
+BASE_DIR=`pwd`
+CHARJC="$BASE_DIR/../bin/charjc"
+
+function test_file() {
+    tests=`expr $tests + 1`
+    file="$1"
+    EXPECT="success"
+    head -n 1 $file | grep -v "fail" > /dev/null
+    if [ "$?" -ne "0" ]; then
+        EXPECT="failure"
+    fi
+
+    echo "Test $tests: $file" >> $BASE_DIR/run_tests.log
+    RESULT="success"
+    $CHARJC $file &> run_tests.log.tmp
+    if [ "$?" -ne "0" ]; then
+        RESULT="failure"
+    fi
+    cat run_tests.log.tmp >> $BASE_DIR/run_tests.log
+    rm run_tests.log.tmp
+
+    PASS="FAIL"
+    if [ "$RESULT" = "$EXPECT" ]; then
+        PASS="OK"
+        passed_tests=`expr $passed_tests + 1`
+    fi
+    echo "$PASS" >> run_tests.log
+    printf "Testing %s...%s\n" `basename $file` $PASS
+}
+
+rm -f run_tests.log
+TESTDIRS="unit"
+for dir in $TESTDIRS; do
+    pushd $dir > /dev/null
+    rm -rf *.gen *.decl.h
+    for file in `find . -name "*.cj"`; do
+        test_file "$file"
+    done
+    popd > /dev/null
+done
+echo "Passed $passed_tests/$tests tests"
+
index 7bef533bc4d95b157c8c6ddfb93b740fb20ccda9..7b614b2508753f61893de329abfac56b92865c19 100644 (file)
@@ -2,6 +2,8 @@ package tests.unit;
 
 public class Assert {
     void test() {
+        int x = 1;
+        assert x == 1;
         assert 1 == 1;
         assert 1 == 1: "one equals one";
         assert 1 == 2;
index c1958d654febe0e4c279bd2c4ca363eaf51ab158..27174e200e3fa6880d171b45cee0d313d7c270c2 100644 (file)
@@ -9,8 +9,4 @@ public class FieldModifiers {
     volatile int m;
     protected int n;
     final int r;
-// should fail
-    entry int o; 
-    abstract int p; 
-    transient int q;
 }
diff --git a/src/langs/charj/tests/unit/FieldModifiersFailure.cj b/src/langs/charj/tests/unit/FieldModifiersFailure.cj
new file mode 100644 (file)
index 0000000..64a3a8b
--- /dev/null
@@ -0,0 +1,17 @@
+// expect failure
+package tests.unit;
+
+public class FieldModifiers {
+    int z;
+    public int i;
+    private int j;
+    static int k;
+    public static int l;
+    volatile int m;
+    protected int n;
+    final int r;
+// should fail
+    entry int o; 
+    abstract int p; 
+    transient int q;
+}
index bfb75f87cf37eb0774af9e98de8d472f0a24ecc2..4c466858f499099c9f836925cd345c6999a8e16c 100644 (file)
@@ -1,10 +1,14 @@
 package tests.unit;
 
+public class Foo {
+}
+
 public class FuncArgs {
     void test() {
-        a1(1);
-        a2(a1(2), 2);
+        Foo f;
+        a1(f);
+        a2(a1(f), 2);
     }
-    int a1(MadeUpType x) {}
+    int a1(Foo x) { return 0; }
     void a2(int x, float y) {}
 }
index e42dc45062c256d9bf1888fff04a3afeb0086ed9..67708ad2559f5b1f96a3241a17c132ea672c28e5 100644 (file)
@@ -2,7 +2,7 @@
 package tests.unit;
 
 mainchare Main {
-    public entry Main() {
+    public entry Main(CkArgMsg args) {
     }
 
     public entry void run_tests() {
index 6a5da524c3f665b88948128204bd9ca66953c834..59df4be3161d4118ce6d195e995e99ca8f2d5eb2 100644 (file)
@@ -18,7 +18,7 @@ public class SimpleClass {
         m.property++;
         m.property = 0;
         m.foo.property++;
-        method1(m.property, m.foo);
+        method2(m.property, m.foo);
         //Foo n = new Foo(m.foo.property);
         //this.method(m.property);
         //method(n.property);
index 474bb203b5c4bdae2cb600060f622938214ac421..a32a432992de370f57d7f1d60ceb016aad97450a 100644 (file)
@@ -7,6 +7,10 @@
 #include "ampiEvents.h" /*** for trace generation for projector *****/
 #include "ampiProjections.h"
 
+#if CMK_BLUEGENE_CHARM
+#include "bigsim_logs.h"
+#endif
+
 #define CART_TOPOL 1
 #define AMPI_PRINT_IDLE 0
 
@@ -2716,7 +2720,7 @@ int AMPI_Barrier(MPI_Comm comm)
 
   if(getAmpiParent()->isInter(comm)) CkAbort("MPI_Barrier not allowed for Inter-communicator!");
 
-  TRACE_BG_AMPI_LOG(1, 0);
+  TRACE_BG_AMPI_LOG(MPI_BARRIER, 0);
 
   //HACK: Use collective operation as a barrier.
   AMPI_Allreduce(NULL,NULL,0,MPI_INT,MPI_SUM,comm);
@@ -2874,7 +2878,9 @@ int AMPI_Allreduce(void *inbuf, void *outbuf, int count, int type,
   
   CkDDT_DataType *ddt_type = ptr->getDDT()->getType(type);
 
-  TRACE_BG_AMPI_LOG(2, count * ddt_type->getSize());
+#if CMK_BLUEGENE_CHARM
+  TRACE_BG_AMPI_LOG(MPI_ALLREDUCE, ddt_type->getSize(count));
+#endif
 
   if(comm==MPI_COMM_SELF) return copyDatatype(comm,type,count,inbuf,outbuf);
 
@@ -4362,6 +4368,11 @@ int AMPI_Alltoall(void *sendbuf, int sendcount, MPI_Datatype sendtype,
   int comm_size = size;
   MPI_Status status;
 
+#if CMK_BLUEGENE_CHARM
+  TRACE_BG_AMPI_LOG(MPI_ALLTOALL, itemsize);
+#endif
+
+
   if( itemsize <= AMPI_ALLTOALL_SHORT_MSG ){
     /* Short message. Use recursive doubling. Each process sends all
        its data at each step along with all data it received in
index 6d299b4cfb5abc9980030a5db407853b83c95613..2a51d1440e885140b2bb53856109096c2c1909c3 100644 (file)
@@ -280,23 +280,23 @@ void TCHARM_Api_trace(const char *routineName, const char *libraryName);
 class TCharmAPIRoutine {
        int state; //stores if the isomallocblockactivate and ctginstall need to be skipped during activation
        CtgGlobals oldGlobals;  // this is actually a pointer
-       #ifdef CMK_BLUEGENE_CHARM
+#ifdef CMK_BLUEGENE_CHARM
        void *callEvent; // The BigSim-level event that called into the library
         int pe;          // in case thread migrates
-       #endif
+#endif
 
  public:
        // Entering Charm++ from user code
        TCharmAPIRoutine(const char *routineName, const char *libraryName)
        {
-               #ifdef CMK_BLUEGENE_CHARM
+#ifdef CMK_BLUEGENE_CHARM
                // Start a new event, so we can distinguish between client 
                // execution and library execution
                _TRACE_BG_TLINE_END(&callEvent);
                _TRACE_BG_END_EXECUTE(0);
-               _TRACE_BG_BEGIN_EXECUTE_NOMSG(routineName, &callEvent, 0);
                pe = CmiMyPe();
-               #endif
+               _TRACE_BG_BEGIN_EXECUTE_NOMSG(routineName, &callEvent, 0);
+#endif
 
                state = 0;
                //TCharm *tc=CtvAccess(_curTCharm);
@@ -342,13 +342,13 @@ class TCharmAPIRoutine {
                        }
                }
 
-               #ifdef CMK_BLUEGENE_CHARM
+#ifdef CMK_BLUEGENE_CHARM
                void *log;
                _TRACE_BG_TLINE_END(&log);
                _TRACE_BG_END_EXECUTE(0);
                _TRACE_BG_BEGIN_EXECUTE_NOMSG("user_code", &log, 0);
                if (CmiMyPe() == pe) _TRACE_BG_ADD_BACKWARD_DEP(callEvent);
-               #endif
+#endif
        }
 };
 
index 6f9add828fecc90f8ede6f87da240cf2ed466bed..b93312f39463d6c1e97e4f641bb4208606993df0 100755 (executable)
@@ -1192,11 +1192,14 @@ do
                fi
         fi
 
-       if [ "$FILE_EXT" != ".o" -a "$FILE_EXT" != ".co" -a "$FILE_EXT" != ".M" -a "$FILE_EXT" != ".ci" ]
-       then
+#      if [ "$FILE_EXT" != ".o" -a "$FILE_EXT" != ".co" -a "$FILE_EXT" != ".M" -a "$FILE_EXT" != ".ci" ]
+#      then
+        case "$FILE_EXT" in
+        .c|.s|.C|.cc|.cxx|.cpp|.c++|.cu|.f|.F|.f90|.F90)
                [ $VERBOSE ] && echo "Compiling $FILE"
                DoNoErrCheck $RM $BASEO $BASE.f.o
-       fi
+        esac
+#      fi
        if [ ! -z "$SKIPLINK" ] 
        then
                DESTO=""
index dcbeb33d551176e786875f4a8e2812f1c8c37824..2ad1f65d12ba7feb79ca3d41a19a802349cf3e1d 100755 (executable)
@@ -1674,7 +1674,7 @@ test -r ./conv-config.sh && . ./conv-config.sh
 # Decimal representation of Charm++ release line and API revision
 # Increment the last 2 digits when making an API change
 # Increase the first three after branching for a release
-VERSION=60304
+VERSION=60305
 echo $VERSION > ../include/VERSION
 
 cat >>confdefs.h <<_ACEOF
@@ -2869,6 +2869,26 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
+#### test for asctime ###
+
+cat > $tc <<EOT
+#include <time.h>
+int main() {
+  struct tm *local;
+  time_t t;
+  t = time(NULL);
+  local = localtime(&t);
+  asctime(local);
+  return 0;
+}
+EOT
+test_linkc "whether has asctime" "yes" "no" ""
+
+cat >>confdefs.h <<_ACEOF
+#define CMK_HAS_ASCTIME $pass
+_ACEOF
+
+
 #### test for log2 ###
 cat > $t <<EOT
 #include <math.h>
index 2cf0b0307718a4b439c0b8537d70dccf76ed089f..1d1ee50b7dbd6e521fe301c978d0bd0b80a4ff58 100644 (file)
@@ -9,7 +9,7 @@ test -r ./conv-config.sh && . ./conv-config.sh
 # Decimal representation of Charm++ release line and API revision
 # Increment the last 2 digits when making an API change
 # Increase the first three after branching for a release
-VERSION=60304
+VERSION=60305
 echo $VERSION > ../include/VERSION
 AC_DEFINE_UNQUOTED([CHARM_VERSION], $VERSION, [Charm++ Release/API version number])
 
@@ -938,6 +938,22 @@ EOT
 test_linkc "whether getrusage accepts RUSAGE_THREAD" "yes" "no" ""
 AC_DEFINE_UNQUOTED(CMK_HAS_RUSAGE_THREAD, $pass, [whether getrusage accepts RUSAGE_THREAD])
 
+#### test for asctime ###
+
+cat > $tc <<EOT
+#include <time.h>
+int main() {
+  struct tm *local;
+  time_t t;
+  t = time(NULL);
+  local = localtime(&t);
+  asctime(local);
+  return 0;
+}
+EOT
+test_linkc "whether has asctime" "yes" "no" ""
+AC_DEFINE_UNQUOTED(CMK_HAS_ASCTIME, $pass, [whether has asctime])
+
 #### test for log2 ###
 cat > $t <<EOT
 #include <math.h>
index 145279ad00a1d3cdd154e88748acb5ed562036b4..4c3ca130dce971d872094b76e78b144775e2374a 100644 (file)
@@ -75,6 +75,9 @@
 /* whether has alloca.h */
 #undef CMK_HAS_ALLOCA_H
 
+/* whether has asctime */
+#undef CMK_HAS_ASCTIME
+
 /* whether the bindprocessor() exists */
 #undef CMK_HAS_BINDPROCESSOR
 
index f5f8815c9752daa620bcab67cb392014a9b92207..056e3b14e4a626251dd4322b3455021c9acd5f3b 100644 (file)
@@ -240,7 +240,6 @@ void SdagConstruct::generateConnectEntries(XStr& op){
    op << "  void " <<connectEntry->charstar() <<'(';
    ParamList *pl = param;
    XStr msgParams;
-   int i, numStars;
    int count;
    if (pl->isVoid() == 1) {
      op << "void) {\n"; 
@@ -338,7 +337,6 @@ void SdagConstruct::propagateState(int uniqueVarNum)
 void SdagConstruct::propagateState(TList<CStateVar*>& list, TList<CStateVar*>& wlist, TList<SdagConstruct*>& publist, int uniqueVarNum)
 {
   CStateVar *sv;
-  int i;
   TList <CStateVar*> *olistTempStateVars;
   TList<CStateVar*> *whensEntryMethodStateVars; 
   olistTempStateVars = new TList<CStateVar*>();
@@ -1424,7 +1422,6 @@ void SdagConstruct::generateAtomic(XStr& op)
 #if CMK_BLUEGENE_CHARM
   generateEndExec(op);
 #endif
-  SdagConstruct *cn;
   if(nextBeginOrEnd == 1)
     op << "    " << next->label->charstar() << "(";
   else
@@ -1595,7 +1592,7 @@ void SdagConstruct::generateTrace()
     if (traceName) {
       sprintf(text, "%s_%s", CParsedFile::className->charstar(), traceName->charstar());
       // remove blanks
-      for (int i=0; i<strlen(text); i++)
+      for (unsigned int i=0; i<strlen(text); i++)
         if (text[i]==' '||text[i]=='\t') text[i]='_';
     }
     else {
@@ -1664,6 +1661,7 @@ void SdagConstruct::generateEndSeq(XStr& op)
 
 void SdagConstruct::generateEventBracket(XStr& op, int eventType)
 {
+  (void) eventType;
   //Trace this event
   op << "     _TRACE_BG_USER_EVENT_BRACKET(\"" << nameStr
      << "\", __begintime, CkVTimer(),&_bgParentLog); \n";
@@ -1671,6 +1669,7 @@ void SdagConstruct::generateEventBracket(XStr& op, int eventType)
 
 void SdagConstruct::generateListEventBracket(XStr& op, int eventType)
 {
+  (void) eventType;
   op << "    _TRACE_BGLIST_USER_EVENT_BRACKET(\"" << nameStr
      << "\",__begintime,CkVTimer(),&_bgParentLog, " << label->charstar()
      << "_bgLogList);\n";
@@ -1728,7 +1727,7 @@ void SdagConstruct::generateTraceEpDef(XStr& op)          // for trace
 void RemoveSdagComments(char *str)
 {
   char *ptr = str;
-  while (ptr = strstr(ptr, "//")) {
+  while ((ptr = strstr(ptr, "//"))) {
     char *lend = strstr(ptr, "\n");
     if (lend==NULL) break;
     while (ptr != lend) *ptr++=' ';
index 8d13af598c56325e2f56039be9154787b8f824a0..cdf7fb121c240991bb09f170d7baf07ae11e44d8 100644 (file)
@@ -8,7 +8,7 @@
 #define FLEX_SCANNER
 #define YY_FLEX_MAJOR_VERSION 2
 #define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 33
+#define YY_FLEX_SUBMINOR_VERSION 35
 #if YY_FLEX_SUBMINOR_VERSION > 0
 #define FLEX_BETA
 #endif
@@ -30,7 +30,7 @@
 
 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
 
-#if __STDC_VERSION__ >= 199901L
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
 
 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
  * if you want the limit (max/min) macros for int types. 
@@ -53,7 +53,6 @@ typedef int flex_int32_t;
 typedef unsigned char flex_uint8_t; 
 typedef unsigned short int flex_uint16_t;
 typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
 
 /* Limits of integral types. */
 #ifndef INT8_MIN
@@ -84,6 +83,8 @@ typedef unsigned int flex_uint32_t;
 #define UINT32_MAX             (4294967295U)
 #endif
 
+#endif /* ! C99 */
+
 #endif /* ! FLEXINT_H */
 
 #ifdef __cplusplus
@@ -93,11 +94,12 @@ typedef unsigned int flex_uint32_t;
 
 #else  /* ! __cplusplus */
 
-#if __STDC__
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
 
 #define YY_USE_CONST
 
-#endif /* __STDC__ */
+#endif /* defined (__STDC__) */
 #endif /* ! __cplusplus */
 
 #ifdef YY_USE_CONST
@@ -139,7 +141,15 @@ typedef unsigned int flex_uint32_t;
 
 /* Size of default input buffer. */
 #ifndef YY_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k.
+ * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
+ * Ditto for the __ia64__ case accordingly.
+ */
+#define YY_BUF_SIZE 32768
+#else
 #define YY_BUF_SIZE 16384
+#endif /* __ia64__ */
 #endif
 
 /* The state buf must be large enough to hold one state per character in the main buffer.
@@ -177,14 +187,9 @@ extern FILE *yyin, *yyout;
 
 #define unput(c) yyunput( c, (yytext_ptr)  )
 
-/* The following is because we cannot portably get our hands on size_t
- * (without autoconf's help, which isn't available because we want
- * flex-generated scanners to compile on their own).
- */
-
 #ifndef YY_TYPEDEF_YY_SIZE_T
 #define YY_TYPEDEF_YY_SIZE_T
-typedef unsigned int yy_size_t;
+typedef size_t yy_size_t;
 #endif
 
 #ifndef YY_STRUCT_YY_BUFFER_STATE
@@ -839,7 +844,7 @@ int search(char *s);
 #undef yywrap
 #endif
 
-#line 843 "lex.yy.c"
+#line 848 "lex.yy.c"
 
 #define INITIAL 0
 
@@ -857,6 +862,35 @@ int search(char *s);
 
 static int yy_init_globals (void );
 
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+int yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
  */
@@ -891,7 +925,12 @@ static int input (void );
 
 /* Amount of stuff to slurp up with each read. */
 #ifndef YY_READ_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k */
+#define YY_READ_BUF_SIZE 16384
+#else
 #define YY_READ_BUF_SIZE 8192
+#endif /* __ia64__ */
 #endif
 
 /* Copy whatever the last rule matched to the standard output. */
@@ -899,7 +938,7 @@ static int input (void );
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
+#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
 #endif
 
 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
@@ -994,7 +1033,7 @@ YY_DECL
     
 #line 57 "xi-scan.l"
 
-#line 998 "lex.yy.c"
+#line 1037 "lex.yy.c"
 
        if ( !(yy_init) )
                {
@@ -1007,6 +1046,8 @@ YY_DECL
         /* Create the reject buffer large enough to save one state per allowed character. */
         if ( ! (yy_state_buf) )
             (yy_state_buf) = (yy_state_type *)yyalloc(YY_STATE_BUF_SIZE  );
+            if ( ! (yy_state_buf) )
+                YY_FATAL_ERROR( "out of dynamic memory in yylex()" );
 
                if ( ! (yy_start) )
                        (yy_start) = 1; /* first start state */
@@ -1174,7 +1215,7 @@ YY_RULE_SETUP
 #line 74 "xi-scan.l"
 ECHO;
        YY_BREAK
-#line 1178 "lex.yy.c"
+#line 1219 "lex.yy.c"
                        case YY_STATE_EOF(INITIAL):
                                yyterminate();
 
@@ -1376,7 +1417,7 @@ static int yy_get_next_buffer (void)
 
                /* Read in more data. */
                YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-                       (yy_n_chars), num_to_read );
+                       (yy_n_chars), (size_t) num_to_read );
 
                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
                }
@@ -1400,6 +1441,14 @@ static int yy_get_next_buffer (void)
        else
                ret_val = EOB_ACT_CONTINUE_SCAN;
 
+       if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+               /* Extend the array by 50%, plus the number we really need. */
+               yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+               YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+               if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+                       YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+       }
+
        (yy_n_chars) += number_to_move;
        YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
        YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
@@ -1546,7 +1595,7 @@ static int yy_get_next_buffer (void)
                                case EOB_ACT_END_OF_FILE:
                                        {
                                        if ( yywrap( ) )
-                                               return 0;
+                                               return EOF;
 
                                        if ( ! (yy_did_buffer_switch_on_eof) )
                                                YY_NEW_FILE;
@@ -1810,7 +1859,9 @@ static void yyensure_buffer_stack (void)
                (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
                                                                (num_to_alloc * sizeof(struct yy_buffer_state*)
                                                                );
-               
+               if ( ! (yy_buffer_stack) )
+                       YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+                                                                 
                memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
                                
                (yy_buffer_stack_max) = num_to_alloc;
@@ -1828,6 +1879,8 @@ static void yyensure_buffer_stack (void)
                                                                ((yy_buffer_stack),
                                                                num_to_alloc * sizeof(struct yy_buffer_state*)
                                                                );
+               if ( ! (yy_buffer_stack) )
+                       YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
 
                /* zero only the new slots.*/
                memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
@@ -1872,7 +1925,7 @@ YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
 
 /** Setup the input buffer state to scan a string. The next call to yylex() will
  * scan from a @e copy of @a str.
- * @param str a NUL-terminated string to scan
+ * @param yystr a NUL-terminated string to scan
  * 
  * @return the newly allocated buffer state object.
  * @note If you want to scan bytes that may contain NUL values, then use
@@ -1886,8 +1939,8 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
 
 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
  * scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
  * 
  * @return the newly allocated buffer state object.
  */
@@ -2144,73 +2197,73 @@ struct rwtable {
 
 /* Reserved word table */
 struct rwtable rwtable[] = {
-  "module",    MODULE,
-  "mainmodule",        MAINMODULE,
-  "chare",     CHARE,
-  "group",     GROUP,
-  "nodegroup",  NODEGROUP,
-  "array",     ARRAY,
-  "message",   MESSAGE,
-  "conditional",CONDITIONAL,
-  "extern",    EXTERN,
-  "initcall",  INITCALL,
-  "initnode",  INITNODE,
-  "initproc",  INITPROC,
-  "readonly",  READONLY,
-  "stacksize", STACKSIZE,
-  "threaded",  THREADED,
-  "migratable",        MIGRATABLE,
-  "PUPable",   PUPABLE,
-  "pupable",   PUPABLE,
-  "createhere",        CREATEHERE,
-  "createhome",        CREATEHOME,
-  "nokeep",    NOKEEP,
-  "notrace",   NOTRACE,
-  "template",  TEMPLATE,
-  "class",     CLASS,
-  "include",   INCLUDE,
-  "sync",      SYNC,
-  "iget",       IGET,
-  "exclusive", EXCLUSIVE,
-  "immediate",  IMMEDIATE,
-  "expedited",  SKIPSCHED,
-  "inline",    INLINE,
-  "local",      LOCAL,
-  "virtual",    VIRTUAL,
-  "mainchare", MAINCHARE,
-  "packed",     PACKED,
-  "varsize",    VARSIZE,
-  "entry",      ENTRY,
-  "int",        INT,
-  "short",      SHORT,
-  "long",       LONG,
-  "char",       CHAR,
-  "float",      FLOAT,
-  "double",     DOUBLE,
-  "unsigned",   UNSIGNED,
-  "void",      VOID,
-  "const",     CONST,
-  "atomic",    ATOMIC,
-  "forward",   FORWARD,
-  "when",      WHEN, 
-  "while",     WHILE,
-  "for",       FOR,
-  "forall",    FORALL, 
-  "if",        IF, 
-  "else",      ELSE,
-  "overlap",   OVERLAP,
-  "connect",    CONNECT,
-  "publishes",  PUBLISHES,
-  "python",     PYTHON,
-  "namespace",  NAMESPACE,
-  "using",      USING,
-  "accel",      ACCEL,
-  "readwrite",  READWRITE,
-  "writeonly",  WRITEONLY,
-  "accelblock", ACCELBLOCK,
-  "memcritical", MEMCRITICAL,
-  "reductiontarget", REDUCTIONTARGET,
-  "",          0
+{  "module",   MODULE },
+{  "mainmodule",       MAINMODULE },
+{  "chare",    CHARE },
+{  "group",    GROUP },
+{  "nodegroup",  NODEGROUP },
+{  "array",    ARRAY },
+{  "message",  MESSAGE },
+{  "conditional",CONDITIONAL },
+{  "extern",   EXTERN },
+{  "initcall", INITCALL },
+{  "initnode", INITNODE },
+{  "initproc", INITPROC },
+{  "readonly", READONLY },
+{  "stacksize",        STACKSIZE },
+{  "threaded", THREADED },
+{  "migratable",       MIGRATABLE },
+{  "PUPable",  PUPABLE },
+{  "pupable",  PUPABLE },
+{  "createhere",       CREATEHERE },
+{  "createhome",       CREATEHOME },
+{  "nokeep",   NOKEEP },
+{  "notrace",  NOTRACE },
+{  "template", TEMPLATE },
+{  "class",    CLASS },
+{  "include",  INCLUDE },
+{  "sync",     SYNC },
+{  "iget",       IGET },
+{  "exclusive",        EXCLUSIVE },
+{  "immediate",  IMMEDIATE },
+{  "expedited",  SKIPSCHED },
+{  "inline",   INLINE },
+{  "local",      LOCAL },
+{  "virtual",    VIRTUAL },
+{  "mainchare",        MAINCHARE },
+{  "packed",     PACKED },
+{  "varsize",    VARSIZE },
+{  "entry",      ENTRY },
+{  "int",        INT },
+{  "short",      SHORT },
+{  "long",       LONG },
+{  "char",       CHAR },
+{  "float",      FLOAT },
+{  "double",     DOUBLE },
+{  "unsigned",   UNSIGNED },
+{  "void",     VOID },
+{  "const",    CONST },
+{  "atomic",   ATOMIC },
+{  "forward",  FORWARD },
+{  "when",     WHEN },
+{  "while",    WHILE },
+{  "for",      FOR },
+{  "forall",   FORALL },
+{  "if",       IF },
+{  "else",     ELSE },
+{  "overlap",  OVERLAP },
+{  "connect",    CONNECT },
+{  "publishes",  PUBLISHES },
+{  "python",     PYTHON },
+{  "namespace",  NAMESPACE },
+{  "using",      USING },
+{  "accel",      ACCEL },
+{  "readwrite",  READWRITE },
+{  "writeonly",  WRITEONLY },
+{  "accelblock", ACCELBLOCK },
+{  "memcritical", MEMCRITICAL },
+{  "reductiontarget", REDUCTIONTARGET },
+{  "",         0 }
 };
 
 int search(char *s)
index ba8cd20f140a0447fc68e49c41dc3d681c41d18e..7fa04436864b8b5bbdcfc66f1b33ea561f349592 100644 (file)
@@ -79,73 +79,73 @@ struct rwtable {
 
 /* Reserved word table */
 struct rwtable rwtable[] = {
-  "module",    MODULE,
-  "mainmodule",        MAINMODULE,
-  "chare",     CHARE,
-  "group",     GROUP,
-  "nodegroup",  NODEGROUP,
-  "array",     ARRAY,
-  "message",   MESSAGE,
-  "conditional",CONDITIONAL,
-  "extern",    EXTERN,
-  "initcall",  INITCALL,
-  "initnode",  INITNODE,
-  "initproc",  INITPROC,
-  "readonly",  READONLY,
-  "stacksize", STACKSIZE,
-  "threaded",  THREADED,
-  "migratable",        MIGRATABLE,
-  "PUPable",   PUPABLE,
-  "pupable",   PUPABLE,
-  "createhere",        CREATEHERE,
-  "createhome",        CREATEHOME,
-  "nokeep",    NOKEEP,
-  "notrace",   NOTRACE,
-  "template",  TEMPLATE,
-  "class",     CLASS,
-  "include",   INCLUDE,
-  "sync",      SYNC,
-  "iget",       IGET,
-  "exclusive", EXCLUSIVE,
-  "immediate",  IMMEDIATE,
-  "expedited",  SKIPSCHED,
-  "inline",    INLINE,
-  "local",      LOCAL,
-  "virtual",    VIRTUAL,
-  "mainchare", MAINCHARE,
-  "packed",     PACKED,
-  "varsize",    VARSIZE,
-  "entry",      ENTRY,
-  "int",        INT,
-  "short",      SHORT,
-  "long",       LONG,
-  "char",       CHAR,
-  "float",      FLOAT,
-  "double",     DOUBLE,
-  "unsigned",   UNSIGNED,
-  "void",      VOID,
-  "const",     CONST,
-  "atomic",    ATOMIC,
-  "forward",   FORWARD,
-  "when",      WHEN, 
-  "while",     WHILE,
-  "for",       FOR,
-  "forall",    FORALL, 
-  "if",        IF, 
-  "else",      ELSE,
-  "overlap",   OVERLAP,
-  "connect",    CONNECT,
-  "publishes",  PUBLISHES,
-  "python",     PYTHON,
-  "namespace",  NAMESPACE,
-  "using",      USING,
-  "accel",      ACCEL,
-  "readwrite",  READWRITE,
-  "writeonly",  WRITEONLY,
-  "accelblock", ACCELBLOCK,
-  "memcritical", MEMCRITICAL,
-  "reductiontarget", REDUCTIONTARGET,
-  "",          0
+{  "module",   MODULE },
+{  "mainmodule",       MAINMODULE },
+{  "chare",    CHARE },
+{  "group",    GROUP },
+{  "nodegroup",  NODEGROUP },
+{  "array",    ARRAY },
+{  "message",  MESSAGE },
+{  "conditional",CONDITIONAL },
+{  "extern",   EXTERN },
+{  "initcall", INITCALL },
+{  "initnode", INITNODE },
+{  "initproc", INITPROC },
+{  "readonly", READONLY },
+{  "stacksize",        STACKSIZE },
+{  "threaded", THREADED },
+{  "migratable",       MIGRATABLE },
+{  "PUPable",  PUPABLE },
+{  "pupable",  PUPABLE },
+{  "createhere",       CREATEHERE },
+{  "createhome",       CREATEHOME },
+{  "nokeep",   NOKEEP },
+{  "notrace",  NOTRACE },
+{  "template", TEMPLATE },
+{  "class",    CLASS },
+{  "include",  INCLUDE },
+{  "sync",     SYNC },
+{  "iget",       IGET },
+{  "exclusive",        EXCLUSIVE },
+{  "immediate",  IMMEDIATE },
+{  "expedited",  SKIPSCHED },
+{  "inline",   INLINE },
+{  "local",      LOCAL },
+{  "virtual",    VIRTUAL },
+{  "mainchare",        MAINCHARE },
+{  "packed",     PACKED },
+{  "varsize",    VARSIZE },
+{  "entry",      ENTRY },
+{  "int",        INT },
+{  "short",      SHORT },
+{  "long",       LONG },
+{  "char",       CHAR },
+{  "float",      FLOAT },
+{  "double",     DOUBLE },
+{  "unsigned",   UNSIGNED },
+{  "void",     VOID },
+{  "const",    CONST },
+{  "atomic",   ATOMIC },
+{  "forward",  FORWARD },
+{  "when",     WHEN },
+{  "while",    WHILE },
+{  "for",      FOR },
+{  "forall",   FORALL },
+{  "if",       IF },
+{  "else",     ELSE },
+{  "overlap",  OVERLAP },
+{  "connect",    CONNECT },
+{  "publishes",  PUBLISHES },
+{  "python",     PYTHON },
+{  "namespace",  NAMESPACE },
+{  "using",      USING },
+{  "accel",      ACCEL },
+{  "readwrite",  READWRITE },
+{  "writeonly",  WRITEONLY },
+{  "accelblock", ACCELBLOCK },
+{  "memcritical", MEMCRITICAL },
+{  "reductiontarget", REDUCTIONTARGET },
+{  "",         0 }
 };
 
 int search(char *s)
index edde5b07c6da2acdcf789dc4690ab16c96d6ce2c..3758304f6b494413f9553396cfda90c436d04003 100644 (file)
@@ -126,9 +126,6 @@ public:
        }
 };
 
-static void (*nbp)(void*) = NULL;
-static void (*nbi)(int&) = NULL;
-
 template<typename T, typename U, typename A>
 void perElemGen(list<T*> &l, A& arg_, void (U::*fn_)(A&),
 // Sun Studio 7 (C++ compiler version 5.4) can't handle this
@@ -238,16 +235,19 @@ std::string TParamList::to_string()
 void
 Type::genProxyName(XStr &str,forWhom forElement)
 {
+  (void)str; (void)forElement;
   die("type::genProxyName called (INTERNAL ERROR)");
 }
 void
 Type::genIndexName(XStr &str)
 {
+  (void)str;
   die("type::genIndexName called (INTERNAL ERROR)");
 }
 void
 Type::genMsgProxyName(XStr &str)
 {
+  (void)str;
   die("type::genMsgProxyName called (INTERNAL ERROR)");
 }
 
@@ -795,6 +795,7 @@ char *Chare::proxyPrefix(void)
 //Common multiple inheritance disambiguation code
 void Chare::sharedDisambiguation(XStr &str,const XStr &super)
 {
+    (void)super;
     str<<"    void ckDelegate(CkDelegateMgr *dTo,CkDelegateData *dPtr=NULL) {\n";
     genProxyNames(str,"      ",NULL,"::ckDelegate(dTo,dPtr);\n","");
     str<<"    }\n";
@@ -887,11 +888,6 @@ Chare::genRegisterMethodDef(XStr& str)
   str << "#endif\n";
 }
 
-//extern void sdag_trans(XStr& classname, CParsedFile *input, XStr& output);
-
-
-
-
 void
 Chare::genPub(XStr& declstr, XStr& defstr, XStr& defconstr, int& connectPresent)
 {
@@ -904,10 +900,6 @@ Chare::genPub(XStr& declstr, XStr& defstr, XStr& defconstr, int& connectPresent)
   }
 }
 
-void
-Chare::genSubRegisterMethodDef(XStr& str) {
-}
-
 void
 Chare::genDecls(XStr& str)
 {
@@ -987,7 +979,6 @@ Chare::genDecls(XStr& str)
       classname << baseName(0);
       resetNumbers();
       myParsedFile->doProcess(classname, sdag_output);
-     // sdag_trans(classname, myParsedFile, sdag_output);
       str << sdag_output;
     }
   }
@@ -2233,11 +2224,6 @@ Template::genDefs(XStr& str)
     entity->genDefs(str);
 }
 
-void
-Template::genReg(XStr& str)
-{
-}
-
 int Template::genAccels_spe_c_funcBodies(XStr& str) {
   int rtn = 0;
   if (!external && entity) { rtn += entity->genAccels_spe_c_funcBodies(str); }
@@ -2932,7 +2918,7 @@ void ParamList::checkParamList(){
 }
 
 Entry::Entry(int l, int a, Type *r, const char *n, ParamList *p, Value *sz, SdagConstruct *sc, const char *e, int connect, ParamList *connectPList) :
-      attribs(a), retType(r), name((char *)n), param(p), stacksize(sz), sdagCon(sc), intExpr(e), isConnect(connect), connectParam(connectPList)
+      attribs(a), retType(r), stacksize(sz), sdagCon(sc), name((char *)n), intExpr(e), param(p), connectParam(connectPList), isConnect(connect)
 {
   line=l; container=NULL;
   entryCount=-1;
@@ -3283,7 +3269,7 @@ void Entry::genArrayStaticConstructorDecl(XStr& str)
         }
       }
   }
-  else if (container->getForWhom()==forSection);
+  else if (container->getForWhom()==forSection) { }
 }
 
 void Entry::genArrayStaticConstructorDefs(XStr& str)
@@ -4590,8 +4576,6 @@ void Entry::genDefs(XStr& str)
   }
 
   if (!isConstructor() && fortranMode) { // Fortran90
-      const char* msg_name = param->getBaseName();
-
       str << "/* FORTRAN SECTION */\n";
 
       XStr dim; dim << ((Array*)container)->dim();
@@ -5186,7 +5170,7 @@ void Parameter::pupAllValues(XStr &str) {
          else str<<"  implDestP|"<<name<<";\n";
        }
 }
-void ParamList::endUnmarshall(XStr &str)
+void ParamList::endUnmarshall(XStr &)
 {
        /* Marshalled entry points now have the "SNOKEEP" attribute...
        if (isMarshalled()) {
@@ -5208,10 +5192,6 @@ void InitCall::print(XStr& str)
 {
        str<<"  initcall void "<<name<<"(void);\n";
 }
-void InitCall::genPub(XStr& declstr, XStr& defstr, XStr& defconstr, int& connectPresent) {}
-void InitCall::genDecls(XStr& str) {}
-void InitCall::genIndexDecls(XStr& str) {}
-void InitCall::genDefs(XStr& str) {}
 void InitCall::genReg(XStr& str)
 {
        str<<"      _registerInitCall(";
@@ -5239,9 +5219,6 @@ void PUPableClass::print(XStr& str)
        str << "  PUPable " << type <<";\n";
        if (next) next->print(str);
 }
-void PUPableClass::genPub(XStr& declstr, XStr& defstr, XStr& defconstr, int& connectPresent) {}
-void PUPableClass::genDecls(XStr& str) {}
-void PUPableClass::genIndexDecls(XStr& str) {}
 void PUPableClass::genDefs(XStr& str)
 {
         if (type->isTemplated()) {
@@ -5278,13 +5255,9 @@ void IncludeFile::print(XStr& str)
 {
        str<<"  include "<<name<<";\n";
 }
-void IncludeFile::genPub(XStr& declstr, XStr& defstr, XStr& defconstr, int& connectPresent) {}
 void IncludeFile::genDecls(XStr& str) {
        str<<"#include "<<name<<"\n";
 }
-void IncludeFile::genIndexDecls(XStr& str) {}
-void IncludeFile::genDefs(XStr& str) {}
-void IncludeFile::genReg(XStr& str) {}
 
 
 /***************** normal extern C Class support **************/
@@ -5297,13 +5270,9 @@ void ClassDeclaration::print(XStr& str)
 {
        str<<"  class "<<name<<";\n";
 }
-void ClassDeclaration::genPub(XStr& declstr, XStr& defstr, XStr& defconstr, int& connectPresent) {}
 void ClassDeclaration::genDecls(XStr& str) {
        str<<"class "<<name<<";\n";
 }
-void ClassDeclaration::genIndexDecls(XStr& str) {}
-void ClassDeclaration::genDefs(XStr& str) {}
-void ClassDeclaration::genReg(XStr& str) {}
 
 
 /****************** Registration *****************/
index e43d59c15b36f34bd43aa1148c5d53398e5f99fb..20e9478e17abd2f60f36959a1e44a7b76655b55e 100644 (file)
@@ -86,19 +86,22 @@ class Construct : public Printable {
     Construct() {external=0;line=-1;}
     void setExtern(int &e) { external = e; }
     void setModule(Module *m) { containerModule = m; }
-    virtual void genPub(XStr& declstr, XStr& defstr, XStr& defconstr, int& connectPresent) = 0;
-    virtual void genDecls(XStr& str) = 0;
-    virtual void genDefs(XStr& str) = 0;
-    virtual void genReg(XStr& str) = 0;
+    virtual void genPub(XStr& declstr, XStr& defstr, XStr& defconstr, int& connectPresent)
+    {
+      (void)declstr; (void)defstr; (void)defconstr; (void)connectPresent;
+    }
+    virtual void genDecls(XStr& str) { (void)str; }
+    virtual void genDefs(XStr& str) { (void)str; }
+    virtual void genReg(XStr& str) { (void)str; }
     virtual void preprocess() { }
 
     // DMK - Accel Support
-    virtual int genAccels_spe_c_funcBodies(XStr& str) = 0;
-    virtual void genAccels_spe_c_regFuncs(XStr& str) = 0;
-    virtual void genAccels_spe_c_callInits(XStr& str) = 0;
-    virtual void genAccels_spe_h_includes(XStr& str) = 0;
-    virtual void genAccels_spe_h_fiCountDefs(XStr& str) = 0;
-    virtual void genAccels_ppe_c_regFuncs(XStr& str) = 0;
+    virtual int genAccels_spe_c_funcBodies(XStr& str) { (void)str; return 0; }
+    virtual void genAccels_spe_c_regFuncs(XStr& str) { (void)str; }
+    virtual void genAccels_spe_c_callInits(XStr& str) { (void)str; }
+    virtual void genAccels_spe_h_includes(XStr& str) { (void)str; }
+    virtual void genAccels_spe_h_fiCountDefs(XStr& str) { (void)str; }
+    virtual void genAccels_ppe_c_regFuncs(XStr& str) { (void)str; }
 };
 
 class ConstructList : public Construct {
@@ -177,7 +180,7 @@ class NamedType : public Type {
     TParamList *tparams;
   public:
     NamedType(const char* n, TParamList* t=0, const char* scope_=NULL)
-       : name(n), tparams(t), scope(scope_) {}
+       : name(n), scope(scope_), tparams(t) {}
     int isTemplated(void) const { return (tparams!=0); }
     int isCkArgMsg(void) const {return 0==strcmp(name,"CkArgMsg");}
     int isCkMigMsg(void) const {return 0==strcmp(name,"CkMigrateMessage");}
@@ -317,7 +320,7 @@ class ParamList {
   public:
     Parameter *param;
     ParamList *next;
-    ParamList(ParamList *pl) :param(pl->param), next(pl->next), manyPointers(false) {}
+    ParamList(ParamList *pl) : manyPointers(false), param(pl->param), next(pl->next) {}
     ParamList(Parameter *Nparam,ParamList *Nnext=NULL)
        :param(Nparam), next(Nnext) { 
           manyPointers = false;
@@ -445,7 +448,7 @@ class Scope : public Construct {
     const char* name_;
     ConstructList* contents_;
   public:
-    Scope(const char* name, ConstructList* contents) : contents_(contents), name_(name) {}
+    Scope(const char* name, ConstructList* contents) : name_(name), contents_(contents) {}
     virtual void genPub(XStr& declstr, XStr& defstr, XStr& defconstr, int& connectPresent) {
         contents_->genPub(declstr, defstr, defconstr, connectPresent);
     }
@@ -499,28 +502,16 @@ class UsingScope : public Construct {
     bool symbol_;
   public:
     UsingScope(const char* name, bool symbol=false) : name_(name), symbol_(symbol) {}
-    virtual void genPub(XStr& declstr, XStr& defstr, XStr& defconstr, int& connectPresent) {}
     virtual void genDecls(XStr& str) {
         str << "using ";
         if (!symbol_) str << "namespace ";
         str << name_ << ";\n";
     }
-    virtual void genDefs(XStr& str) {}
-    virtual void genReg(XStr& str) {}
-    virtual void preprocess() {}
     virtual void print(XStr& str) {
         str << "using ";
         if (!symbol_) str << "namespace ";
         str << name_ << ";\n";
     }
-
-    // DMK - Accel Support
-    virtual int genAccels_spe_c_funcBodies(XStr& str) { return 0; }
-    virtual void genAccels_spe_c_regFuncs(XStr& str) { }
-    virtual void genAccels_spe_c_callInits(XStr& str) { }
-    virtual void genAccels_spe_h_includes(XStr& str) { }
-    virtual void genAccels_spe_h_fiCountDefs(XStr& str) { }
-    virtual void genAccels_ppe_c_regFuncs(XStr& str) { }
 };
 
 
@@ -538,7 +529,6 @@ class Template : public Construct {
     void genPub(XStr& declstr, XStr& defstr, XStr& defconstr, int& connectPresent);
     void genDecls(XStr& str);
     void genDefs(XStr& str);
-    void genReg(XStr& str);
     void genSpec(XStr& str);
     void genVars(XStr& str);
 
@@ -630,14 +620,14 @@ class Member : public Construct {
   public:
     virtual void setChare(Chare *c) { container = c; }
     virtual int isSdag(void) { return 0; }
-    virtual void collectSdagCode(CParsedFile *pf, int& sdagPresent) { return; }
+    virtual void collectSdagCode(CParsedFile *, int&) { return; }
     XStr makeDecl(const XStr &returnType,int forProxy=0);
-    virtual void genPythonDecls(XStr& str) {}
-    virtual void genIndexDecls(XStr& str)=0;
-    virtual void genPythonDefs(XStr& str) {}
-    virtual void genPythonStaticDefs(XStr& str) {}
-    virtual void genPythonStaticDocs(XStr& str) {}
-    virtual void lookforCEntry(CEntry *centry)  {}
+    virtual void genPythonDecls(XStr& ) {}
+    virtual void genIndexDecls(XStr& ) {}
+    virtual void genPythonDefs(XStr& ) {}
+    virtual void genPythonStaticDefs(XStr&) {}
+    virtual void genPythonStaticDocs(XStr&) {}
+    virtual void lookforCEntry(CEntry *)  {}
 };
 
 /* List of members of a chare or group */
@@ -766,7 +756,7 @@ class Chare : public TEntity {
     void genPythonDefs(XStr& str);
     virtual char *chareTypeName(void) {return (char *)"chare";}
     virtual char *proxyPrefix(void);
-    virtual void genSubRegisterMethodDef(XStr& str);
+    virtual void genSubRegisterMethodDef(XStr& str) { (void)str; }
     void lookforCEntry(CEntry *centry);
 };
 
@@ -854,19 +844,10 @@ class Message : public TEntity {
       : type(t), mvlist(mv) 
       { line=l; setTemplate(0); }
     void print(XStr& str);
-    void genPub(XStr& declstr, XStr& defstr, XStr& defconstr, int& connectPresent) {}
     void genDecls(XStr& str);
     void genDefs(XStr& str);
     void genReg(XStr& str);
 
-    // DMK - Accel Support
-    int genAccels_spe_c_funcBodies(XStr& str) { return 0; }
-    void genAccels_spe_c_regFuncs(XStr& str) { }
-    void genAccels_spe_c_callInits(XStr& str) { }
-    void genAccels_spe_h_includes(XStr& str) { }
-    void genAccels_spe_h_fiCountDefs(XStr& str) { }
-    void genAccels_ppe_c_regFuncs(XStr& str) { }
-
     virtual const char *proxyPrefix(void) {return Prefix::Message;}
     void genAllocDecl(XStr& str);
     int numArrays(void) {
@@ -962,9 +943,6 @@ class Entry : public Member {
     void genAccelIndexWrapperDef_spe(XStr& str);
     int genAccels_spe_c_funcBodies(XStr& str);
     void genAccels_spe_c_regFuncs(XStr& str);
-    void genAccels_spe_c_callInits(XStr& str) { }
-    void genAccels_spe_h_includes(XStr& str) { }
-    void genAccels_spe_h_fiCountDefs(XStr& str) { }
     void genAccels_ppe_c_regFuncs(XStr& str);
 
     XStr paramType(int withDefaultVals,int withEO=0,int useConst=1);
@@ -1081,22 +1059,13 @@ class AccelBlock : public Construct {
   ~AccelBlock() { delete code; }
 
   /// Printable Methods ///
-  void print(XStr& str) { }
+  void print(XStr& str) { (void)str; }
 
   /// Construct Methods ///
-  void genPub(XStr& declstr, XStr& defstr, XStr& defconstr, int& connectPresent) { }
-  void genDecls(XStr& str) { }
   void genDefs(XStr& str) { outputCode(str); }
-  void genReg(XStr& str) { }
-  void preprocess() { }
 
   /// Construct Accel Support Methods ///
   int genAccels_spe_c_funcBodies(XStr& str) { outputCode(str); return 0; }
-  void genAccels_spe_c_regFuncs(XStr& str) { }
-  void genAccels_spe_c_callInits(XStr& str) { }
-  void genAccels_spe_h_includes(XStr& str) { }
-  void genAccels_spe_h_fiCountDefs(XStr& str) { }
-  void genAccels_ppe_c_regFuncs(XStr& str) { }
 };
 
 
@@ -1167,19 +1136,10 @@ class Readonly : public Member {
            : msg(m), type(t), name(n)
             { line=l; dims=d; setChare(0); }
     void print(XStr& str);
-    void genPub(XStr& declstr, XStr& defstr, XStr& defconstr, int& connectPresent) {}
     void genDecls(XStr& str);
     void genIndexDecls(XStr& str);
     void genDefs(XStr& str);
     void genReg(XStr& str);
-
-    // DMK - Accel Support
-    int genAccels_spe_c_funcBodies(XStr& str) { return 0; }
-    void genAccels_spe_c_regFuncs(XStr& str) { }
-    void genAccels_spe_c_callInits(XStr& str) { }
-    void genAccels_spe_h_includes(XStr& str) { }
-    void genAccels_spe_h_fiCountDefs(XStr& str) { }
-    void genAccels_ppe_c_regFuncs(XStr& str) { }
 };
 
 class InitCall : public Member {
@@ -1194,19 +1154,10 @@ public:
 
     InitCall(int l, const char *n, int nodeCall);
     void print(XStr& str);
-    void genPub(XStr& declstr, XStr& defstr, XStr& defconstr, int& connectPresent);
-    void genDecls(XStr& str);
-    void genIndexDecls(XStr& str);
-    void genDefs(XStr& str);
     void genReg(XStr& str);
 
     // DMK - Accel Support
-    int genAccels_spe_c_funcBodies(XStr& str) { return 0; }
-    void genAccels_spe_c_regFuncs(XStr& str) { }
     void genAccels_spe_c_callInits(XStr& str);
-    void genAccels_spe_h_includes(XStr& str) { }
-    void genAccels_spe_h_fiCountDefs(XStr& str) { }
-    void genAccels_ppe_c_regFuncs(XStr& str) { }
 
     void setAccel() { isAccelFlag = 1; }
     void clearAccel() { isAccelFlag = 0; }
@@ -1219,9 +1170,6 @@ class PUPableClass : public Member {
 public:
     PUPableClass(int l, NamedType* type_, PUPableClass *next_);
     void print(XStr& str);
-    void genPub(XStr& declstr, XStr& defstr, XStr& defconstr, int& connectPresent);
-    void genDecls(XStr& str);
-    void genIndexDecls(XStr& str);
     void genDefs(XStr& str);
     void genReg(XStr& str);
 
@@ -1253,19 +1201,7 @@ class IncludeFile : public Member {
 public:
     IncludeFile(int l, const char *name_);
     void print(XStr& str);
-    void genPub(XStr& declstr, XStr& defstr, XStr& defconstr, int& connectPresent);
     void genDecls(XStr& str);
-    void genIndexDecls(XStr& str);
-    void genDefs(XStr& str);
-    void genReg(XStr& str);
-
-    // DMK - Accel Support
-    int genAccels_spe_c_funcBodies(XStr& str) { return 0; }
-    void genAccels_spe_c_regFuncs(XStr& str) { }
-    void genAccels_spe_c_callInits(XStr& str) { }
-    void genAccels_spe_h_includes(XStr& str) { }
-    void genAccels_spe_h_fiCountDefs(XStr& str) { }
-    void genAccels_ppe_c_regFuncs(XStr& str) { }
 };
 
 class ClassDeclaration : public Member {
@@ -1273,19 +1209,7 @@ class ClassDeclaration : public Member {
 public:
     ClassDeclaration(int l, const char *name_);
     void print(XStr& str);
-    void genPub(XStr& declstr, XStr& defstr, XStr& defconstr, int& connectPresent);
     void genDecls(XStr& str);
-    void genIndexDecls(XStr& str);
-    void genDefs(XStr& str);
-    void genReg(XStr& str);
-
-    // DMK - Accel Support
-    int genAccels_spe_c_funcBodies(XStr& str) { return 0; }
-    void genAccels_spe_c_regFuncs(XStr& str) { }
-    void genAccels_spe_c_callInits(XStr& str) { }
-    void genAccels_spe_h_includes(XStr& str) { }
-    void genAccels_spe_h_fiCountDefs(XStr& str) { }
-    void genAccels_ppe_c_regFuncs(XStr& str) { }
 };
 
 
@@ -1338,7 +1262,7 @@ public:
   SdagConstruct(EToken t, XStr *txt, SdagConstruct *c1, SdagConstruct *c2, SdagConstruct *c3,
               SdagConstruct *c4, SdagConstruct *constructAppend, EntryList *el);
 
 SdagConstruct(EToken t, const char *str) : type(t), con1(0), con2(0), con3(0), con4(0)
SdagConstruct(EToken t, const char *str) : type(t), traceName(NULL), con1(0), con2(0), con3(0), con4(0)
                { text = new XStr(str); constructs = new TList<SdagConstruct*>(); 
                   publishesList = new TList<SdagConstruct*>(); }
                                              
index 2f31984ca1219c5d4e2b044624f9c5f72310b765..da1d13d8b97b6b83d7ec6ea0a62c653df22781d2 100644 (file)
@@ -1,10 +1,3 @@
-/*****************************************************************************
- * $Source$
- * $Author$
- * $Date$
- * $Revision$
- *****************************************************************************/
-
 #include "xi-util.h"
 
 namespace xi {
@@ -59,7 +52,7 @@ XStr& XStr::operator << (int i) {
 void XStr::line_append(const char c)
 {
   XStr xs;
-  for(int i=0; i<len; i++) {
+  for(unsigned int i=0; i<len; i++) {
     if(s[i] == '\n')
       xs << c << "\n";
     else
@@ -74,7 +67,7 @@ void XStr::line_append_padding(const char c, int lineWidth)
   XStr xs;
   int count = 0;
 
-  for(int i=0; i<len; i++) {
+  for(unsigned int i=0; i<len; i++) {
     if(s[i] == '\n'){
       // found line ending
       while(count++ < lineWidth-1)
@@ -122,7 +115,7 @@ XStr::spew(const char*b, const char *a1, const char *a2, const char *a3,
 }
 
 void XStr::replace (const char a, const char b) {
-  for(int i=0; i<len; i++) {
+  for(unsigned int i=0; i<len; i++) {
     if (s[i] == a) s[i] = b;
   }
 }