Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SymTab/Validate.cc

    r7e08acf r7abee38  
    4949#include "CodeGen/OperatorTable.h"     // for isCtorDtor, isCtorDtorAssign
    5050#include "ControlStruct/Mutate.h"      // for ForExprMutator
     51#include "Common/Stats.h"              // for Stats::Heap
    5152#include "Common/PassVisitor.h"        // for PassVisitor, WithDeclsToAdd
    5253#include "Common/ScopedMap.h"          // for ScopedMap
     
    303304                PassVisitor<FixQualifiedTypes> fixQual;
    304305
     306                Stats::Heap::newPass("validate-A");
    305307                acceptAll( translationUnit, hoistDecls );
    306308                ReplaceTypedef::replaceTypedef( translationUnit );
    307309                ReturnTypeFixer::fix( translationUnit ); // must happen before autogen
    308310                acceptAll( translationUnit, epc ); // must happen before VerifyCtorDtorAssign, because void return objects should not exist; before LinkReferenceToTypes because it is an indexer and needs correct types for mangling
     311                Stats::Heap::newPass("validate-B");
    309312                acceptAll( translationUnit, lrt ); // must happen before autogen, because sized flag needs to propagate to generated functions
    310313                mutateAll( translationUnit, fixQual ); // must happen after LinkReferenceToTypes, because aggregate members are accessed
    311314                HoistStruct::hoistStruct( translationUnit ); // must happen after EliminateTypedef, so that aggregate typedefs occur in the correct order
    312315                EliminateTypedef::eliminateTypedef( translationUnit ); //
     316                Stats::Heap::newPass("validate-C");
    313317                acceptAll( translationUnit, genericParams );  // check as early as possible - can't happen before LinkReferenceToTypes
    314318                VerifyCtorDtorAssign::verify( translationUnit );  // must happen before autogen, because autogen examines existing ctor/dtors
    315319                ReturnChecker::checkFunctionReturns( translationUnit );
    316320                InitTweak::fixReturnStatements( translationUnit ); // must happen before autogen
     321                Stats::Heap::newPass("validate-D");
    317322                Concurrency::applyKeywords( translationUnit );
    318323                acceptAll( translationUnit, fpd ); // must happen before autogenerateRoutines, after Concurrency::applyKeywords because uniqueIds must be set on declaration before resolution
    319324                ControlStruct::hoistControlDecls( translationUnit );  // hoist initialization out of for statements; must happen before autogenerateRoutines
    320325                autogenerateRoutines( translationUnit ); // moved up, used to be below compoundLiteral - currently needs EnumAndPointerDecay
     326                Stats::Heap::newPass("validate-E");
    321327                Concurrency::implementMutexFuncs( translationUnit );
    322328                Concurrency::implementThreadStarter( translationUnit );
    323329                mutateAll( translationUnit, compoundliteral );
    324330                ResolvExpr::resolveWithExprs( translationUnit ); // must happen before FixObjectType because user-code is resolved and may contain with variables
     331                Stats::Heap::newPass("validate-F");
    325332                FixObjectType::fix( translationUnit );
    326333                ArrayLength::computeLength( translationUnit );
Note: See TracChangeset for help on using the changeset viewer.