Index: src/SymTab/ManglerCommon.cc
===================================================================
--- src/SymTab/ManglerCommon.cc	(revision ada45751af7e9dc611837c36dfe404dc3c5e4b52)
+++ src/SymTab/ManglerCommon.cc	(revision 7abee383f06a7fe5690784e7676edcdf68ff7660)
@@ -24,5 +24,5 @@
 
 			// GENERATED START, DO NOT EDIT
-			// GENERATED BY BasicTypes-gen.cc
+			// GENERATED BY ../../main/src/BasicTypes-gen.cc
 			// NOTES ON MANGLING:
 			// * Itanium spec says that Float80 encodes to "e" (like LongDouble), but the distinct lengths cause resolution problems.
Index: src/SymTab/Validate.cc
===================================================================
--- src/SymTab/Validate.cc	(revision ada45751af7e9dc611837c36dfe404dc3c5e4b52)
+++ src/SymTab/Validate.cc	(revision 7abee383f06a7fe5690784e7676edcdf68ff7660)
@@ -49,4 +49,5 @@
 #include "CodeGen/OperatorTable.h"     // for isCtorDtor, isCtorDtorAssign
 #include "ControlStruct/Mutate.h"      // for ForExprMutator
+#include "Common/Stats.h"              // for Stats::Heap
 #include "Common/PassVisitor.h"        // for PassVisitor, WithDeclsToAdd
 #include "Common/ScopedMap.h"          // for ScopedMap
@@ -303,24 +304,30 @@
 		PassVisitor<FixQualifiedTypes> fixQual;
 
+		Stats::Heap::newPass("validate-A");
 		acceptAll( translationUnit, hoistDecls );
 		ReplaceTypedef::replaceTypedef( translationUnit );
 		ReturnTypeFixer::fix( translationUnit ); // must happen before autogen
 		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
+		Stats::Heap::newPass("validate-B");
 		acceptAll( translationUnit, lrt ); // must happen before autogen, because sized flag needs to propagate to generated functions
 		mutateAll( translationUnit, fixQual ); // must happen after LinkReferenceToTypes, because aggregate members are accessed
 		HoistStruct::hoistStruct( translationUnit ); // must happen after EliminateTypedef, so that aggregate typedefs occur in the correct order
 		EliminateTypedef::eliminateTypedef( translationUnit ); //
+		Stats::Heap::newPass("validate-C");
 		acceptAll( translationUnit, genericParams );  // check as early as possible - can't happen before LinkReferenceToTypes
 		VerifyCtorDtorAssign::verify( translationUnit );  // must happen before autogen, because autogen examines existing ctor/dtors
 		ReturnChecker::checkFunctionReturns( translationUnit );
 		InitTweak::fixReturnStatements( translationUnit ); // must happen before autogen
+		Stats::Heap::newPass("validate-D");
 		Concurrency::applyKeywords( translationUnit );
 		acceptAll( translationUnit, fpd ); // must happen before autogenerateRoutines, after Concurrency::applyKeywords because uniqueIds must be set on declaration before resolution
 		ControlStruct::hoistControlDecls( translationUnit );  // hoist initialization out of for statements; must happen before autogenerateRoutines
 		autogenerateRoutines( translationUnit ); // moved up, used to be below compoundLiteral - currently needs EnumAndPointerDecay
+		Stats::Heap::newPass("validate-E");
 		Concurrency::implementMutexFuncs( translationUnit );
 		Concurrency::implementThreadStarter( translationUnit );
 		mutateAll( translationUnit, compoundliteral );
 		ResolvExpr::resolveWithExprs( translationUnit ); // must happen before FixObjectType because user-code is resolved and may contain with variables
+		Stats::Heap::newPass("validate-F");
 		FixObjectType::fix( translationUnit );
 		ArrayLength::computeLength( translationUnit );
Index: src/SymTab/module.mk
===================================================================
--- src/SymTab/module.mk	(revision ada45751af7e9dc611837c36dfe404dc3c5e4b52)
+++ src/SymTab/module.mk	(revision 7abee383f06a7fe5690784e7676edcdf68ff7660)
@@ -15,8 +15,12 @@
 ###############################################################################
 
-SRC += SymTab/Indexer.cc \
-       SymTab/Mangler.cc \
-       SymTab/ManglerCommon.cc \
-       SymTab/Validate.cc \
-       SymTab/FixFunction.cc \
-       SymTab/Autogen.cc
+SRC_SYMTAB = \
+      SymTab/Autogen.cc \
+      SymTab/FixFunction.cc \
+      SymTab/Indexer.cc \
+      SymTab/Mangler.cc \
+      SymTab/ManglerCommon.cc \
+      SymTab/Validate.cc
+
+SRC += $(SRC_SYMTAB)
+SRCDEMANGLE += $(SRC_SYMTAB) SymTab/Demangle.cc
