##===- TEST.dsgraph.Makefile -------------------------------*- Makefile -*-===## # # This recursively traverses the programs, computing DSGraphs for each of the # programs in the testsuite. # ##===----------------------------------------------------------------------===## RELDIR := $(subst $(PROJ_OBJ_ROOT),,$(PROJ_OBJ_DIR)) # We require the programs to be linked with libdummy #include $(LEVEL)/Makefile.dummylib # Pathname to poolalloc object tree PADIR := $(LLVM_OBJ_ROOT)/projects/poolalloc # Pathame to the DSA pass dynamic library DSA_SO := $(PADIR)/$(CONFIGURATION)/lib/libLLVMDataStructure$(SHLIBEXT) ASSIST_SO := $(PADIR)/$(CONFIGURATION)/lib/libAssistDS$(SHLIBEXT) # Command for running the opt program RUNOPT := $(RUNTOOLSAFELY) $(LLVM_OBJ_ROOT)/projects/poolalloc/$(CONFIGURATION)/bin/watchdog $(LOPT) -load $(DSA_SO) # PASS - The dsgraph pass to run: ds, bu, td PASS := td TYPE_RT_O := $(PADIR)/$(CONFIGURATION)/lib/libtypechecks_rt.a TYPE_RT_BC := $(PADIR)/$(CONFIGURATION)/lib/libtypechecks_rt.bca DYNCOUNT_RT_O := $(PADIR)/$(CONFIGURATION)/lib/libcount.a ANALYZE_OPTS := -stats -time-passes -disable-output -dsstats #ANALYZE_OPTS := -stats -time-passes -dsstats ANALYZE_OPTS += -instcount -disable-verify MEM := -track-memory -time-passes -disable-output LDFLAGS += -lstdc++ #SAFE_OPTS := -internalize -scalarrepl -deadargelim -globaldce -basiccg -inline SAFE_OPTS := -internalize -mem2reg -constprop -ipsccp -dce -deadargelim -globaldce -basiccg -inline SAFE_OPTS1 := -internalize -deadargelim -globaldce -basiccg -inline #SAFE_OPTS := -internalize -deadargelim -globaldce $(PROGRAMS_TO_TEST:%=Output/%.linked1.bc): \ Output/%.linked1.bc: Output/%.linked.rbc $(LOPT) -$(RUNOPT) -disable-opt $(SAFE_OPTS1) -mem2reg -dce -info-output-file=$(CURDIR)/$@.info -stats -time-passes $< -f -o $@ $(PROGRAMS_TO_TEST:%=Output/%.llvm1.bc): \ Output/%.llvm1.bc: Output/%.linked1.bc $(LLVM_LDDPROG) -$(RUNTOOLSAFELY) $(LLVMLD) -disable-opt $(SAFE_OPTS1) -info-output-file=$(CURDIR)/$@.info -stats -time-passes $(LLVMLD_FLAGS) $< -lc $(LIBS) -o Output/$*.llvm1 $(PROGRAMS_TO_TEST:%=Output/%.opt.bc): \ Output/%.opt.bc: Output/%.llvm1.bc $(LOPT) $(ASSIST_SO) -$(RUNOPT) -load $(ASSIST_SO) -disable-opt -info-output-file=$(CURDIR)/$@.info -instnamer -internalize -mem2reg -dce -basiccg -inline -dce -arg-cast -indclone -funcspec -ipsccp -deadargelim -simplify-gep -die -mergearrgep -die -globaldce -simplifycfg -deadargelim -arg-simplify -die -arg-cast -die -simplifycfg -globaldce -indclone -funcspec -deadargelim -globaldce -die -simplifycfg -gep-expr-arg -deadargelim -die -mergefunc -die -mergearrgep -die -globaldce -int2ptrcmp -die -dce -inline -mem2reg -dce -arg-cast -dce -sretpromotion -struct-ret -deadargelim -simplify-ev -simplify-iv -dce -ld-args -gep-expr-arg -deadargelim -mergefunc -dce -func-simplify -simplify-load -dce -stats -time-passes $< -f -o $@ $(PROGRAMS_TO_TEST:%=Output/%.count.bc): \ Output/%.count.bc: Output/%.opt.bc $(LOPT) $(ASSIST_SO) -$(RUNOPT) -load $(ASSIST_SO) -enable-type-inference-opts -dsa-stdlib-no-fold -dyncount -disable-opt -info-output-file=$(CURDIR)/$@.info $< -f -o $@ $(PROGRAMS_TO_TEST:%=Output/%.count1.bc): \ Output/%.count1.bc: Output/%.opt.bc $(LOPT) $(ASSIST_SO) -$(RUNOPT) -load $(ASSIST_SO) -dyncount -disable-opt -info-output-file=$(CURDIR)/$@.info $< -f -o $@ $(PROGRAMS_TO_TEST:%=Output/%.tc.bc): \ Output/%.tc.bc: Output/%.opt.bc $(LOPT) $(ASSIST_SO) -$(RUNOPT) -load $(ASSIST_SO) -typechecks -dce -ipsccp -dce -stats -info-output-file=$(CURDIR)/$@.info $< -f -o $@.temp -$(LLVMLD) -disable-opt -o $@.ld $@.temp $(TYPE_RT_BC) -$(LOPT) $(SAFE_OPTS) $@.ld.bc -o $@ -f $(PROGRAMS_TO_TEST:%=Output/%.tcd.bc): \ Output/%.tcd.bc: Output/%.opt.bc $(LOPT) $(ASSIST_SO) -$(RUNOPT) -load $(ASSIST_SO) -typechecks -enable-ptr-type-checks -dce -ipsccp -dce -stats -info-output-file=$(CURDIR)/$@.info $< -f -o $@.temp -$(LLVMLD) -disable-opt -o $@.ld $@.temp $(TYPE_RT_BC) -$(LOPT) $(SAFE_OPTS) $@.ld.bc -o $@ -f #-$(RUNOPT) -load $(ASSIST_SO) $(SAFE_OPTS) -typechecks-runtime-opt $@.ld.bc -o $@ -f $(PROGRAMS_TO_TEST:%=Output/%.tco.bc): \ Output/%.tco.bc: Output/%.opt.bc $(LOPT) $(ASSIST_SO) -$(RUNOPT) -load $(ASSIST_SO) -typechecks -typechecks-opt -dce -ipsccp -dce -stats -info-output-file=$(CURDIR)/$@.info $< -f -o $@.temp -$(LLVMLD) -disable-opt -o $@.ld $@.temp $(TYPE_RT_BC) -$(LOPT) $(SAFE_OPTS) $@.ld.bc -o $@ -f #-$(RUNOPT) -load $(ASSIST_SO) $(SAFE_OPTS) -typechecks-runtime-opt $@.ld.bc -o $@ -f $(PROGRAMS_TO_TEST:%=Output/%.tcoo.bc): \ Output/%.tcoo.bc: Output/%.opt.bc $(LOPT) $(ASSIST_SO) -$(RUNOPT) -load $(ASSIST_SO) -typechecks -enable-type-inference-opts -dsa-stdlib-no-fold -typechecks-opt -dce -ipsccp -dce -stats -info-output-file=$(CURDIR)/$@.info $< -f -o $@.temp -$(LLVMLD) -disable-opt -o $@.ld $@.temp $(TYPE_RT_BC) -$(LOPT) $(SAFE_OPTS) $@.ld.bc -o $@ -f #-$(RUNOPT) -load $(ASSIST_SO) $(SAFE_OPTS) -typechecks-runtime-opt $@.ld.bc -o $@ -f $(PROGRAMS_TO_TEST:%=Output/%.tcoo1.bc): \ Output/%.tcoo1.bc: Output/%.opt.bc $(LOPT) $(ASSIST_SO) -$(RUNOPT) -load $(ASSIST_SO) -typechecks -no-ptr-cmp-checks -enable-type-inference-opts -dsa-stdlib-no-fold -typechecks-opt -dce -ipsccp -dce -stats -info-output-file=$(CURDIR)/$@.info $< -f -o $@.temp -$(LLVMLD) -disable-opt -o $@.ld $@.temp $(TYPE_RT_BC) -$(LOPT) $(SAFE_OPTS) $@.ld.bc -o $@ -f #-$(RUNOPT) -load $(ASSIST_SO) $(SAFE_OPTS) -typechecks-runtime-opt $@.ld.bc -o $@ -f $(PROGRAMS_TO_TEST:%=Output/%.count.s): \ Output/%.count.s: Output/%.count.bc $(LLC) -$(LLC) $< -o $@ $(PROGRAMS_TO_TEST:%=Output/%.count1.s): \ Output/%.count1.s: Output/%.count1.bc $(LLC) -$(LLC) $< -o $@ $(PROGRAMS_TO_TEST:%=Output/%.opt.s): \ Output/%.opt.s: Output/%.opt.bc $(LLC) -$(LLC) $< -o $@ $(PROGRAMS_TO_TEST:%=Output/%.llvm1.s): \ Output/%.llvm1.s: Output/%.llvm1.bc $(LLC) -$(LLC) $< -o $@ $(PROGRAMS_TO_TEST:%=Output/%.tc.s): \ Output/%.tc.s: Output/%.tc.bc $(LLC) -$(LLC) $< -o $@ $(PROGRAMS_TO_TEST:%=Output/%.tcd.s): \ Output/%.tcd.s: Output/%.tcd.bc $(LLC) -$(LLC) $< -o $@ $(PROGRAMS_TO_TEST:%=Output/%.tco.s): \ Output/%.tco.s: Output/%.tco.bc $(LLC) -$(LLC) $< -o $@ $(PROGRAMS_TO_TEST:%=Output/%.tcoo.s): \ Output/%.tcoo.s: Output/%.tcoo.bc $(LLC) -$(LLC) $< -o $@ $(PROGRAMS_TO_TEST:%=Output/%.tcoo1.s): \ Output/%.tcoo1.s: Output/%.tcoo1.bc $(LLC) -$(LLC) $< -o $@ $(PROGRAMS_TO_TEST:%=Output/%.opt): \ Output/%.opt: Output/%.opt.s -$(CC) $(CFLAGS) $< $(LLCLIBS) $(LDFLAGS) -o $@ $(PROGRAMS_TO_TEST:%=Output/%.tc): \ Output/%.tc: Output/%.tc.s $(TYPE_RT_O) -$(CC) $(CFLAGS) $< $(LLCLIBS) $(TYPE_RT_O) $(LDFLAGS) -o $@ $(PROGRAMS_TO_TEST:%=Output/%.tcd): \ Output/%.tcd: Output/%.tcd.s $(TYPE_RT_O) -$(CC) $(CFLAGS) $< $(LLCLIBS) $(TYPE_RT_O) $(LDFLAGS) -o $@ $(PROGRAMS_TO_TEST:%=Output/%.tco): \ Output/%.tco: Output/%.tco.s $(TYPE_RT_O) -$(CC) $(CFLAGS) $< $(LLCLIBS) $(TYPE_RT_O) $(LDFLAGS) -o $@ $(PROGRAMS_TO_TEST:%=Output/%.tcoo): \ Output/%.tcoo: Output/%.tcoo.s $(TYPE_RT_O) -$(CC) $(CFLAGS) $< $(LLCLIBS) $(TYPE_RT_O) $(LDFLAGS) -o $@ $(PROGRAMS_TO_TEST:%=Output/%.tcoo1): \ Output/%.tcoo1: Output/%.tcoo1.s $(TYPE_RT_O) -$(CC) $(CFLAGS) $< $(LLCLIBS) $(TYPE_RT_O) $(LDFLAGS) -o $@ $(PROGRAMS_TO_TEST:%=Output/%.llvm1): \ Output/%.llvm1: Output/%.llvm1.s -$(CC) $(CFLAGS) $< $(LLCLIBS) $(LDFLAGS) -o $@ $(PROGRAMS_TO_TEST:%=Output/%.count): \ Output/%.count: Output/%.count.s -$(CC) $(CFLAGS) $< $(LLCLIBS) $(DYNCOUNT_RT_O) $(LDFLAGS) -o $@ $(PROGRAMS_TO_TEST:%=Output/%.count1): \ Output/%.count1: Output/%.count1.s -$(CC) $(CFLAGS) $< $(LLCLIBS) $(DYNCOUNT_RT_O) $(LDFLAGS) -o $@ ifndef PROGRAMS_HAVE_CUSTOM_RUN_RULES $(PROGRAMS_TO_TEST:%=Output/%.out-opt): \ Output/%.out-opt: Output/%.opt -$(RUNSAFELY) $(STDIN_FILENAME) $@ $< $(RUN_OPTIONS) $(PROGRAMS_TO_TEST:%=Output/%.out-llvm1): \ Output/%.out-llvm1: Output/%.llvm1 -$(RUNSAFELY) $(STDIN_FILENAME) $@ $< $(RUN_OPTIONS) $(PROGRAMS_TO_TEST:%=Output/%.out-count1): \ Output/%.out-count1: Output/%.count1 -$(RUNSAFELY) $(STDIN_FILENAME) $@ $< $(RUN_OPTIONS) -cp lsstats lsstats1 $(PROGRAMS_TO_TEST:%=Output/%.out-count): \ Output/%.out-count: Output/%.count -$(RUNSAFELY) $(STDIN_FILENAME) $@ $< $(RUN_OPTIONS) -cp lsstats lsstats2 $(PROGRAMS_TO_TEST:%=Output/%.out-tc): \ Output/%.out-tc: Output/%.tc -$(RUNSAFELY) $(STDIN_FILENAME) $@ $< $(RUN_OPTIONS) $(PROGRAMS_TO_TEST:%=Output/%.out-tcd): \ Output/%.out-tcd: Output/%.tcd -$(RUNSAFELY) $(STDIN_FILENAME) $@ $< $(RUN_OPTIONS) $(PROGRAMS_TO_TEST:%=Output/%.out-tco): \ Output/%.out-tco: Output/%.tco -$(RUNSAFELY) $(STDIN_FILENAME) $@ $< $(RUN_OPTIONS) $(PROGRAMS_TO_TEST:%=Output/%.out-tcoo): \ Output/%.out-tcoo: Output/%.tcoo -$(RUNSAFELY) $(STDIN_FILENAME) $@ $< $(RUN_OPTIONS) $(PROGRAMS_TO_TEST:%=Output/%.out-tcoo1): \ Output/%.out-tcoo1: Output/%.tcoo1 -$(RUNSAFELY) $(STDIN_FILENAME) $@ $< $(RUN_OPTIONS) else $(PROGRAMS_TO_TEST:%=Output/%.out-opt): \ Output/%.out-opt: Output/%.opt -$(SPEC_SANDBOX) opt-$(RUN_TYPE) $@ $(REF_IN_DIR) \ $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \ ../../$< $(RUN_OPTIONS) -(cd Output/opt-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@ -cp Output/opt-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time $(PROGRAMS_TO_TEST:%=Output/%.out-llvm1): \ Output/%.out-llvm1: Output/%.llvm1 -$(SPEC_SANDBOX) llvm1-$(RUN_TYPE) $@ $(REF_IN_DIR) \ $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \ ../../$< $(RUN_OPTIONS) -(cd Output/llvm1-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@ -cp Output/llvm1-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time $(PROGRAMS_TO_TEST:%=Output/%.out-tc): \ Output/%.out-tc: Output/%.tc -$(SPEC_SANDBOX) tc-$(RUN_TYPE) $@ $(REF_IN_DIR) \ $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \ ../../$< $(RUN_OPTIONS) -(cd Output/tc-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@ -cp Output/tc-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time $(PROGRAMS_TO_TEST:%=Output/%.out-tcd): \ Output/%.out-tcd: Output/%.tcd -$(SPEC_SANDBOX) tcd-$(RUN_TYPE) $@ $(REF_IN_DIR) \ $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \ ../../$< $(RUN_OPTIONS) -(cd Output/tcd-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@ -cp Output/tcd-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time $(PROGRAMS_TO_TEST:%=Output/%.out-tco): \ Output/%.out-tco: Output/%.tco -$(SPEC_SANDBOX) tco-$(RUN_TYPE) $@ $(REF_IN_DIR) \ $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \ ../../$< $(RUN_OPTIONS) -(cd Output/tco-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@ -cp Output/tco-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time $(PROGRAMS_TO_TEST:%=Output/%.out-tcoo): \ Output/%.out-tcoo: Output/%.tcoo -$(SPEC_SANDBOX) tcoo-$(RUN_TYPE) $@ $(REF_IN_DIR) \ $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \ ../../$< $(RUN_OPTIONS) -(cd Output/tcoo-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@ -cp Output/tcoo-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time $(PROGRAMS_TO_TEST:%=Output/%.out-tcoo1): \ Output/%.out-tcoo1: Output/%.tcoo1 -$(SPEC_SANDBOX) tcoo1-$(RUN_TYPE) $@ $(REF_IN_DIR) \ $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \ ../../$< $(RUN_OPTIONS) -(cd Output/tcoo1-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@ -cp Output/tcoo1-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time $(PROGRAMS_TO_TEST:%=Output/%.out-count): \ Output/%.out-count: Output/%.count -$(SPEC_SANDBOX) count-$(RUN_TYPE) $@ $(REF_IN_DIR) \ $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \ ../../$< $(RUN_OPTIONS) -(cd Output/count-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@ -cp Output/count-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time -cp Output/count-$(RUN_TYPE)/lsstats lsstats2 $(PROGRAMS_TO_TEST:%=Output/%.out-count1): \ Output/%.out-count1: Output/%.count1 -$(SPEC_SANDBOX) count1-$(RUN_TYPE) $@ $(REF_IN_DIR) \ $(RUNSAFELY) $(STDIN_FILENAME) $(STDOUT_FILENAME) \ ../../$< $(RUN_OPTIONS) -(cd Output/count1-$(RUN_TYPE); cat $(LOCAL_OUTPUTS)) > $@ -cp Output/count1-$(RUN_TYPE)/$(STDOUT_FILENAME).time $@.time -cp Output/count1-$(RUN_TYPE)/lsstats lsstats1 endif $(PROGRAMS_TO_TEST:%=Output/%.diff-opt): \ Output/%.diff-opt: Output/%.out-nat Output/%.out-opt -$(DIFFPROG) opt $* $(HIDEDIFF) $(PROGRAMS_TO_TEST:%=Output/%.diff-tc): \ Output/%.diff-tc: Output/%.out-nat Output/%.out-tc -$(DIFFPROG) tc $* $(HIDEDIFF) $(PROGRAMS_TO_TEST:%=Output/%.diff-tcd): \ Output/%.diff-tcd: Output/%.out-nat Output/%.out-tcd -$(DIFFPROG) tcd $* $(HIDEDIFF) $(PROGRAMS_TO_TEST:%=Output/%.diff-tco): \ Output/%.diff-tco: Output/%.out-nat Output/%.out-tco -$(DIFFPROG) tco $* $(HIDEDIFF) $(PROGRAMS_TO_TEST:%=Output/%.diff-tcoo): \ Output/%.diff-tcoo: Output/%.out-nat Output/%.out-tcoo -$(DIFFPROG) tcoo $* $(HIDEDIFF) $(PROGRAMS_TO_TEST:%=Output/%.diff-tcoo1): \ Output/%.diff-tcoo1: Output/%.out-nat Output/%.out-tcoo1 -$(DIFFPROG) tcoo1 $* $(HIDEDIFF) $(PROGRAMS_TO_TEST:%=Output/%.diff-llvm1): \ Output/%.diff-llvm1: Output/%.out-nat Output/%.out-llvm1 -$(DIFFPROG) llvm1 $* $(HIDEDIFF) $(PROGRAMS_TO_TEST:%=Output/%.diff-count): \ Output/%.diff-count: Output/%.out-nat Output/%.out-count -$(DIFFPROG) count $* $(HIDEDIFF) $(PROGRAMS_TO_TEST:%=Output/%.diff-count1): \ Output/%.diff-count1: Output/%.out-nat Output/%.out-count1 -$(DIFFPROG) count1 $* $(HIDEDIFF) $(PROGRAMS_TO_TEST:%=Output/%.$(TEST).report.txt): \ Output/%.$(TEST).report.txt: Output/%.opt.bc Output/%.LOC.txt $(LOPT) Output/%.out-nat Output/%.diff-llvm1 Output/%.diff-opt Output/%.diff-tc Output/%.diff-tco Output/%.diff-tcoo Output/%.diff-tcd Output/%.diff-count Output/%.diff-count1 Output/%.diff-tcoo1 @# Gather data -($(RUNOPT) -dsa-$(PASS) -enable-type-inference-opts -dsa-stdlib-no-fold $(ANALYZE_OPTS) $<)> $@.time.1 2>&1 -($(RUNOPT) -dsa-$(PASS) $(ANALYZE_OPTS) $<)> $@.time.2 2>&1 @# Emit data. @echo "---------------------------------------------------------------" > $@ @echo ">>> ========= '$(RELDIR)/$*' Program" >> $@ @echo "---------------------------------------------------------------" >> $@ @/bin/echo -n "LOC: " >> $@ @cat Output/$*.LOC.txt >> $@ @echo >> $@ @/bin/echo -n "MEMINSTS: " >> $@ -@grep 'Number of memory instructions' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "FOLDEDNODES: " >> $@ -@grep 'Number of nodes completely folded' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "TOTALNODES: " >> $@ -@grep 'Number of nodes allocated' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "MAXGRAPHSIZE: " >> $@ -@grep 'Maximum graph size' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "GLOBALSGRAPH: " >> $@ -@grep 'td.GlobalsGraph.dot' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "SCCSIZE: " >> $@ -@grep 'Maximum SCC Size in Call Graph' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "ACCESSES TYPED_O: " >> $@ -@grep 'Number of loads/stores which are fully typed' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "ACCESSES UNTYPED_O: " >> $@ -@grep 'Number of loads/stores which are untyped' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "ACCESSES TYPED: " >> $@ -@grep 'Number of loads/stores which are fully typed' $@.time.2 >> $@ @echo >> $@ @/bin/echo -n "ACCESSES UNTYPED: " >> $@ -@grep 'Number of loads/stores which are untyped' $@.time.2 >> $@ @echo >> $@ @/bin/echo -n "ACCESSES TYPED0: " >> $@ -@grep 'Number of loads/stores which are access a DSNode with 0 type' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "ACCESSES TYPED1: " >> $@ -@grep 'Number of loads/stores which are access a DSNode with 1 type' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "ACCESSES TYPED2: " >> $@ -@grep 'Number of loads/stores which are access a DSNode with 2 type' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "ACCESSES TYPED3: " >> $@ -@grep 'Number of loads/stores which are access a DSNode with 3 type' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "ACCESSES TYPED4: " >> $@ -@grep 'Number of loads/stores which are access a DSNode with >3 type' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "IGN: " >> $@ -@grep 'Number of instructions ignored' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "GEPI: " >> $@ -@grep 'Number of gep instructions ignored' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "ACCESSES I: " >> $@ -@grep 'Number of loads/stores which are on incomplete nodes' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "ACCESSES E: " >> $@ -@grep 'Number of loads/stores which are on external nodes' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "ACCESSES F: " >> $@ -@grep 'Number of loads/stores which are on folded nodes' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "ACCESSES U: " >> $@ -@grep 'Number of loads/stores which are on unknown nodes' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "ACCESSES I2P: " >> $@ -@grep 'Number of loads/stores which are on inttoptr nodes' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "I2PB: " >> $@ -@grep 'Number of inttoptr used only in cmp' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "I2PS: " >> $@ -@grep 'Number of inttoptr from ptrtoint' $@.time.1 >> $@ @echo >> $@ @# Emit timing data. @/bin/echo -n "TIME: " >> $@ -@grep ' Local Data Structure' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "TIME: " >> $@ -@grep ' Bottom-up Data Structure' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "TIME: " >> $@ -@grep ' Top-down Data Structure' $@.time.1 >> $@ @echo >> $@ @# Emit runtime data. @-if test -f Output/$*.diff-opt; then \ printf "OPT-RUN_TIME: " >> $@;\ grep 'program' Output/$*.out-opt.time >> $@;\ fi @-if test -f Output/$*.diff-tc; then \ printf "TC-RUN_TIME: " >> $@;\ grep 'program' Output/$*.out-tc.time >> $@;\ fi @-if test -f Output/$*.diff-tcd; then \ printf "TCD-RUN_TIME: " >> $@;\ grep 'program' Output/$*.out-tcd.time >> $@;\ fi @-if test -f Output/$*.diff-tco; then \ printf "TCO-RUN_TIME: " >> $@;\ grep 'program' Output/$*.out-tco.time >> $@;\ fi @-if test -f Output/$*.diff-tcoo; then \ printf "TCOO-RUN_TIME: " >> $@;\ grep 'program' Output/$*.out-tcoo.time >> $@;\ fi @-if test -f Output/$*.diff-tcoo1; then \ printf "TCOO1-RUN_TIME: " >> $@;\ grep 'program' Output/$*.out-tcoo1.time >> $@;\ fi @# Emit AssistDS stats @/bin/echo -n "CLONED_FUNCSPEC: " >> $@ -@grep 'Number of Functions Cloned in FuncSpec' $<.info >> $@ @echo >> $@ @/bin/echo -n "CLONED_INDCLONE: " >> $@ -@grep 'Number of Functions Cloned in IndClone' $<.info >> $@ @echo >> $@ @/bin/echo -n "GEP_CALLS: " >> $@ -@grep 'Number of Calls Modified' $<.info >> $@ @echo >> $@ @/bin/echo -n "ARG_SMPL: " >> $@ -@grep 'Number of Args changeable' $<.info >> $@ @echo >> $@ @/bin/echo -n "EV: " >> $@ -@grep 'Number of Instructions Deleted' $<.info >> $@ @echo >> $@ @/bin/echo -n "ALLOC: " >> $@ -@grep 'Number of malloc-like allocators' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "DEALLOC: " >> $@ -@grep 'Number of free-like deallocators' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "CAST: " >> $@ -@grep 'Number of Args bitcasted' $<.info >> $@ @echo >> $@ @/bin/echo -n "INDCALLS: " >> $@ -@grep 'Number of unresolved IndCalls' $@.time.1 >> $@ @echo >> $@ @/bin/echo -n "DTOTALO: " >> $@ -@grep 'Total' lsstats2 >> $@ @echo >> $@ @/bin/echo -n "DSAFEO: " >> $@ -@grep 'Safe' lsstats2 >> $@ @echo >> $@ @/bin/echo -n "DTOTAL: " >> $@ -@grep 'Total' lsstats1 >> $@ @echo >> $@ @/bin/echo -n "DSAFE: " >> $@ -@grep 'Safe' lsstats1 >> $@ @echo >> $@ @/bin/echo -n "LCHK: " >> $@ -@grep 'Number of Load Insts that need type checks' $<.info >> $@ @echo >> $@ @/bin/echo -n "SCHK: " >> $@ -@grep 'Number of Store Insts that need type checks' $<.info >> $@ @echo >> $@ $(PROGRAMS_TO_TEST:%=test.$(TEST).%): \ test.$(TEST).%: Output/%.$(TEST).report.txt @echo "---------------------------------------------------------------" @echo ">>> ========= '$(RELDIR)/$*' Program" @echo "---------------------------------------------------------------" @cat $< # Define REPORT_DEPENDENCIES so that the report is regenerated if analyze or # dummylib is updated. # REPORT_DEPENDENCIES := $(DUMMYLIB) $(LOPT) $(ASSIST_SO)