Changeset ebcc940


Ignore:
Timestamp:
Feb 28, 2019, 4:13:15 PM (6 years ago)
Author:
tdelisle <tdelisle@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, persistent-indexer, pthread-emulation, qualifiedEnum
Children:
351c519
Parents:
be30a90
Message:

Added --stats flag to enable statistics

Location:
src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • src/CompilationState.cc

    rbe30a90 rebcc940  
    3838        codegenp = false,
    3939        prettycodegenp = false,
    40         linemarks = false;
     40        linemarks = false,
     41        stats_heap = false,
     42        stats_counters = false;
    4143
    4244// Local Variables: //
  • src/CompilationState.h

    rbe30a90 rebcc940  
    3939        codegenp,
    4040        prettycodegenp,
    41         linemarks;
     41        linemarks,
     42        stats_heap,
     43        stats_counters;
    4244
    4345// is the compiler building prelude or libcfa?
  • src/main.cc

    rbe30a90 rebcc940  
    378378        deleteAll( translationUnit );
    379379        if(!libcfap && !treep) {
    380                 Stats::Counters::print();
    381                 Stats::Heap::print();
     380                if(stats_counters) Stats::Counters::print();
     381                if(stats_heap) Stats::Heap::print();
    382382        }
    383383
     
    386386
    387387void parse_cmdline( int argc, char * argv[], const char *& filename ) {
    388         enum { Ast, Bbox, Bresolver, CtorInitFix, DeclStats, Expr, ExprAlt, Grammar, LibCFA, Linemarks, Nolinemarks, Nopreamble, Parse, PreludeDir, Prototypes, Resolver, ResolvProto, Symbol, Tree, TupleExpansion, Validate, };
     388        enum { Ast, Bbox, Bresolver, CtorInitFix, DeclStats, Expr, ExprAlt, Grammar, LibCFA, Linemarks, Nolinemarks, Nopreamble, Parse, PreludeDir, Prototypes, Resolver, ResolvProto, Stats, Symbol, Tree, TupleExpansion, Validate};
    389389
    390390        static struct option long_opts[] = {
     
    406406                { "resolver", no_argument, 0, Resolver },
    407407                { "resolv-proto", no_argument, 0, ResolvProto },
     408                { "stats", required_argument, 0, Stats },
    408409                { "symbol", no_argument, 0, Symbol },
    409410                { "tree", no_argument, 0, Tree },
     
    493494                  case 'R':                                                                             // dump resolv-proto instance
    494495                        resolvprotop = true;
     496                        break;
     497                  case Stats:
     498                        {
     499                                std::stringstream ss(optarg);
     500                                while(ss.good()) {
     501                                        std::string substr;
     502                                        getline( ss, substr, ',' );
     503                                        if(substr == "counters") {
     504                                                stats_counters = true;
     505                                        } else if(substr == "heap") {
     506                                                stats_heap = true;
     507                                        } else if(substr == "none") {
     508                                                stats_counters = false;
     509                                                stats_heap = false;
     510                                        } else {
     511                                                std::cerr << "Ignoring unknown statistic " << substr << std::endl;
     512                                        }
     513                                }
     514
     515                        }
    495516                        break;
    496517                  case Symbol:
Note: See TracChangeset for help on using the changeset viewer.