X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=Robust%2Fsrc%2Fbuildscript;h=a1b162f8de158062e547835a8a08023e60ea1a90;hb=5a7bd37de30d8a85d276fe80834ed021d32d6075;hp=d66b5678b230418f484bf2d778e1cd6992b3c100;hpb=e836b66d46d4b365320e89a8f8b67ac43a262814;p=IRC.git diff --git a/Robust/src/buildscript b/Robust/src/buildscript index d66b5678..a1b162f8 100755 --- a/Robust/src/buildscript +++ b/Robust/src/buildscript @@ -16,6 +16,37 @@ echo "-hybrid use fission only when it looks like a good choice" echo "-numa numa aware" echo "-eventmonitor turn on transaction event trace recording" echo +echo OOOJava options +echo -coreprof, turn on profiling API +echo -coreprof-eventwords NUM, space in words/thread for coreprof events +echo -coreprof-checkoverflow, ONLY use for debugging event overflow +echo -coreprof-enable EVENTNAME, only enable desired events to reduce overhead +echo EVENTNAME can be: cpe_main, cpe_runmalloc, cpe_runfree, cpe_poolalloc, cpe_count_poolalloc, cpe_count_poolreuse, cpe_workschedgrab, cpe_taskdispatch, cpe_preparememq, cpe_taskexecute, cpe_taskretire, cpe_taskstallvar, cpe_taskstallmem +echo "-ooojava " +echo -ooodebug general OOOJava debugging messages +echo -ooodebug-disable-task-mem-pool this is a tricky module, disable for simpler runtime +echo -rcr turn on runtime conflict resolver +echo +echo Disjoint Reachability Analysis options +echo -disjoint enable analysis +echo -disjoint-k set k-limit for heap nodes per allocation site +echo "-disjoint-write-dots write reach graphs for all method sols. or only final sols." +echo -disjoint-write-initial-contexts write reach graphs for callee initial contexts from all call sites +echo -disjoint-write-ihms write reach graphs for each call site\'s Initial Heap Model +echo "-disjoint-alias-file write sharing for normal human reading or LaTeX tabbed" +echo "-disjoint-debug-callsite " +echo " To debug call site, give callee caller symbols (ie foo) the analysis visit to start capturing, num captures to take, and whether to halt analysis after capturing" +echo "-disjoint-debug-snap-method " +echo " To take snapshots at statements, give method symbol, the analysis visit to start capturing, num captures to take, and whether to halt analsyis after capturing" +echo "-disjoint-dvisit-stack use stack strat to visit descriptors (tasks or methods)" +echo -disjoint-dvisit-stack-callees-on-top alternate stack strat +echo -disjoint-dvisit-pqueue use prio. q strat to visit descriptors +echo -disjoint-desire-determinism set above interproc for determinism +echo -disjoint-debug-scheduling debug when methods are scheduled for analysis +echo +echo "-mlp build mlp code" +echo -mlpdebug if mlp, report progress and interim results +echo echo DSM options echo -dsm distributed shared memory echo -abortreaders abort readers immediately @@ -24,6 +55,9 @@ echo -dsmcaching -enable caching in dsm runtime echo echo BAMBOO Multicore options echo -scheduling do task scheduling +echo "-distributioninfo execute to collect distribution info for simulated annealing in multi-core version" +echo "-disall execute to collect whole distribution" +echo "-disstart specify the start number of distribution information collection" echo -multicore generate multi-core version binary echo "-numcore set the number of cores (should be used together with -multicore), defaultly set as 1" echo "-cacheflush enable cache flush in raw version binary (should be used togethere with -raw)" @@ -32,20 +66,36 @@ echo "-rawpath print out execute path information for raw version (should be use echo "-useprofile use profiling data for scheduling (should be used together with -raw)" echo -printscheduling print out scheduling graphs echo -printschedulesim print out scheduling simulator result graphs -echo -abcclose close the array boundary check echo "-tilera_bme generate tilera version binary for Bare Mental Environment (should be used together with -multicore" -echo "-tilera_zlinux generate tilera version binary for Zero-Overhead Linux (should be used together with -multicore" +echo "-tilera_zlinux generate tilera version binary for Zero-Overhead Linux with multi-process mode (should be used together with -multicore" echo "-tileraconfig config tilera simulator/pci as nxm (should be used together with -tilera)" echo "-raw generate raw version binary (should be used together with -multicore)" echo "-rawconfig config raw simulator as 4xn (should be used together with -raw)" -echo -threadsimulate generate multi-thread simulate version binary +echo "-tilera_memprof build the memprof version (should be used together with -tilera_xx) " +echo -accurateprofile build with accurate profile information including pre/post task processing info +echo -profile_interrupt build with profile information of interrupts +echo "-useio use standard io to output profiling data (should be used together with -raw and -profile), it only works with single core version" +echo +echo Multicore GC options echo -multicoregc generate multi-core binary with garbage collection echo "-numcore4gc set the number of cores for gc (should be used together with -multicoregc), defaultly set as 0" +echo "-gcmem_local set the gc shared memory allocation strategy as local (should be used together with -multicoregc)" +echo "-gcmem_fixed set the gc shared memory allocation strategy as fixed (should be used together with -multicoregc)" +echo "-gcmem_mixed set the gc shared memory allocation strategy as mixed (should be used together with -multicoregc)" +echo "-gcmem_global set the gc shared memory allocation strategy as global (should be used together with -multicoregc)" +echo "-gccache_local set the gc shared memory cache strategy as local (should be used together with -multicoregc)" +echo "-gccache_ran set the gc shared memory cache strategy as random (should be used together with -multicoregc)" +echo "-gccontroller_near set the gc shared memory to use the nearest controller for each core (should be used together with -multicoregc)" +echo "-gccontroller_remote set the gc shared memory to use a remote controller for each core (should be used together with -multicoregc)" +echo "-gcsmallpagesize(2) set the gc shared memory to use small page size (should be used together with -multicoregc)" +echo "-gclargepagesize set the gc shared memory to use large page size (should be used together with -multicoregc)" +echo "-gclargesharedheap(2) set the gc shared memory as large (should be used together with -multicoregc)" +echo "-gccacheadapt setup as cacheadaptable mode (should be used together with -multicoregc)" echo -gcprofile build with gcprofile options -echo -accurateprofile build with accurate profile information including pre/post task processing info -echo "-useio use standard io to output profiling data (should be used together with -raw and -profile), it only works with single core version" +echo -mgc generate Multicore GC binary without task stuff echo echo Other options +echo -abcclose turnoff array boundary checks echo -builddir setup different build directory echo -robustroot set up the ROBUSTROOT to directory other than default one echo -readset turn on readset @@ -55,6 +105,7 @@ echo -dmalloc link in dmalloc echo -64bit compile for 64 bit machine echo -32bit compile for 32 bit machine echo -joptimize java compiler optimizations +echo -noloop turnoff loop optimizations echo -recover compile task code echo -fastcheck fast checkpointing for Bristlecone echo -specdir directory @@ -66,6 +117,7 @@ echo -tagstate do tag state analysis echo -optional enable optional echo -debug generate debug symbols echo -prefetch do prefetch analysis +echo -heapsize-mb NUM set initial heap size in MB, default is 256 echo -garbagestats Print garbage collection statistics echo -webinterface enable web interface echo -runtimedebug printout runtime debug messages @@ -80,17 +132,17 @@ echo -instructionfailures inject code for instructionfailures echo -profile build with profile options echo "-enable-assertions execute assert statements during compilation" echo -justanalyze exit after compiler analyses complete -echo "-distributioninfo execute to collect distribution info for simulated annealing in multi-core version" -echo "-disall execute to collect whole distribution" -echo "-disstart specify the start number of distribution information collection" echo -assembly generate assembly echo -recovery compile recovery code echo -dsmtask support work and task class library echo -recoverystats print out recovery record +echo -src-after-pp prints source code after preprocessor to tmp.c echo -help help } tmpbuilddirectory="tmpbuilddirectory" +SRCAFTERPP=false; +COREPROF=false; NUMA=false; SANDBOX=false; ABORTREADERS=false; @@ -111,12 +163,14 @@ NOJAVA=false CHECKFLAG=false RECOVERFLAG=false MLP_ON=false +RCR=false MLPDEBUG=false MULTICOREFLAG=false RAWFLAG=false TILERAFLAG=false TILERABMEFLAG=false TILERAZLINUXFLAG=false +TILERAMEMPROFFLAG=false TILERACONFIG='' CACHEFLUSHFLAG=false RAWCONFIG='' @@ -124,11 +178,32 @@ DEBUGFLAG=false RAWPATHFLAG=false PROFILEFLAG=false GCPROFILEFLAG=false +GCPROFILESFLAG=false ACCURATEPROFILEFLAG=false +PROFILEINTERRUPTFLAG=false USEIOFLAG=false INTERRUPTFLAG=false THREADSIMULATEFLAG=false; MULTICOREGCFLAG=false; +GCMEMLOCALFLAG=false; +GCMEMFIXEDFLAG=false; +GCMEMMIXEDFLAG=false; +GCMEMGLOBALFLAG=false; +GCCACHELOCALFLAG=false; +GCCACHERANFLAG=false; +GCCONTROLLERNEARFLAG=false; +GCCONTROLLERREMOTEFLAG=false; +GCSMALLPAGESIZEFLAG=false; +GCLARGEPAGESIZEFLAG=false; +GCLARGEPAGESIZE2FLAG=false; +GCLARGESHAREDHEAPFLAG=false; +GCSMALLPAGESIZEFLAG2=false; +GCLARGESHAREDHEAPFLAG2=false; +GCCACHEADAPTFLAG=false +GCCACHEADAPTPOLICYFLAG=false +GCCACHEADAPTPOLICY='' +GCCACHESAMPLINGFLAG=false +MGCFLAG=false USEDMALLOC=false THREADFLAG=false FASTCHECK=false @@ -142,6 +217,8 @@ OPTIONALFLAG=false EXITAFTERANALYSIS=false ASSEMBLY=false GCCORES='' +TILERAN1COREFLAG=false +TILERA56COREFLAG=false if [[ -z $1 ]] then @@ -155,9 +232,15 @@ if [[ $1 = '-help' ]] then printhelp exit + elif [[ $1 = '-justanalyze' ]] then EXITAFTERANALYSIS=true + +elif [[ $1 = '-src-after-pp' ]] +then +SRCAFTERPP=true + elif [[ $1 = '-assembly' ]] then ASSEMBLY=true @@ -287,9 +370,15 @@ EXTRAOPTIONS="$EXTRAOPTIONS -pg" elif [[ $1 = '-gcprofile' ]] then GCPROFILEFLAG=true +elif [[ $1 = '-gcprofile_s' ]] +then +GCPROFILESFLAG=true elif [[ $1 = '-accurateprofile' ]] then ACCURATEPROFILEFLAG=true +elif [[ $1 = '-profile_interrupt' ]] +then +PROFILEINTERRUPTFLAG=true elif [[ $1 = '-useio' ]] then USEIOFLAG=true @@ -309,6 +398,14 @@ JAVAOPTS="$JAVAOPTS -multicore" elif [[ $1 = '-numcore' ]] then JAVAOPTS="$JAVAOPTS -numcore $2" +if [[ "$2" -gt "1" ]] +then +TILERAN1COREFLAG=true +if [[ "$2" -eq "56" ]] +then +TILERA56COREFLAG=true +fi +fi shift elif [[ $1 = '-numcore4gc' ]] then @@ -327,6 +424,9 @@ elif [[ $1 = '-tilera_zlinux' ]] then TILERAFLAG=true TILERAZLINUXFLAG=true +elif [[ $1 = '-tilera_memprof' ]] +then +TILERAMEMPROFFLAG=true elif [[ $1 = '-tileraconfig' ]] then TILERACONFIG="$2" @@ -341,9 +441,6 @@ shift elif [[ $1 = '-interrupt' ]] then INTERRUPTFLAG=true -elif [[ $1 = '-threadsimulate' ]] -then -THREADSIMULATEFLAG=true elif [[ $1 = '-abcclose' ]] then JAVAOPTS="$JAVAOPTS -abcclose" @@ -355,6 +452,63 @@ elif [[ $1 = '-multicoregc' ]] then MULTICOREGCFLAG=true JAVAOPTS="$JAVAOPTS -multicoregc" +elif [[ $1 = '-gcmem_local' ]] +then +GCMEMLOCALFLAG=true +elif [[ $1 = '-gcmem_fixed' ]] +then +GCMEMFIXEDFLAG=true +elif [[ $1 = '-gcmem_mixed' ]] +then +GCMEMMIXEDFLAG=true +elif [[ $1 = '-gcmem_global' ]] +then +GCMEMGLOBALFLAG=true +elif [[ $1 = '-gccache_local' ]] +then +GCCACHELOCALFLAG=true +elif [[ $1 = '-gccache_ran' ]] +then +GCCACHERANFLAG=true +elif [[ $1 = '-gccontroller_near' ]] +then +GCCONTROLLERNEARFLAG=true +elif [[ $1 = '-gccontroller_remote' ]] +then +GCCONTROLLERREMOTEFLAG=true +elif [[ $1 = '-gcsmallpagesize' ]] +then +GCSMALLPAGESIZEFLAG=true +elif [[ $1 = '-gcsmallpagesize2' ]] +then +GCSMALLPAGESIZEFLAG2=true +elif [[ $1 = '-gclargepagesize' ]] +then +GCLARGEPAGESIZEFLAG=true +elif [[ $1 = '-gclargepagesize2' ]] +then +GCLARGEPAGESIZE2FLAG=true +elif [[ $1 = '-gclargesharedheap' ]] +then +GCLARGESHAREDHEAPFLAG=true +elif [[ $1 = '-gclargesharedheap2' ]] +then +GCLARGESHAREDHEAPFLAG2=true +elif [[ $1 = '-gccacheadapt' ]] +then +GCCACHEADAPTFLAG=true +elif [[ $1 = '-gccacheadaptpolicy' ]] +then +GCCACHEADAPTPOLICYFLAG=true +GCCACHEADAPTPOLICY="$2" +shift +elif [[ $1 = '-gccachesampling' ]] +then +GCCACHESAMPLINGFLAG=true +elif [[ $1 = '-mgc' ]] +then +MGCFLAG=true +JAVAOPTS="$JAVAOPTS -mgc" elif [[ $1 = '-dmalloc' ]] then USEDMALLOC=true @@ -375,6 +529,9 @@ JAVAOPTS="$JAVAOPTS -instructionfailures" elif [[ $1 = '-joptimize' ]] then JAVAOPTS="$JAVAOPTS -optimize" +elif [[ $1 = '-noloop' ]] +then +JAVAOPTS="$JAVAOPTS -noloop" elif [[ $1 = '-dcopts' ]] then JAVAOPTS="$JAVAOPTS -dcopts" @@ -390,6 +547,50 @@ elif [[ $1 = '-minimize' ]] then JAVAOPTS="$JAVAOPTS -minimize" +elif [[ $1 = '-ooojava' ]] +then +MLP_ON=true +JAVAOPTS="$JAVAOPTS -ooojava $2 $3" +EXTRAOPTIONS="$EXTRAOPTIONS -DPRECISE_GC -lpthread -DMLP" +shift +shift + +elif [[ $1 = '-ooodebug-disable-task-mem-pool' ]] +then +EXTRAOPTIONS="$EXTRAOPTIONS -DOOO_DISABLE_TASKMEMPOOL" + +elif [[ $1 = '-heapsize-mb' ]] +then +EXTRAOPTIONS="$EXTRAOPTIONS -DINITIALHEAPSIZE_MB=($2)" +shift + +elif [[ $1 = '-rcr' ]] +then +JAVAOPTS="$JAVAOPTS -rcr" +RCR=true +EXTRAOPTIONS="$EXTRAOPTIONS -DRCR -I$ROBUSTROOT/Runtime/oooJava" + + +elif [[ $1 = '-coreprof' ]] +then +COREPROF=true +JAVAOPTS="$JAVAOPTS -coreprof" +EXTRAOPTIONS="$EXTRAOPTIONS -DCOREPROF -I$ROBUSTROOT/Runtime/coreprof" + +elif [[ $1 = '-coreprof-eventwords' ]] +then +EXTRAOPTIONS="$EXTRAOPTIONS -DCP_MAXEVENTWORDS=($2)" +shift + +elif [[ $1 = '-coreprof-checkoverflow' ]] +then +EXTRAOPTIONS="$EXTRAOPTIONS -DCOREPROF_CHECKOVERFLOW" + +elif [[ $1 = '-coreprof-enable' ]] +then +EXTRAOPTIONS="$EXTRAOPTIONS -D$2" +shift + elif [[ $1 = '-mlp' ]] then MLP_ON=true @@ -479,6 +680,8 @@ done BUILDDIR="$CURDIR/$tmpbuilddirectory" +BAMBOORUNTIME=$ROBUSTROOT/Runtime/bamboo + cd $1 cd $CURDIR shift @@ -514,6 +717,10 @@ elif $THREADFLAG then #threading java stuff JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/JavaThread" +elif $MGCFLAG +then +#base multicore gc files +JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/MGC" fi #base java stuff JAVAOPTS="$JAVAOPTS -classlibrary $ROBUSTROOT/ClassLibrary/Java" @@ -637,15 +844,20 @@ else MAKEFILE="$MAKEFILE.$RAWCONFIG" fi #useio version -cp $ROBUSTROOT/Runtime/RAW/$MAKEFILE ./Makefile +cp $BAMBOORUNTIME/RAW/$MAKEFILE ./Makefile cp ../Runtime/*.c ./ cp ../Runtime/*.h ./ cp ../Runtime/*.S ./ cp ../Runtime/*.s ./ -cp ../Runtime/RAW/*.c ./ -cp ../Runtime/RAW/*.h ./ -cp ../Runtime/RAW/*.S ./ -cp ../Runtime/RAW/*.s ./ +mkdir ./coreprof +cp ../Runtime/coreprof/*.c ./coreprof/ +cp ../Runtime/coreprof/*.h ./coreprof/ +cp $BAMBOORUNTIME/*.c ./ +cp $BAMBOORUNTIME/*.h ./ +cp $BAMBOORUNTIME/RAW/*.c ./ +cp $BAMBOORUNTIME/RAW/*.h ./ +cp $BAMBOORUNTIME/RAW/*.S ./ +cp $BAMBOORUNTIME/RAW/*.s ./ cp ../$tmpbuilddirectory/*.c ./ cp ../$tmpbuilddirectory/*.h ./ @@ -660,17 +872,33 @@ TILERA_INDIR="BME" MAKEFILE="Makefile.tilera.$TILERACONFIG" SIMHVC="sim.hvc.$TILERACONFIG" PCIHVC="pci.hvc.$TILERACONFIG" +if $TILERA56COREFLAG +then + PCIHVC="$PCIHVC.56" +fi elif $TILERAZLINUXFLAG then # TILERAZLINUXFLAG TILERA_INDIR="ZLinux" MAKEFILE="Makefile.tilera.$TILERACONFIG" fi + mkdir $TILERADIR cd $TILERADIR make clean rm ./* +if $MGCFLAG +then +export TILERACFLAGS="-DMULTICORE -DCLOSE_PRINT -DTILERA" +else export TILERACFLAGS="-DTASK -DMULTICORE -DCLOSE_PRINT -DTILERA" +fi + +if $TILERAMEMPROFFLAG +then # not only with 1 core + PCIHVC="$PCIHVC.memprof" + TILERACFLAGS="${TILERACFLAGS} -DBAMBOO_MEMPROF" +fi if $TILERABMEFLAG then # TILERABMEFLAG @@ -705,6 +933,11 @@ then # accurateprofile version TILERACFLAGS="${TILERACFLAGS} -DACCURATEPROFILE" fi +if $PROFILEINTERRUPTFLAG +then # profile_interrupt version +TILERACFLAGS="${TILERACFLAGS} -DPROFILE_INTERRUPT" +fi + if $USEIOFLAG then # useio version TILERACFLAGS="${TILERACFLAGS} -DUSEIO" @@ -715,6 +948,11 @@ then #INTERRUPT version TILERACFLAGS="${TILERACFLAGS} -DINTERRUPT" fi #INTERRUPT version +if $MGCFLAG +then #MGCFLAG +TILERACFLAGS="${TILERACFLAGS} -DMGC" +fi + if $MULTICOREGCFLAG then #MULTICOREGC version TILERACFLAGS="${TILERACFLAGS} -DMULTICORE_GC -D${GCCORES}" @@ -725,38 +963,152 @@ then # GC_PROFILE version TILERACFLAGS="${TILERACFLAGS} -DGC_PROFILE" fi +if $GCPROFILESFLAG +then # GC_PROFILE_S version +TILERACFLAGS="${TILERACFLAGS} -DGC_PROFILE_S" +fi + +if $GCMEMLOCALFLAG +then # SMEMLOCAL version +TILERACFLAGS="${TILERACFLAGS} -DSMEML" +fi + +if $GCMEMFIXEDFLAG +then # SMEMFIXED version +TILERACFLAGS="${TILERACFLAGS} -DSMEMF" +fi + +if $GCMEMMIXEDFLAG +then # SMEMMIXED version +TILERACFLAGS="${TILERACFLAGS} -DSMEMM" +fi + +if $GCMEMGLOBALFLAG +then # SMEMGLOBAL version +TILERACFLAGS="${TILERACFLAGS} -DSMEMG" +fi + +if $GCCACHELOCALFLAG +then # CACHE_LOCAL version +TILERACFLAGS="${TILERACFLAGS} -DCACHE_LOCAL" +fi + +if $GCCACHERANFLAG +then # CACHE_RAN version +TILERACFLAGS="${TILERACFLAGS} -DCACHE_RAN" +fi + +if $GCCONTROLLERNEARFLAG +then # CONTROLLER_NEAR version +TILERACFLAGS="${TILERACFLAGS} -DCONTROLLER_NEAR" +fi + +if $GCCONTROLLERREMOTEFLAG +then # CONTROLLER_REMOTE version +TILERACFLAGS="${TILERACFLAGS} -DCONTROLLER_REMOTE" +fi + +if $GCSMALLPAGESIZEFLAG +then # GC_SMALLPAGESIZE version +TILERACFLAGS="${TILERACFLAGS} -DGC_SMALLPAGESIZE" +fi + +if $GCLARGEPAGESIZEFLAG +then # GC_LARGEPAGESIZE version +TILERACFLAGS="${TILERACFLAGS} -DGC_LARGEPAGESIZE" +fi + +if $GCLARGEPAGESIZE2FLAG +then # GC_LARGEPAGESIZE2 version +TILERACFLAGS="${TILERACFLAGS} -DGC_LARGEPAGESIZE2" +fi + +if $GCLARGESHAREDHEAPFLAG +then # GC_LARGESHAREDHEAP version +TILERACFLAGS="${TILERACFLAGS} -DGC_LARGESHAREDHEAP" +fi + +if $GCSMALLPAGESIZEFLAG2 +then # GC_SMALLPAGESIZE2 version +TILERACFLAGS="${TILERACFLAGS} -DGC_SMALLPAGESIZE2" +fi + +if $GCLARGESHAREDHEAPFLAG2 +then # GC_LARGESHAREDHEAP2 version +TILERACFLAGS="${TILERACFLAGS} -DGC_LARGESHAREDHEAP2" +fi + +if $GCCACHEADAPTFLAG +then # GC_CACHE_ADAPT version +TILERACFLAGS="${TILERACFLAGS} -DGC_CACHE_ADAPT" +fi + +if $GCCACHEADAPTPOLICYFLAG +then # GC_CACHE_ADAPT version +TILERACFLAGS="${TILERACFLAGS} -DGC_CACHE_ADAPT_POLICY${GCCACHEADAPTPOLICY}" +fi + +if $GCCACHESAMPLINGFLAG +then # GC_CACHE_ADAPT version +TILERACFLAGS="${TILERACFLAGS} -DGC_CACHE_SAMPLING" +fi + +if $MGCFLAG +then +cp $ROBUSTROOT/Tilera/Runtime/MGC/$MAKEFILE ./Makefile +else cp $ROBUSTROOT/Tilera/Runtime/$TILERA_INDIR/$MAKEFILE ./Makefile +fi if $TILERABMEFLAG then # TILERABMEFLAG cp $ROBUSTROOT/Tilera/Runtime/$TILERA_INDIR/$SIMHVC ./sim.hvc cp $ROBUSTROOT/Tilera/Runtime/$TILERA_INDIR/$PCIHVC ./pci.hvc +if $TILERA56COREFLAG +then +cp $ROBUSTROOT/Tilera/Runtime/$TILERA_INDIR/bamboo-vmlinux-pci.hvc.56 ./bamboo-vmlinux-pci.hvc.56 +else cp $ROBUSTROOT/Tilera/Runtime/$TILERA_INDIR/bamboo-vmlinux-pci.hvc ./bamboo-vmlinux-pci.hvc fi -cp ../Runtime/multicoretask.c ./ -cp ../Runtime/multicoreruntime.c ./ +fi cp ../Runtime/Queue.c ./ cp ../Runtime/file.c ./ cp ../Runtime/math.c ./ +if [ !$MGCFLAG ] +then cp ../Runtime/object.c ./ +fi cp ../Runtime/GenericHashtable.c ./ cp ../Runtime/SimpleHash.c ./ cp ../Runtime/ObjectHash.c ./ cp ../Runtime/socket.c ./ cp ../Runtime/mem.c ./ -cp ../Runtime/multicoregarbage.c ./ -cp ../Runtime/MGCHash.c ./ cp ../Runtime/GenericHashtable.h ./ cp ../Runtime/mem.h ./ -cp ../Runtime/multicoreruntime.h ./ +if [ !$MGCFLAG ] +then cp ../Runtime/object.h ./ +fi cp ../Runtime/ObjectHash.h ./ cp ../Runtime/Queue.h ./ cp ../Runtime/runtime.h ./ cp ../Runtime/SimpleHash.h ./ -cp ../Runtime/multicoregc.h ./ -cp ../Runtime/multicoregarbage.h ./ -cp ../Runtime/multicorehelper.h ./ -cp ../Runtime/MGCHash.h ./ +mkdir ./coreprof +cp ../Runtime/coreprof/coreprof.c ./coreprof/ +cp ../Runtime/coreprof/coreprof.h ./coreprof/ +cp $BAMBOORUNTIME/multicoretask.c ./ +cp $BAMBOORUNTIME/multicoreruntime.c ./ +cp $BAMBOORUNTIME/multicoremem.c ./ +cp $BAMBOORUNTIME/multicoregarbage.c ./ +cp $BAMBOORUNTIME/GCSharedHash.c ./ +cp $BAMBOORUNTIME/MGCHash.c ./ +cp $BAMBOORUNTIME/multicoreruntime.h ./ +cp $BAMBOORUNTIME/multicoremem.h ./ +cp $BAMBOORUNTIME/multicoregarbage.h ./ +cp $BAMBOORUNTIME/multicorecache.h ./ +cp $BAMBOORUNTIME/multicoregc.h ./ +cp $BAMBOORUNTIME/multicorehelper.h ./ +cp $BAMBOORUNTIME/GCSharedHash.h ./ +cp $BAMBOORUNTIME/MGCHash.h ./ cp ../Tilera/Runtime/*.c ./ cp ../Tilera/Runtime/*.h ./ cp ../Tilera/Runtime/$TILERA_INDIR/*.c ./ @@ -765,6 +1117,15 @@ if $TILERAZLINUXFLAG then # TILERAZLINUXFLAG cp ../Tilera/Runtime/$TILERA_INDIR/*.S ./ fi +#if $TILERAMEMPROFFLAG +#then # TILERAMEMPROFFLAG +cp ../Tilera/Runtime/$TILERA_INDIR/linux_client.c ./ +#fi +if $MGCFLAG +then +cp ../Tilera/Runtime/MGC/*.c ./ +cp ../Tilera/Runtime/MGC/*.h ./ +fi cp ../Tilera/lib/* ./ cp ../$tmpbuilddirectory/*.c ./ cp ../$tmpbuilddirectory/*.h ./ @@ -779,7 +1140,8 @@ INCLUDES="$INCLUDES -I$ROBUSTROOT/Runtime -I. -IRuntime/include \ if $MULTICOREFLAG then -RUNTIMEFILE="$ROBUSTROOT/Runtime/multicoreruntime.c $ROBUSTROOT/Runtime/multicoretask.c" +RUNTIMEFILE="$BAMBOORUNTIME/multicoreruntime.c $BAMBOORUNTIME/multicoretask.c" +INCLUDES="$INCLUDES -I$BAMBOORUNTIME" else RUNTIMEFILE="$ROBUSTROOT/Runtime/runtime.c $ROBUSTROOT/Runtime/task.c" fi @@ -812,7 +1174,7 @@ then if $DSMRECOVERY then EXTRAOPTIONS="$EXTRAOPTIONS -lpthread -DCOMPILER -DDSTM -I$DSMRECOVERYRUNTIME" -FILES="$FILES $DSMRECOVERYRUNTIME/trans.c $DSMRECOVERYRUNTIME/mcpileq.c $DSMRECOVERYRUNTIME/objstr.c $DSMRECOVERYRUNTIME/dstm.c $DSMRECOVERYRUNTIME/altmlookup.c $DSMRECOVERYRUNTIME/clookup.c $DSMRECOVERYRUNTIME/llookup.c $DSMRECOVERYRUNTIME/tlookup.c $DSMRECOVERYRUNTIME/threadnotify.c $DSMRECOVERYRUNTIME/dstmserver.c $DSMRECOVERYRUNTIME/plookup.c $DSMRECOVERYRUNTIME/ip.c $DSMRECOVERYRUNTIME/queue.c $DSMRECOVERYRUNTIME/prelookup.c $DSMRECOVERYRUNTIME/machinepile.c $ROBUSTROOT/Runtime/localobjects.c $ROBUSTROOT/Runtime/thread.c $DSMRECOVERYRUNTIME/sockpool.c $DSMRECOVERYRUNTIME/addUdpEnhance.c $DSMRECOVERYRUNTIME/signal.c $DSMRECOVERYRUNTIME/gCollect.c $DSMRECOVERYRUNTIME/addPrefetchEnhance.c $DSMRECOVERYRUNTIME/dsmlock.c $DSMRECOVERYRUNTIME/translist.c $DSMRECOVERYRUNTIME/paxos.c" +FILES="$FILES $DSMRECOVERYRUNTIME/trans.c $DSMRECOVERYRUNTIME/mcpileq.c $DSMRECOVERYRUNTIME/objstr.c $DSMRECOVERYRUNTIME/dstm.c $DSMRECOVERYRUNTIME/altmlookup.c $DSMRECOVERYRUNTIME/clookup.c $DSMRECOVERYRUNTIME/llookup.c $DSMRECOVERYRUNTIME/tlookup.c $DSMRECOVERYRUNTIME/threadnotify.c $DSMRECOVERYRUNTIME/dstmserver.c $DSMRECOVERYRUNTIME/plookup.c $DSMRECOVERYRUNTIME/ip.c $DSMRECOVERYRUNTIME/queue.c $DSMRECOVERYRUNTIME/altprelookup.c $DSMRECOVERYRUNTIME/machinepile.c $ROBUSTROOT/Runtime/localobjects.c $ROBUSTROOT/Runtime/thread.c $DSMRECOVERYRUNTIME/sockpool.c $DSMRECOVERYRUNTIME/addUdpEnhance.c $DSMRECOVERYRUNTIME/signal.c $DSMRECOVERYRUNTIME/gCollect.c $DSMRECOVERYRUNTIME/addPrefetchEnhance.c $DSMRECOVERYRUNTIME/dsmlock.c $DSMRECOVERYRUNTIME/translist.c $DSMRECOVERYRUNTIME/paxos.c" else EXTRAOPTIONS="$EXTRAOPTIONS -lpthread -DCOMPILER -DDSTM -I$DSMRUNTIME" FILES="$FILES $DSMRUNTIME/trans.c $DSMRUNTIME/mcpileq.c $DSMRUNTIME/objstr.c $DSMRUNTIME/dstm.c $DSMRUNTIME/clookup.c $DSMRUNTIME/llookup.c $DSMRUNTIME/threadnotify.c $DSMRUNTIME/dstmserver.c $DSMRUNTIME/plookup.c $DSMRUNTIME/ip.c $DSMRUNTIME/queue.c $DSMRUNTIME/altprelookup.c $DSMRUNTIME/machinepile.c $ROBUSTROOT/Runtime/localobjects.c $ROBUSTROOT/Runtime/thread.c $DSMRUNTIME/sockpool.c $DSMRUNTIME/addUdpEnhance.c $DSMRUNTIME/signal.c $DSMRUNTIME/gCollect.c $DSMRUNTIME/addPrefetchEnhance.c $DSMRUNTIME/dsmlock.c $DSMRUNTIME/prefetch.c $DSMRUNTIME/altmlookup.c" @@ -845,6 +1207,16 @@ then FILES="$FILES $ROBUSTROOT/Runtime/localobjects.c" fi +if $COREPROF +then +FILES="$FILES $ROBUSTROOT/Runtime/coreprof/coreprof.c" +fi + +if $RCR +then +FILES="$FILES $tmpbuilddirectory/RuntimeConflictResolver.c $ROBUSTROOT/Runtime/oooJava/hashRCR.c $ROBUSTROOT/Runtime/oooJava/Queue_RCR.c $ROBUSTROOT/Runtime/oooJava/hashStructure.c $ROBUSTROOT/Runtime/oooJava/trqueue.c $ROBUSTROOT/Runtime/oooJava/rcr_runtime.c" +fi + if $MLP_ON then FILES="$FILES $ROBUSTROOT/Runtime/mlp_runtime.c" @@ -893,6 +1265,9 @@ then EXTRAOPTIONS="$EXTRAOPTIONS -ldmalloc -DDMALLOC" fi +echo Compiling C... +echo EXTRAOPTIONS=$EXTRAOPTIONS + if $ASSEMBLY then gcc -S $INCLUDES $EXTRAOPTIONS -DPRECISE_GC \ @@ -901,13 +1276,21 @@ fi if $MULTICOREFLAG then -gcc $INCLUDES $EXTRAOPTIONS \ -$tmpbuilddirectory/methods.c $FILES -lm -o $MAINFILE.bin +NONMULTICOREOPTS= else -gcc $INCLUDES $EXTRAOPTIONS -DPRECISE_GC \ -$tmpbuilddirectory/methods.c $FILES -lm -o $MAINFILE.bin +NONMULTICOREOPTS=-DPRECISE_GC fi +if $SRCAFTERPP +then +gcc -E $INCLUDES $EXTRAOPTIONS $NONMULTICOREOPTS \ +$tmpbuilddirectory/methods.c $FILES > tmp.c +fi + +gcc $INCLUDES $EXTRAOPTIONS $NONMULTICOREOPTS \ +$tmpbuilddirectory/methods.c $FILES -lm -o $MAINFILE.bin + + fi #!RAWFLAG