llvmc: Cut global namespace pollution.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111619 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/TableGen/LLVMCConfigurationEmitter.cpp b/utils/TableGen/LLVMCConfigurationEmitter.cpp
index b091419..48c7cc3 100644
--- a/utils/TableGen/LLVMCConfigurationEmitter.cpp
+++ b/utils/TableGen/LLVMCConfigurationEmitter.cpp
@@ -2909,7 +2909,6 @@
   if (HookNames.empty())
     return;
 
-  O << "namespace hooks {\n";
   for (HookInfoMap::const_iterator B = HookNames.begin(),
          E = HookNames.end(); B != E; ++B) {
     const char* HookName = B->first();
@@ -2928,7 +2927,6 @@
 
     O <<");\n";
   }
-  O << "}\n\n";
 }
 
 /// EmitIncludes - Emit necessary #include directives and some
@@ -3013,12 +3011,19 @@
   EmitIncludes(O);
 
   // Emit global option registration code.
+  O << "namespace llvmc {\n"
+    << "namespace autogenerated {\n\n";
   EmitOptionDefinitions(Data.OptDescs, Data.HasSink, O);
+  O << "} // End namespace autogenerated.\n"
+    << "} // End namespace llvmc.\n\n";
 
   // Emit hook declarations.
+  O << "namespace hooks {\n";
   EmitHookDeclarations(Data.ToolDescs, Data.OptDescs, O);
+  O << "} // End namespace hooks.\n\n";
 
   O << "namespace {\n\n";
+  O << "using namespace llvmc::autogenerated;\n\n";
 
   // Emit Tool classes.
   for (ToolDescriptions::const_iterator B = Data.ToolDescs.begin(),