diff options
author | blazy <blazy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2006-10-20 12:37:13 +0000 |
---|---|---|
committer | blazy <blazy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2006-10-20 12:37:13 +0000 |
commit | ca0c62265eb8cdd5fb0d8a8b34ee77baf3de987e (patch) | |
tree | 50a139db8e2ac51c6ff41f3790ff72aa417ed3be /test/ccured_olden/treeadd | |
parent | 43668d9109b1f36329646fd07324d435be6f0050 (diff) |
Ajout du banc de tests de CCured (Olden benchmark suite, cf.
CCured: type-safe retrofitting of legacy code, G.Necula et al.)
rapportCompcert_all.txt liste les erreurs produites par ccomp.
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@121 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'test/ccured_olden/treeadd')
34 files changed, 682 insertions, 0 deletions
diff --git a/test/ccured_olden/treeadd/.cvsignore b/test/ccured_olden/treeadd/.cvsignore new file mode 100644 index 0000000..ea04e03 --- /dev/null +++ b/test/ccured_olden/treeadd/.cvsignore @@ -0,0 +1,27 @@ +*.o +*.obj +*.exe +*.pdb +*.ilk +*.cpp +*.i +*.s +*.asm +*cil.c +*.rtl +*box.c +*infer.c +*_ppp.c +*.origi +*.stackdump +*_all.c +treeadd +allcfiles +ope.m +*_comb.c +*.exe_comb.browser +*cured.c +*.optim.c +changes +output +out.diff diff --git a/test/ccured_olden/treeadd/CVS/Entries b/test/ccured_olden/treeadd/CVS/Entries new file mode 100644 index 0000000..c689f04 --- /dev/null +++ b/test/ccured_olden/treeadd/CVS/Entries @@ -0,0 +1,27 @@ +/HOWTO/1.1/Fri Jun 29 11:24:14 2001// +/HOWTO.bak/1.1/Fri Jun 29 11:24:14 2001// +/Makefile.plain/1.1/Fri Jun 29 11:24:14 2001// +/Makefile.ss/1.1/Fri Jun 29 11:24:14 2001// +/args.c/1.1/Fri Jun 29 11:24:14 2001// +/node.c/1.1/Fri Jun 29 11:24:14 2001// +/out_20_1/1.1/Fri Jun 29 11:24:14 2001// +/out_20_1.mac_cnt/1.1/Fri Jun 29 11:24:14 2001// +/out_20_1.mac_cnt_sil/1.1/Fri Jun 29 11:24:14 2001// +/out_20_1.mac_nocnt_sil/1.1/Fri Jun 29 11:24:14 2001// +/out_20_1.nm_nocnt/1.1/Fri Jun 29 11:24:14 2001// +/out_20_1.nwm_nocnt/1.1/Fri Jun 29 11:24:14 2001// +/out_22_1/1.1/Fri Jun 29 11:24:14 2001// +/out_22_1.mac_nocnt_sil/1.1/Fri Jun 29 11:24:14 2001// +/out_23_1/1.1/Fri Jun 29 11:24:14 2001// +/out_23_1.mac_nocnt_sil/1.1/Fri Jun 29 11:24:14 2001// +/out_25_1/1.1/Fri Jun 29 11:24:14 2001// +/out_25_1.mac_nocnt_sil/1.1/Fri Jun 29 11:24:14 2001// +/par-alloc.c/1.1/Fri Jun 29 11:24:14 2001// +/tree.h/1.1/Fri Jun 29 11:24:14 2001// +/ssplain.c/1.5/Sat Nov 3 05:33:28 2001// +/Makefile/1.6/Fri Nov 9 01:27:01 2001// +/out.orig/1.1/Mon Nov 12 08:08:28 2001// +/testit/1.2/Tue Dec 4 05:07:50 2001// +/.cvsignore/1.9/Fri Oct 4 16:28:44 2002// +/ssplain.h/1.6/Mon Jan 6 23:29:45 2003// +D/old-exe//// diff --git a/test/ccured_olden/treeadd/CVS/Repository b/test/ccured_olden/treeadd/CVS/Repository new file mode 100644 index 0000000..6d2ed23 --- /dev/null +++ b/test/ccured_olden/treeadd/CVS/Repository @@ -0,0 +1 @@ +cil/test/olden/treeadd diff --git a/test/ccured_olden/treeadd/CVS/Root b/test/ccured_olden/treeadd/CVS/Root new file mode 100644 index 0000000..35f411e --- /dev/null +++ b/test/ccured_olden/treeadd/CVS/Root @@ -0,0 +1 @@ +/home/cvs-repository diff --git a/test/ccured_olden/treeadd/HOWTO b/test/ccured_olden/treeadd/HOWTO new file mode 100644 index 0000000..d456a9e --- /dev/null +++ b/test/ccured_olden/treeadd/HOWTO @@ -0,0 +1 @@ +21 1 diff --git a/test/ccured_olden/treeadd/HOWTO.bak b/test/ccured_olden/treeadd/HOWTO.bak new file mode 100644 index 0000000..bfd056e --- /dev/null +++ b/test/ccured_olden/treeadd/HOWTO.bak @@ -0,0 +1 @@ +20 1 diff --git a/test/ccured_olden/treeadd/Makefile b/test/ccured_olden/treeadd/Makefile new file mode 100644 index 0000000..f17f115 --- /dev/null +++ b/test/ccured_olden/treeadd/Makefile @@ -0,0 +1,38 @@ +# /* For copyright information, see olden_v1.0/COPYRIGHT */ + +BINARY = treeadd.exe +FILES = par-alloc node args ssplain + + +OLDENHOME = /tmp/olden + +CC = gcc + +SRC = .c +OBJ = .o +ASM = .s +SRCS = $(addsuffix $(SRC),$(FILES)) +OBJS = $(addsuffix $(OBJ),$(FILES)) +ASMS = $(addsuffix $(ASM),$(FILES)) +INCDIRS = /usr/include + +EXTRA_CDEFS = -DI_TIME -DI_SYS_TIME -DULTRIX +CDEFS = -DPLAIN -DSS_PLAIN #-I$(OLDENHOME)/common +OPTFLAGS = -g -Wall -O3 + +LIBS = -lm +LIBPATH = + +$(BINARY): $(OBJS) + $(CC) $(LDFALGS) $(OPTFLAGS) -o $@ $(OBJS) $(LIBPATH) $(LIBS) + +$(SRC)$(OBJ): + $(CC) $(CDEFS) $(EXTRA_CDEFS) $(MY_CDEFS) $(OPTFLAGS) -c $< + +clean: + rm -f $(BINARY) $(OBJS) $(ASMS) *~ *.light.c + +links: + /bin/rm -f ssplain.[hc] + ln -s $(OLDENHOME)/common/ssplain.h + ln -s $(OLDENHOME)/common/ssplain.c diff --git a/test/ccured_olden/treeadd/Makefile.plain b/test/ccured_olden/treeadd/Makefile.plain new file mode 100644 index 0000000..5083bd7 --- /dev/null +++ b/test/ccured_olden/treeadd/Makefile.plain @@ -0,0 +1,8 @@ +# /* For copyright information, see olden_v1.0/COPYRIGHT */ + +BINARY = treeadd +FILES = par-alloc node args ssplain + +include ../Makefile.plain + + diff --git a/test/ccured_olden/treeadd/Makefile.ss b/test/ccured_olden/treeadd/Makefile.ss new file mode 100644 index 0000000..7d3b7d2 --- /dev/null +++ b/test/ccured_olden/treeadd/Makefile.ss @@ -0,0 +1,10 @@ +# /* For copyright information, see olden_v1.0/COPYRIGHT */ + +BINARY = treeadd +FILES = par-alloc node args ssplain + +MY_CDEFS = -DOLDEN + +include ../Makefile.ss + + diff --git a/test/ccured_olden/treeadd/args.c b/test/ccured_olden/treeadd/args.c new file mode 100644 index 0000000..279f2d1 --- /dev/null +++ b/test/ccured_olden/treeadd/args.c @@ -0,0 +1,47 @@ +/* For copyright information, see olden_v1.0/COPYRIGHT */ + +#ifdef SS_PLAIN +#include "ssplain.h" +#else SS_PLAIN +#include <cm/cmmd.h> +#include <fcntl.h> + +extern int __NumNodes; +#endif SS_PLAIN + +#include "tree.h" + +void filestuff() +{ +#ifndef SS_PLAIN + CMMD_fset_io_mode(stdout, CMMD_independent); + fcntl(fileno(stdout), F_SETFL, O_APPEND); + if (CMMD_self_address()) exit(0); + __InitRegs(0); +#endif SS_PLAIN +} + +int level; +int iters; + +int dealwithargs(int argc, char *argv[]) +{ +#ifndef SS_PLAIN + if (argc > 3) + __NumNodes = atoi(argv[2]); + else + __NumNodes = 4; +#endif SS_PLAIN + + if (argc > 2) + iters = atoi(argv[2]); + else + iters = 1; + + if (argc > 1) + level = atoi(argv[1]); + else + level = 5; + + return level; +} diff --git a/test/ccured_olden/treeadd/node.c b/test/ccured_olden/treeadd/node.c new file mode 100644 index 0000000..1e60913 --- /dev/null +++ b/test/ccured_olden/treeadd/node.c @@ -0,0 +1,74 @@ +/* For copyright information, see olden_v1.0/COPYRIGHT */ + +/* node.c + */ +#include <stdio.h> +#ifdef SS_PLAIN +#include "ssplain.h" +#endif SS_PLAIN + +#include "tree.h" + + +int dealwithargs(int argc, char *argv[]); + +typedef struct { + long level; +} startmsg_t; + +int TreeAdd (/* tree_t *t */); +extern tree_t *TreeAlloc (/* int level */); + +main (int argc, char *argv[]) +{ + tree_t *root; + int i, result = 0; + + filestuff(); + (void)dealwithargs(argc, argv); + + chatting("Treeadd with %d levels\n", level); + + chatting("About to enter TreeAlloc\n"); + root = TreeAlloc (level); + chatting("About to enter TreeAdd\n"); + + for (i = 0; i < iters; i++) + { + fprintf(stderr, "Iteration %d...", i); + result = TreeAdd (root); + fprintf(stderr, "done\n"); + } + + chatting("Received result of %d\n",result); + exit(0); +} + +/* TreeAdd: + */ +int TreeAdd (t) + register tree_t *t; +{ + if (t == NULL) + { + return 0; + } + else + { + int leftval; + int rightval; + tree_t *tleft, *tright; + int value; + + tleft = t->left; + leftval = TreeAdd(tleft); + tright = t->right; + rightval = TreeAdd(tright); + + value = t->val; + return leftval + rightval + value; + } +} /* end of TreeAdd */ + + + diff --git a/test/ccured_olden/treeadd/old-exe/CVS/Entries b/test/ccured_olden/treeadd/old-exe/CVS/Entries new file mode 100644 index 0000000..1784810 --- /dev/null +++ b/test/ccured_olden/treeadd/old-exe/CVS/Entries @@ -0,0 +1 @@ +D diff --git a/test/ccured_olden/treeadd/old-exe/CVS/Repository b/test/ccured_olden/treeadd/old-exe/CVS/Repository new file mode 100644 index 0000000..9518434 --- /dev/null +++ b/test/ccured_olden/treeadd/old-exe/CVS/Repository @@ -0,0 +1 @@ +cil/test/olden/treeadd/old-exe diff --git a/test/ccured_olden/treeadd/old-exe/CVS/Root b/test/ccured_olden/treeadd/old-exe/CVS/Root new file mode 100644 index 0000000..35f411e --- /dev/null +++ b/test/ccured_olden/treeadd/old-exe/CVS/Root @@ -0,0 +1 @@ +/home/cvs-repository diff --git a/test/ccured_olden/treeadd/out.diff b/test/ccured_olden/treeadd/out.diff new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/ccured_olden/treeadd/out.diff diff --git a/test/ccured_olden/treeadd/out.orig b/test/ccured_olden/treeadd/out.orig new file mode 100644 index 0000000..fde5b80 --- /dev/null +++ b/test/ccured_olden/treeadd/out.orig @@ -0,0 +1,5 @@ +Treeadd with 21 levels +About to enter TreeAlloc +About to enter TreeAdd +Iteration 0...done +Received result of 2097151 diff --git a/test/ccured_olden/treeadd/out_20_1 b/test/ccured_olden/treeadd/out_20_1 new file mode 100644 index 0000000..3ece101 --- /dev/null +++ b/test/ccured_olden/treeadd/out_20_1 @@ -0,0 +1,10 @@ +1.83u 0.32s 0:02.28 94.2% + +Treeadd with 20 levels +About to enter TreeAlloc +About to enter TreeAdd +Iteration 0...done +Received result of 1048575 + +1.83u 0.32s 0:02.28 94.2% + diff --git a/test/ccured_olden/treeadd/out_20_1.mac_cnt b/test/ccured_olden/treeadd/out_20_1.mac_cnt new file mode 100644 index 0000000..c71bf72 --- /dev/null +++ b/test/ccured_olden/treeadd/out_20_1.mac_cnt @@ -0,0 +1,28 @@ +58.54u 1.33s 1:00.23 99.4% + +[/usr/include/stdio.h:201.1] WARNING: extern with incomplete type not initialized +[/usr/include/stdio.h:230.1] WARNING: extern with incomplete type not initialized +[/usr/include/stdlib.h:119.1] WARNING: extern with incomplete type not initialized +[/usr/include/stdio.h:201.1] WARNING: extern with incomplete type not initialized +Note: strictPointer mode is OFF +Note: stack grows decreasingly! +Treeadd with 20 levels +About to enter TreeAlloc +About to enter TreeAdd +Iteration 0...done +Received result of 1048575 +Total time: 58.540 u, 1.310 s +Call init functions: 0.000 u, 0.000 s +Process externs: 0.000 u, 0.010 s +Prog_main: 58.530 u, 1.300 s +processReturns : tot 5242883, empty 5242878, common 5 +Macro counts (function counts): +verifyPtr : char 0(0), aggr 0(0), etc 6291452(3145725) +verifyTag : char 0(0), aggr 0(0), etc 19922937(0) + copyTag : char 0(0), aggr 0(0), etc 16777218(3145725) + setScalarTag : char 0(0), etc 11534344(0) +setScalarUninitTag : char 0(0), etc 8388607(0) +processArgTag : scalar 5242883(0) (promo 0), aggr 0(0) + +58.54u 1.33s 1:00.23 99.4% + diff --git a/test/ccured_olden/treeadd/out_20_1.mac_cnt_sil b/test/ccured_olden/treeadd/out_20_1.mac_cnt_sil new file mode 100644 index 0000000..6cc96e0 --- /dev/null +++ b/test/ccured_olden/treeadd/out_20_1.mac_cnt_sil @@ -0,0 +1,22 @@ +58.02u 1.24s 0:59.66 99.3% + +Treeadd with 20 levels +About to enter TreeAlloc +About to enter TreeAdd +Iteration 0...done +Received result of 1048575 +Total time: 58.010 u, 1.230 s +Call init functions: 0.000 u, 0.000 s +Process externs: 0.000 u, 0.000 s +Prog_main: 58.000 u, 1.230 s +processReturns : tot 5242883, empty 5242878, common 5 +Macro counts (function counts): +verifyPtr : char 0(0), aggr 0(0), etc 6291452(3145725) +verifyTag : char 0(0), aggr 0(0), etc 19922937(0) + copyTag : char 0(0), aggr 0(0), etc 16777218(3145725) + setScalarTag : char 0(0), etc 11534344(0) +setScalarUninitTag : char 0(0), etc 8388607(0) +processArgTag : scalar 5242883(0) (promo 0), aggr 0(0) + +58.02u 1.24s 0:59.66 99.3% + diff --git a/test/ccured_olden/treeadd/out_20_1.mac_nocnt_sil b/test/ccured_olden/treeadd/out_20_1.mac_nocnt_sil new file mode 100644 index 0000000..66ea613 --- /dev/null +++ b/test/ccured_olden/treeadd/out_20_1.mac_nocnt_sil @@ -0,0 +1,15 @@ +51.89u 1.42s 0:53.59 99.4% + +Treeadd with 20 levels +About to enter TreeAlloc +About to enter TreeAdd +Iteration 0...done +Received result of 1048575 +Total time: 51.890 u, 1.390 s +Call init functions: 0.000 u, 0.000 s +Process externs: 0.000 u, 0.000 s +Prog_main: 51.880 u, 1.390 s +processReturns : tot 5242883, empty 5242878, common 5 + +51.89u 1.42s 0:53.59 99.4% + diff --git a/test/ccured_olden/treeadd/out_20_1.nm_nocnt b/test/ccured_olden/treeadd/out_20_1.nm_nocnt new file mode 100644 index 0000000..6de580b --- /dev/null +++ b/test/ccured_olden/treeadd/out_20_1.nm_nocnt @@ -0,0 +1,17 @@ +3[/usr/include/stdio.h:201.1] +3[/usr/include/stdio.h:230.1] +3[/usr/include/stdlib.h:119.1] +3[/usr/include/stdio.h:201.1] +Note: strictPointer mode is OFF +Note: stack grows decreasingly! +Treeadd with 20 levels +About to enter TreeAlloc +About to enter TreeAdd +Iteration 0...done +Received result of 1048575 +Total time: 47.640 u, 1.080 s +Call init functions: 0.000 u, 0.000 s +Process externs: 0.000 u, 0.010 s +Prog_main: 47.640 u, 1.060 s +processReturns : tot 5242883, empty 5242878, common 5 +47.64u 1.10s 0:52.27 93.2% diff --git a/test/ccured_olden/treeadd/out_20_1.nwm_nocnt b/test/ccured_olden/treeadd/out_20_1.nwm_nocnt new file mode 100644 index 0000000..c68935f --- /dev/null +++ b/test/ccured_olden/treeadd/out_20_1.nwm_nocnt @@ -0,0 +1,6 @@ +Treeadd with 20 levels +About to enter TreeAlloc +About to enter TreeAdd +Iteration 0...done +Received result of 1048575 +48.41u 1.28s 0:49.87 99.6% diff --git a/test/ccured_olden/treeadd/out_22_1 b/test/ccured_olden/treeadd/out_22_1 new file mode 100644 index 0000000..8a7794d --- /dev/null +++ b/test/ccured_olden/treeadd/out_22_1 @@ -0,0 +1,10 @@ +7.00u 3.06s 0:10.29 97.7% + +Treeadd with 22 levels +About to enter TreeAlloc +About to enter TreeAdd +Iteration 0...done +Received result of 4194303 + +7.00u 3.06s 0:10.29 97.7% + diff --git a/test/ccured_olden/treeadd/out_22_1.mac_nocnt_sil b/test/ccured_olden/treeadd/out_22_1.mac_nocnt_sil new file mode 100644 index 0000000..614d3ac --- /dev/null +++ b/test/ccured_olden/treeadd/out_22_1.mac_nocnt_sil @@ -0,0 +1,15 @@ +208.87u 14.48s 13:01.91 28.5% + +Treeadd with 22 levels +About to enter TreeAlloc +About to enter TreeAdd +Iteration 0...done +Received result of 4194303 +Total time: 208.870 u, 14.430 s +Call init functions: 0.000 u, 0.000 s +Process externs: 0.000 u, 0.000 s +Prog_main: 208.850 u, 14.430 s +processReturns : tot 20971523, empty 20971518, common 5 + +208.87u 14.48s 13:01.91 28.5% + diff --git a/test/ccured_olden/treeadd/out_23_1 b/test/ccured_olden/treeadd/out_23_1 new file mode 100644 index 0000000..bba776e --- /dev/null +++ b/test/ccured_olden/treeadd/out_23_1 @@ -0,0 +1,10 @@ +13.85u 9.47s 0:23.97 97.2% + +Treeadd with 23 levels +About to enter TreeAlloc +About to enter TreeAdd +Iteration 0...done +Received result of 8388607 + +13.85u 9.47s 0:23.97 97.2% + diff --git a/test/ccured_olden/treeadd/out_23_1.mac_nocnt_sil b/test/ccured_olden/treeadd/out_23_1.mac_nocnt_sil new file mode 100644 index 0000000..378b40c --- /dev/null +++ b/test/ccured_olden/treeadd/out_23_1.mac_nocnt_sil @@ -0,0 +1,15 @@ +415.79u 41.59s 25:49.99 29.5% + +Treeadd with 23 levels +About to enter TreeAlloc +About to enter TreeAdd +Iteration 0...done +Received result of 8388607 +Total time: 415.790 u, 41.570 s +Call init functions: 0.000 u, 0.000 s +Process externs: 0.000 u, 0.000 s +Prog_main: 415.780 u, 41.570 s +processReturns : tot 41943043, empty 41943038, common 5 + +415.79u 41.59s 25:49.99 29.5% + diff --git a/test/ccured_olden/treeadd/out_25_1 b/test/ccured_olden/treeadd/out_25_1 new file mode 100644 index 0000000..03a8d49 --- /dev/null +++ b/test/ccured_olden/treeadd/out_25_1 @@ -0,0 +1,8 @@ +Treeadd with 25 levels +About to enter TreeAlloc +About to enter TreeAdd +Iteration 0...done +Received result of 33554431 + +out_25_1: about 5-6 minutes (lost the exact timing) + diff --git a/test/ccured_olden/treeadd/out_25_1.mac_nocnt_sil b/test/ccured_olden/treeadd/out_25_1.mac_nocnt_sil new file mode 100644 index 0000000..a688a08 --- /dev/null +++ b/test/ccured_olden/treeadd/out_25_1.mac_nocnt_sil @@ -0,0 +1,7 @@ +Some output (through starting TreeAlloc), then: + +[1] Segmentation fault treeadd-mac_nocnt_sil.instr 25 1 >& out_25_1.mac_nocnt_sil +656.30u 109.95s 12:55.55 98.8% + +out_25_1: about 5-6 minutes (lost the output) + diff --git a/test/ccured_olden/treeadd/output b/test/ccured_olden/treeadd/output new file mode 100644 index 0000000..fde5b80 --- /dev/null +++ b/test/ccured_olden/treeadd/output @@ -0,0 +1,5 @@ +Treeadd with 21 levels +About to enter TreeAlloc +About to enter TreeAdd +Iteration 0...done +Received result of 2097151 diff --git a/test/ccured_olden/treeadd/par-alloc.c b/test/ccured_olden/treeadd/par-alloc.c new file mode 100644 index 0000000..4749e19 --- /dev/null +++ b/test/ccured_olden/treeadd/par-alloc.c @@ -0,0 +1,33 @@ +/* For copyright information, see olden_v1.0/COPYRIGHT */ + +/* tree-alloc.c + */ + +#ifdef SS_PLAIN +#include "ssplain.h" +#endif SS_PLAIN + +#include "tree.h" + + +tree_t *TreeAlloc (level) + int level; +{ + + if (level == 0) + { + return NULL; + } + else + { + struct tree *new, *right, *left; + + new = (struct tree *) mymalloc(sizeof(tree_t)); + left = TreeAlloc(level-1); + right=TreeAlloc(level-1); + new->val = 1; + new->left = (struct tree *) left; + new->right = (struct tree *) right; + return new; + } +} diff --git a/test/ccured_olden/treeadd/ssplain.c b/test/ccured_olden/treeadd/ssplain.c new file mode 100644 index 0000000..18c8a72 --- /dev/null +++ b/test/ccured_olden/treeadd/ssplain.c @@ -0,0 +1,70 @@ +#include <assert.h> +#include <stdio.h> +#include <stdlib.h> +#include <stdarg.h> +#include <limits.h> +#include <stddef.h> +#include "ssplain.h" + + +void chatting(char *s, ...) +{ + va_list ap; + va_start(ap,s); + vfprintf(stderr, s, ap); + va_end(ap); +} + + +#ifdef SS_RAND +double drand48() +{ + double d; + d = (double) random() / LONG_MAX; + return d; +} + + +long lrand48() +{ + long l = random(); + return l; +} + +void srand48(long seed) +{ + srand(seed); +} +#endif SS_RAND + + +#ifndef BEFOREBOX +static unsigned long bytes_allocated = 0; +static unsigned long allocations = 0; + +void* +ssplain_malloc(int size) +{ + allocations++; + bytes_allocated+=size; + return malloc(size); +} + +void* +ssplain_calloc(int nelems, int size) +{ + void *p; + allocations++; + bytes_allocated+= nelems * size; + p = calloc(nelems, size); + if(! p) { printf("Cannot allocate\n"); exit(3); } + return p; +} + +void +ssplain_alloc_stats() +{ + chatting("Allocation stats: %d bytes allocated in %d allocations\n", + bytes_allocated, allocations); +} +#endif diff --git a/test/ccured_olden/treeadd/ssplain.h b/test/ccured_olden/treeadd/ssplain.h new file mode 100644 index 0000000..865fbf4 --- /dev/null +++ b/test/ccured_olden/treeadd/ssplain.h @@ -0,0 +1,128 @@ +#ifndef SS_PLAIN_H +#define SS_PLAIN_H + +void * ssplain_malloc(int size); +void * ssplain_calloc(int nelems, int size); +void ssplain_alloc_stats(); + +/* Convert MP shutdown to exit */ +#define __ShutDown(ID) { ssplain_alloc_stats(); exit(ID); } + +/* All these CM-5 things are nops */ +#define CMMD_node_timer_clear(ID) +#define CMMD_node_timer_start(ID) +#define CMMD_node_timer_stop(ID) +#define CMMD_node_timer_elapsed(ID) ((double)0) + +#define CMMD_self_address() 0 + +#define ClearAllStats() + +/* define away the CM-5 allocator */ +#include <stdlib.h> + +#ifndef ALLOC +#define ALLOC(NUM,ESIZE) ssplain_calloc (NUM+1,ESIZE) +#endif ALLOC + +#ifndef mymalloc +#define mymalloc malloc +#endif mymalloc + +/* Get all of these multiprocessing things out of here. */ +/* My id will stay that way */ +#define IDMASK 0xffffffff + +/* Nothing is getting tested */ +#ifndef RETEST +#define RETEST() +#endif RETEST + +#ifndef NOTEST +#define NOTEST() +#endif NOTEST + +/* Everything is local */ +#ifndef local +#define local +#endif local + +#ifndef LOCAL +#define LOCAL(VAL) (VAL) +#endif LOCAL + +#ifndef ISLOCPTR +#define ISLOCPTR(VAL) (1) +#endif ISLOCPTR + +#ifndef MLOCAL +#define MLOCAL(VAL) +#endif MLOCAL + +/* An atomic increment is a normal increment */ +#ifndef ATOMICINC +#define ATOMICINC(PVAL) (*(PVAL) = *(PVAL) + 1) +#endif ATOMICINC + +/* Nothing is migrating anywhere */ +#ifndef MIGRATE +#define MIGRATE(ID) +#endif MIGRATE + +#ifndef MIGRPH +#define MIGRPH() +#endif MIGRPH + +#ifndef UNPHASE +#define UNPHASE() +#endif UNPHASE + +#ifndef PID +#define PID(VAL) (0) +#endif PID + +/* All these functions */ +#pragma ccuredvararg("chatting", printf(1)) +void chatting(char *s, ...); + +/* just define these guys, they are not going to change */ +#define __NumNodes 1 +#define __MyNodeId 0 +#define __NDim 0 + +typedef struct ss_future_cell_int { + int value; +} future_cell_int; + +/* Where are these things for real? */ +#ifdef SS_RAND +long lrand48(); +double drand48(); +void srand48(long seed); +#endif SS_RAND + +#define MOD(V,M) ((V) & ((M) - 1)) +#define INC_MOD(V,M) (V) = MOD((V) + 1, (M)) + +/* Prefetch instructions */ + +/* Use these for 1 lookahead prefetching */ + +#ifdef OVERHEAD_ONLY +#define ASSEMBLE_PREFETCH(ARG) +#define ASSEMBLE_PREFETCH_HEAD(ARG) +#else !OVERHEAD_ONLY + +#define ASSEMBLE_PREFETCH(ARG) \ + asm ("lw $0, %0" : /* no outputs */ : "g" (ARG)) + +/* Use these for infinite lookahead prefetching */ +#define ASSEMBLE_PREFETCH_HEAD(ARG) \ + asm ("lh $0, %0" : /* no outputs */ : "g" (ARG)) + +#endif OVERHEAD_ONLY + +#endif SS_PLAIN_H + + + diff --git a/test/ccured_olden/treeadd/testit b/test/ccured_olden/treeadd/testit new file mode 100755 index 0000000..031c54b --- /dev/null +++ b/test/ccured_olden/treeadd/testit @@ -0,0 +1,22 @@ +#!/bin/sh +# test a treeadd binary + +if [ "$1" = "" ]; then + echo "usage: $0 ./treeadd.exe" + exit +fi + +# all of treeadd's output is to stderr +echo "running: $1 21 1 2>output" +if ! $1 21 1 2>output; then + echo "$1 failed directly" + exit 2 +fi + +if ! diff out.orig output >out.diff; then + echo "$1 got the wrong answer. See out.diff" + exit 4 +else + echo "$1 seems to work" +fi +
\ No newline at end of file diff --git a/test/ccured_olden/treeadd/tree.h b/test/ccured_olden/treeadd/tree.h new file mode 100644 index 0000000..39b141d --- /dev/null +++ b/test/ccured_olden/treeadd/tree.h @@ -0,0 +1,18 @@ +/* For copyright information, see olden_v1.0/COPYRIGHT */ + +/* tree.h + */ + +typedef struct tree { + int val; + struct tree *left, *right; +} tree_t; + +#ifndef SS_PLAIN +#define NULL 0 +#endif SS_PLAIN + +extern tree_t *TreeAlloc (/*int level*/); + +extern int level; +extern int iters; |