Changeset fb2ce27 for doc/papers/general/evaluation/c-bench.c
- Timestamp:
- Mar 8, 2018, 1:37:46 PM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 28bc8c8
- Parents:
- f1f8e55
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/papers/general/evaluation/c-bench.c
rf1f8e55 rfb2ce27 5 5 #include "c-stack.h" 6 6 7 _Bool* new_bool( _Bool b) {8 _Bool* q = malloc(sizeof(_Bool)); /***/9 *q = b;7 char* new_char( char c ) { 8 char* q = malloc(sizeof(char)); /***/ 9 *q = c; 10 10 return q; 11 11 } 12 12 13 char* new_char( char c) {14 char* q = malloc(sizeof(char)); /***/15 *q = c;13 short* new_short( short s ) { 14 short* q = malloc(sizeof(short)); /***/ 15 *q = s; 16 16 return q; 17 17 } … … 23 23 } 24 24 25 void* copy_bool( const void* p ) { return new_bool( *(const _Bool*)p ); } /***/26 25 void* copy_char( const void* p ) { return new_char( *(const char*)p ); } /***/ 26 void* copy_short( const void* p ) { return new_short( *(const short*)p ); } /***/ 27 27 void* copy_int( const void* p ) { return new_int( *(const int*)p ); } /***/ 28 void* copy_pair_bool_char( const void* p ) { return copy_pair( p, copy_bool, copy_char ); } /***/ 29 void free_pair_bool_char( void* p ) { free_pair( p, free, free ); } /***/ 30 31 int cmp_bool( const void* a, const void* b ) { /***/ 32 return *(const _Bool*)a == *(const _Bool*)b ? 0 : *(const _Bool*)a < *(const _Bool*)b ? -1 : 1; 33 } 28 void* copy_pair_short_char( const void* p ) { return copy_pair( p, copy_short, copy_char ); } /***/ 29 void free_pair_short_char( void* p ) { free_pair( p, free, free ); } /***/ 34 30 35 31 int cmp_char( const void* a, const void* b ) { /***/ 36 32 return *(const char*)a == *(const char*)b ? 0 : *(const char*)a < *(const char*)b ? -1 : 1; 33 } 34 35 int cmp_short( const void* a, const void* b ) { /***/ 36 return *(const short*)a == *(const short*)b ? 0 : *(const short*)a < *(const short*)b ? -1 : 1; 37 37 } 38 38 … … 49 49 free(xi); ) 50 50 51 struct pair * maxp = new_pair( new_ bool(0), new_char('\0') ),52 * valp = new_pair( new_ bool(1), new_char('a') );51 struct pair * maxp = new_pair( new_short(0), new_char('\0') ), 52 * valp = new_pair( new_short(42), new_char('a') ); 53 53 struct stack sp = new_stack(), tp; 54 54 55 REPEAT_TIMED( "push_pair", N, push_stack( &sp, copy_pair_ bool_char( valp ) ); )56 TIMED( "copy_pair", copy_stack( &tp, &sp, copy_pair_ bool_char ); /***/ )57 TIMED( "clear_pair", clear_stack( &sp, free_pair_ bool_char ); /***/ )55 REPEAT_TIMED( "push_pair", N, push_stack( &sp, copy_pair_short_char( valp ) ); ) 56 TIMED( "copy_pair", copy_stack( &tp, &sp, copy_pair_short_char ); /***/ ) 57 TIMED( "clear_pair", clear_stack( &sp, free_pair_short_char ); /***/ ) 58 58 REPEAT_TIMED( "pop_pair", N, 59 59 struct pair * xp = pop_stack( &tp ); 60 if ( cmp_pair( xp, maxp, cmp_ bool, cmp_char /***/ ) > 0 ) {61 free_pair_ bool_char( maxp ); /***/60 if ( cmp_pair( xp, maxp, cmp_short, cmp_char /***/ ) > 0 ) { 61 free_pair_short_char( maxp ); /***/ 62 62 maxp = xp; 63 63 } else { 64 free_pair_ bool_char( xp ); /***/64 free_pair_short_char( xp ); /***/ 65 65 } ) 66 free_pair_ bool_char( maxp ); /***/67 free_pair_ bool_char( valp ); /***/66 free_pair_short_char( maxp ); /***/ 67 free_pair_short_char( valp ); /***/ 68 68 }
Note: See TracChangeset
for help on using the changeset viewer.