Changeset 4f97937


Ignore:
Timestamp:
Mar 4, 2019, 3:52:46 PM (3 years ago)
Author:
tdelisle <tdelisle@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, persistent-indexer
Children:
79eaeb7
Parents:
1bb9a9a
Message:

First draft at timing results, left is better printing and more data

Location:
src
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • src/Common/Stats/Base.h

    r1bb9a9a r4f97937  
    1616#pragma once
    1717
     18#include <cstdint>
     19#include <iostream>
     20
    1821namespace Stats {
    1922        namespace Base {
     
    2831
    2932                template<typename func_t>
    30                 void ForAll(TreeTop & range, size_t level, func_t func, bool destroy = false);
     33                void ForAll(TreeTop & range, std::size_t level, func_t func, bool destroy = false);
    3134
    3235                class TreeImpl {
     
    4649
    4750                        template<typename func_t>
    48                         friend void ForAll(TreeTop & range, size_t level, func_t func, bool destroy);
     51                        friend void ForAll(TreeTop & range, std::size_t level, func_t func, bool destroy);
    4952                };
    5053
     
    5659
    5760                template<typename func_t>
    58                 inline void ForAll(TreeTop & range, size_t level, func_t func, bool destroy) {
     61                inline void ForAll(TreeTop & range, std::size_t level, func_t func, bool destroy) {
    5962                        auto it = range.head;
    6063                        while(it) {
  • src/Common/Stats/Stats.cc

    r1bb9a9a r4f97937  
    3232        namespace Time {
    3333                bool enabled = false;
    34                 void print() {}
     34                void print();
    3535        }
    3636
  • src/Common/Stats/Time.h

    r1bb9a9a r4f97937  
    1818#include "Common/Stats/Base.h"
    1919
     20#if defined( NO_STATISTICS )
     21        #define NO_TIME_STATISTICS
     22#endif
     23
    2024namespace Stats {
    2125        namespace Time {
    22                 void StartBlock(const char * const name);
    23                 void StopBlock();
     26#               if defined(NO_TIME_STATISTICS)
     27                        inline void StartBlock(const char * const) {}
     28                        inline void StopBlock() {}
    2429
    25                 void print();
     30                        inline void print() {}
    2631
    27                 struct BlockGuard {
    28                         BlockGuard(const char * const name ) { StartBlock(name); }
    29                         ~BlockGuard() { StopBlock(); }
    30                 };
     32                        struct BlockGuard {
     33                                BlockGuard(const char * const) {}
     34                                ~BlockGuard() {}
     35                        };
    3136
    32                 template<typename func_t>
    33                 void TimeBLock(const char * name, func_t func) {
    34                         BlockGuard guard(name);
    35                         func();
    36                 }
     37                        template<typename func_t>
     38                        inline void TimeBLock(const char *, func_t) {}
     39#               else
     40                        void StartBlock(const char * const name);
     41                        void StopBlock();
     42
     43                        void print();
     44
     45                        struct BlockGuard {
     46                                BlockGuard(const char * const name ) { StartBlock(name); }
     47                                ~BlockGuard() { StopBlock(); }
     48                        };
     49
     50                        template<typename func_t>
     51                        inline void TimeBLock(const char * name, func_t func) {
     52                                BlockGuard guard(name);
     53                                func();
     54                        }
     55#               endif
    3756        }
    3857}
  • src/Common/module.mk

    r1bb9a9a r4f97937  
    2323      Common/Stats/Heap.cc \
    2424      Common/Stats/Stats.cc \
     25      Common/Stats/Time.cc \
    2526      Common/UniqueName.cc
    2627
  • src/Makefile.in

    r1bb9a9a r4f97937  
    168168        Common/PassVisitor.$(OBJEXT) Common/SemanticError.$(OBJEXT) \
    169169        Common/Stats/Counter.$(OBJEXT) Common/Stats/Heap.$(OBJEXT) \
    170         Common/Stats/Stats.$(OBJEXT) Common/UniqueName.$(OBJEXT)
     170        Common/Stats/Stats.$(OBJEXT) Common/Stats/Time.$(OBJEXT) \
     171        Common/UniqueName.$(OBJEXT)
    171172am__objects_3 = ControlStruct/ForExprMutator.$(OBJEXT) \
    172173        ControlStruct/LabelFixer.$(OBJEXT) \
     
    567568      Common/Stats/Heap.cc \
    568569      Common/Stats/Stats.cc \
     570      Common/Stats/Time.cc \
    569571      Common/UniqueName.cc
    570572
     
    741743        Common/Stats/$(DEPDIR)/$(am__dirstamp)
    742744Common/Stats/Stats.$(OBJEXT): Common/Stats/$(am__dirstamp) \
     745        Common/Stats/$(DEPDIR)/$(am__dirstamp)
     746Common/Stats/Time.$(OBJEXT): Common/Stats/$(am__dirstamp) \
    743747        Common/Stats/$(DEPDIR)/$(am__dirstamp)
    744748Common/UniqueName.$(OBJEXT): Common/$(am__dirstamp) \
     
    11281132@AMDEP_TRUE@@am__include@ @am__quote@Common/Stats/$(DEPDIR)/Heap.Po@am__quote@
    11291133@AMDEP_TRUE@@am__include@ @am__quote@Common/Stats/$(DEPDIR)/Stats.Po@am__quote@
     1134@AMDEP_TRUE@@am__include@ @am__quote@Common/Stats/$(DEPDIR)/Time.Po@am__quote@
    11301135@AMDEP_TRUE@@am__include@ @am__quote@Concurrency/$(DEPDIR)/Keywords.Po@am__quote@
    11311136@AMDEP_TRUE@@am__include@ @am__quote@Concurrency/$(DEPDIR)/Waitfor.Po@am__quote@
  • src/main.cc

    r1bb9a9a r4f97937  
    7979        if ( errorp ) { cerr << name << endl; } \
    8080        NewPass(name);                          \
    81         pass;
     81        Stats::Time::StartBlock(name);          \
     82        pass;                                   \
     83        Stats::Time::StopBlock();
    8284
    8385LinkageSpec::Spec linkage = LinkageSpec::Cforall;
Note: See TracChangeset for help on using the changeset viewer.