Index: src/SymTab/Autogen.cc
===================================================================
--- src/SymTab/Autogen.cc	(revision c3acf0aa1a98c341d809549a8b1cdf752abbea06)
+++ src/SymTab/Autogen.cc	(revision d180746e9c094bb8a0500bb2383c1d5d8616da38)
@@ -15,26 +15,15 @@
 #include "Autogen.h"
 
-#include <cstddef>                 // for NULL
-#include <algorithm>               // for count_if
-#include <cassert>                 // for safe_dynamic_cast, assert, assertf
-#include <iterator>                // for back_insert_iterator, back_inserter
-#include <list>                    // for list, _List_iterator, list<>::iter...
-#include <set>                     // for set, _Rb_tree_const_iterator
-#include <utility>                 // for pair
-#include <vector>                  // for vector
-
-#include "AddVisit.h"              // for addVisit
-#include "Common/ScopedMap.h"      // for ScopedMap<>::const_iterator, Scope...
-#include "Common/SemanticError.h"  // for SemanticError
-#include "Common/utility.h"        // for cloneAll, operator+
-#include "GenPoly/DeclMutator.h"   // for DeclMutator
-#include "GenPoly/ScopedSet.h"     // for ScopedSet, ScopedSet<>::iterator
-#include "SymTab/Mangler.h"        // for Mangler
-#include "SynTree/Mutator.h"       // for maybeMutate
-#include "SynTree/Statement.h"     // for CompoundStmt, ReturnStmt, ExprStmt
-#include "SynTree/Type.h"          // for FunctionType, Type, TypeInstType
-#include "SynTree/Visitor.h"       // for maybeAccept, Visitor, acceptAll
-
-class Attribute;
+#include <cassert>                // for assert, assertf
+#include <cstddef>                // for NULL
+
+#include "AddVisit.h"             // for addVisit
+#include "Common/ScopedMap.h"     // for ScopedMap
+#include "GenPoly/DeclMutator.h"  // for DeclMutator
+#include "GenPoly/ScopedSet.h"    // for ScopedSet
+#include "Parser/LinkageSpec.h"   // for AutoGen, Intrinsic, Spec
+#include "SynTree/Statement.h"    // for SwitchStmt (ptr only), CompoundStmt
+#include "SynTree/Type.h"         // for Type, ArrayType, Type::StorageClasses
+#include "SynTree/Visitor.h"      // for Visitor
 
 namespace SymTab {
Index: src/SymTab/Autogen.h
===================================================================
--- src/SymTab/Autogen.h	(revision c3acf0aa1a98c341d809549a8b1cdf752abbea06)
+++ src/SymTab/Autogen.h	(revision d180746e9c094bb8a0500bb2383c1d5d8616da38)
@@ -17,18 +17,15 @@
 
 #include <cassert>                // for assert
-#include <iterator>               // for back_insert_iterator, back_inserter
-#include <list>                   // for list
-#include <string>                 // for string, operator==
+#include <string>                 // for string
 
 #include "Common/UniqueName.h"    // for UniqueName
 #include "InitTweak/InitTweak.h"  // for InitExpander
-#include "Parser/LinkageSpec.h"   // for C
 #include "SynTree/Constant.h"     // for Constant
-#include "SynTree/Declaration.h"  // for ObjectDecl, Declaration (ptr only)
-#include "SynTree/Expression.h"   // for UntypedExpr, NameExpr, VariableExpr
-#include "SynTree/Initializer.h"  // for SingleInit
-#include "SynTree/Label.h"        // for Label, noLabels
-#include "SynTree/Statement.h"    // for Statement (ptr only), CompoundStmt
+#include "SynTree/Declaration.h"  // for DeclarationWithType, ObjectDecl
+#include "SynTree/Expression.h"   // for NameExpr, ConstantExpr, UntypedExpr...
 #include "SynTree/Type.h"         // for Type, ArrayType, Type::Qualifiers
+
+class CompoundStmt;
+class Statement;
 
 namespace SymTab {
Index: src/SymTab/Validate.cc
===================================================================
--- src/SymTab/Validate.cc	(revision c3acf0aa1a98c341d809549a8b1cdf752abbea06)
+++ src/SymTab/Validate.cc	(revision d180746e9c094bb8a0500bb2383c1d5d8616da38)
@@ -40,42 +40,32 @@
 #include "Validate.h"
 
-#include <algorithm>                   // for move, transform
-#include <cassert>                     // for safe_dynamic_cast, assertf
+#include <cassert>                     // for assertf, assert
 #include <cstddef>                     // for size_t
-#include <iterator>                    // for back_inserter, inserter, back_...
-#include <list>                        // for list, _List_iterator, list<>::...
-#include <map>                         // for _Rb_tree_iterator, map, map<>:...
-#include <memory>                      // for unique_ptr, allocator
-#include <string>                      // for string, operator+, operator==
-#include <tuple>                       // for get
-#include <type_traits>                 // for remove_reference<>::type
-#include <utility>                     // for pair, make_pair
-
-#include "AddVisit.h"                  // for addVisit
-#include "Autogen.h"                   // for SizeType, autogenerateRoutines
-#include "CodeGen/CodeGenerator.h"     // for genName
+#include <list>                        // for list
+#include <string>                      // for string
+#include <utility>                     // for pair
+
 #include "Common/PassVisitor.h"        // for PassVisitor, WithDeclsToAdd
-#include "Common/ScopedMap.h"          // for ScopedMap<>::const_iterator
+#include "Common/ScopedMap.h"          // for ScopedMap
 #include "Common/SemanticError.h"      // for SemanticError
 #include "Common/UniqueName.h"         // for UniqueName
-#include "Common/utility.h"            // for operator+, cloneAll, deleteAll
-#include "Concurrency/Keywords.h"      // for applyKeywords, implementMutexF...
 #include "FixFunction.h"               // for FixFunction
 #include "Indexer.h"                   // for Indexer
-#include "InitTweak/InitTweak.h"       // for isCtorDtor, isCtorDtorAssign
-#include "Parser/LinkageSpec.h"        // for C, Cforall
-#include "Parser/ParseNode.h"          // for DeclarationNode, DeclarationNo...
-#include "PassVisitor.h"               // for acceptAll, mutateAll
-#include "ResolvExpr/typeops.h"        // for extractResultType, typesCompat...
-#include "SynTree/Attribute.h"         // for noAttributes, Attribute
+#include "InitTweak/InitTweak.h"       // for isCtorDtorAssign
+#include "Parser/LinkageSpec.h"        // for C
+#include "ResolvExpr/typeops.h"        // for typesCompatible
 #include "SynTree/Constant.h"          // for Constant
-#include "SynTree/Declaration.h"       // for EnumDecl, StructDecl, TypedefDecl
-#include "SynTree/Expression.h"        // for TypeExpr, CompoundLiteralExpr
-#include "SynTree/Initializer.h"       // for ListInit, Initializer, noDesig...
-#include "SynTree/Mutator.h"           // for mutateAll, Mutator
-#include "SynTree/Statement.h"         // for CompoundStmt, DeclStmt, Return...
-#include "SynTree/Type.h"              // for Type, TypeInstType, TraitInstType
-#include "SynTree/TypeSubstitution.h"  // for TypeSubstitution, applySubstit...
-#include "SynTree/Visitor.h"           // for acceptAll, Visitor
+#include "SynTree/Declaration.h"       // for ObjectDecl, DeclarationWithType
+#include "SynTree/Expression.h"        // for CompoundLiteralExpr, Expressio...
+#include "SynTree/Initializer.h"       // for ListInit, Initializer
+#include "SynTree/Label.h"             // for operator==, Label
+#include "SynTree/Mutator.h"           // for Mutator
+#include "SynTree/Type.h"              // for Type, TypeInstType, EnumInstType
+#include "SynTree/TypeSubstitution.h"  // for TypeSubstitution
+#include "SynTree/Visitor.h"           // for Visitor
+
+class CompoundStmt;
+class ReturnStmt;
+class SwitchStmt;
 
 #define debugPrint( x ) if ( doDebug ) { std::cout << x; }
