Ignore:
Timestamp:
Mar 8, 2018, 1:37:46 PM (7 years ago)
Author:
Aaron Moss <a3moss@…>
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
Message:

Update all benchmarks to match new CFA

File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/papers/general/evaluation/c-bench.c

    rf1f8e55 rfb2ce27  
    55#include "c-stack.h"
    66
    7 _Bool* new_bool( _Bool b ) {
    8         _Bool* q = malloc(sizeof(_Bool)); /***/
    9         *q = b;
     7char* new_char( char c ) {
     8        char* q = malloc(sizeof(char)); /***/
     9        *q = c;
    1010        return q;
    1111}
    1212
    13 char* new_char( char c ) {
    14         char* q = malloc(sizeof(char)); /***/
    15         *q = c;
     13short* new_short( short s ) {
     14        short* q = malloc(sizeof(short)); /***/
     15        *q = s;
    1616        return q;
    1717}
     
    2323}
    2424
    25 void* copy_bool( const void* p ) { return new_bool( *(const _Bool*)p ); } /***/
    2625void* copy_char( const void* p ) { return new_char( *(const char*)p ); } /***/
     26void* copy_short( const void* p ) { return new_short( *(const short*)p ); } /***/
    2727void* 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 }
     28void* copy_pair_short_char( const void* p ) { return copy_pair( p, copy_short, copy_char ); } /***/
     29void free_pair_short_char( void* p ) { free_pair( p, free, free ); } /***/
    3430
    3531int cmp_char( const void* a, const void* b ) { /***/
    3632        return *(const char*)a == *(const char*)b ? 0 : *(const char*)a < *(const char*)b ? -1 : 1;
     33}
     34
     35int 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;
    3737}
    3838
     
    4949                free(xi); )
    5050
    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') );
    5353        struct stack sp = new_stack(), tp;
    5454
    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 ); /***/ )
    5858        REPEAT_TIMED( "pop_pair", N,
    5959                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 ); /***/
    6262                        maxp = xp;
    6363                } else {
    64                         free_pair_bool_char( xp ); /***/
     64                        free_pair_short_char( xp ); /***/
    6565                } )
    66         free_pair_bool_char( maxp ); /***/
    67         free_pair_bool_char( valp ); /***/
     66        free_pair_short_char( maxp ); /***/
     67        free_pair_short_char( valp ); /***/
    6868}
Note: See TracChangeset for help on using the changeset viewer.