Changes in src/SymTab/Indexer.cc [79de2210:ed34540]
- File:
-
- 1 edited
-
src/SymTab/Indexer.cc (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/Indexer.cc
r79de2210 red34540 26 26 #include "Common/SemanticError.h" // for SemanticError 27 27 #include "Common/utility.h" // for cloneAll 28 #include "Common/Stats/Counter.h" // for counters29 28 #include "GenPoly/GenPoly.h" 30 29 #include "InitTweak/InitTweak.h" // for isConstructor, isCopyFunction, isC... … … 42 41 43 42 namespace SymTab { 44 45 // Statistics block46 namespace {47 auto idtable_group = new Stats::Counters::CounterGroup("IdTable");48 auto idtable_find = new Stats::Counters::SimpleCounter("Find calls", idtable_group);49 auto idtable_size = new Stats::Counters::AverageCounter<double>("Average Size", idtable_group);50 auto idtable_key = new Stats::Counters::AverageCounter<double>("Average Key Size", idtable_group);51 52 auto indexers_group = new Stats::Counters::CounterGroup("Indexers");53 auto indexers_count = new Stats::Counters::SimpleCounter("Count", indexers_group);54 auto indexers_size = new Stats::Counters::AverageCounter<double>("Average Size", indexers_group);55 auto indexers_depth_a = new Stats::Counters::AverageCounter<double>("Average Depth", indexers_group);56 auto indexers_depth_m = new Stats::Counters::MaxCounter<size_t>("Max Depth", indexers_group);57 }58 59 43 std::ostream & operator<<( std::ostream & out, const Indexer::IdData & data ) { 60 44 return out << "(" << data.id << "," << data.baseExpr << ")"; … … 213 197 } 214 198 215 Indexer::Indexer() : tables( 0 ), scope( 0 ) { 216 (*indexers_count)++; 217 } 218 219 Indexer::Indexer( const Indexer &that ) : doDebug( that.doDebug ), tables( newRef( that.tables ) ), scope( that.scope ) { 220 (*indexers_count)++; 221 } 199 Indexer::Indexer() : tables( 0 ), scope( 0 ) {} 200 201 Indexer::Indexer( const Indexer &that ) : doDebug( that.doDebug ), tables( newRef( that.tables ) ), scope( that.scope ) {} 222 202 223 203 Indexer::Indexer( Indexer &&that ) : doDebug( that.doDebug ), tables( that.tables ), scope( that.scope ) { … … 226 206 227 207 Indexer::~Indexer() { 228 if(tables) {229 indexers_size->push( tables->idTable.size() );230 size_t depth = 1;231 for( auto crnt = tables->base.tables; crnt; crnt = crnt->base.tables ) {232 ++depth;233 }234 indexers_depth_a->push( depth );235 indexers_depth_m->push( depth );236 }237 208 deleteRef( tables ); 238 209 } … … 266 237 while ( searchTables ) { 267 238 268 (*idtable_find)++;269 idtable_key->push( id.size() );270 idtable_size->push( searchTables->idTable.size() );271 239 IdTable::const_iterator decls = searchTables->idTable.find( id ); 272 240 if ( decls != searchTables->idTable.end() ) { … … 345 313 if ( tables->scope < scope ) return nullptr; 346 314 347 (*idtable_find)++;348 idtable_key->push( id.size() );349 idtable_size->push( tables->idTable.size() );350 315 IdTable::const_iterator decls = tables->idTable.find( id ); 351 316 if ( decls != tables->idTable.end() ) { … … 366 331 if ( tables->scope < scope ) return false; 367 332 368 (*idtable_find)++;369 idtable_key->push( id.size() );370 idtable_size->push( tables->idTable.size() );371 333 IdTable::const_iterator decls = tables->idTable.find( id ); 372 334 if ( decls != tables->idTable.end() ) { … … 385 347 if ( tables->scope < scope ) return false; 386 348 387 (*idtable_find)++;388 idtable_key->push( id.size() );389 idtable_size->push( tables->idTable.size() );390 349 IdTable::const_iterator decls = tables->idTable.find( id ); 391 350 if ( decls != tables->idTable.end() ) {
Note:
See TracChangeset
for help on using the changeset viewer.