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 -do-definite-reach-analysis enable improved precision for disjoint reachability analysis
echo
echo -pointsto-check-v-runtime check allocation site of pointer targets at runtime to help verify heap analysis results
echo
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 -gccachecoherent turns on the cache coherence during gc
echo
echo Multicore GC options
echo -perfcount performance counters
+echo -memperfcount Memory performance counters
echo -multicoregc generate multi-core binary with garbage collection
echo -pmc parallel collector
echo "-numcore4gc set the number of cores for gc (should be used together with -multicoregc), defaultly set as 0"
THREADSIMULATEFLAG=false;
MULTICOREGCFLAG=false;
PERFCOUNT=false;
+MEMPERFCOUNT=false;
PMCFLAG=false;
GCMEMLOCALFLAG=false;
GCMEMFIXEDFLAG=false;
TILERA_PAGE_SIZE="0x10000"
TILERA_PAGE_SIZE_BITS="16"
TILERA_NUM_BLOCKS="20"
-TILERA_NUM_PAGES_PER_BLOCK="16"
+TILERA_NUM_PAGES_PER_BLOCK="16"
+GCCACHECOHERENTFLAG=false
if [[ -z $1 ]]
then
elif [[ $1 = '-useio' ]]
then
USEIOFLAG=true
+elif [[ $1 = '-gccachecoherent' ]]
+then
+GCCACHECOHERENTFLAG=true
elif [[ $1 = '-taskstate' ]]
then
JAVAOPTS="$JAVAOPTS -taskstate"
elif [[ $1 = '-perfcount' ]]
then
PERFCOUNT=true
+elif [[ $1 = '-memperfcount' ]]
+then
+MEMPERFCOUNT=true
elif [[ $1 = '-gcmem_local' ]]
then
GCMEMLOCALFLAG=true
shift
done
+
BUILDDIR="$CURDIR/$tmpbuilddirectory"
BAMBOORUNTIME=$ROBUSTROOT/Runtime/bamboo
JAVAOPTS="$JAVAOPTS -struct structfile"
fi
+if $TILERAFLAG
+then
# for tilera code, generate multicorememsize.h
./generate_memsize.sh ${TILERA_PAGE_SIZE} ${TILERA_PAGE_SIZE_BITS} ${TILERA_NUM_BLOCKS} ${TILERA_NUM_PAGES_PER_BLOCK} ${BUILDDIR}
+fi
#########################
fi
fi
+# after executing Main, if -justanalyze flag, just exit
if $EXITAFTERANALYSIS
then
exit
fi
+
+
# Build all of the consistency specs
if $CHECKFLAG # CHECKFLAG
TILERACFLAGS="${TILERACFLAGS} -DPERFCOUNT"
fi
+if $MEMPERFCOUNT
+then #MULTICOREGC version
+TILERACFLAGS="${TILERACFLAGS} -DMEMPERFCOUNT"
+fi
+
if $GCPROFILEFLAG
then # GC_PROFILE version
TILERACFLAGS="${TILERACFLAGS} -DGC_PROFILE"
TILERACFLAGS="${TILERACFLAGS} -DGC_CACHE_SAMPLING"
fi
+if $GCCACHECOHERENTFLAG
+then # gc cache coherent version
+TILERACFLAGS="${TILERACFLAGS} -DGC_CACHE_COHERENT_ON"
+fi
+
if $PMCFLAG
then
cp $ROBUSTROOT/Tilera/Runtime/PMC/$MAKEFILE ./Makefile