Finegrainify namespacification
[oota-llvm.git] / utils / TableGen / TableGen.cpp
index d89d3dbb00445270abfe9b53bee2dfb84bc506b4..7bd52b37cf06eaf602f9266d0d10d18ab87d39fb 100644 (file)
 #include "RegisterInfoEmitter.h"
 #include "InstrInfoEmitter.h"
 #include "InstrSelectorEmitter.h"
-#include "SimpleInstrSelEmitter.h"
 #include <algorithm>
 #include <cstdio>
 #include <fstream>
-
-namespace llvm {
+using namespace llvm;
 
 enum ActionType {
   PrintRecords,
@@ -36,7 +34,7 @@ enum ActionType {
   GenRegisterEnums, GenRegister, GenRegisterHeader,
   GenInstrEnums, GenInstrs, GenInstrSelector,
   PrintEnums,
-  Parse, GenSimpInstrSel, 
+  Parse
 };
 
 namespace {
@@ -58,13 +56,11 @@ namespace {
                                "Generate instruction descriptions"),
                     clEnumValN(GenInstrSelector, "gen-instr-selector",
                                "Generate an instruction selector"),
-                   clEnumValN(GenSimpInstrSel, "gen-simp-instr-sel", 
-                              "Generate a simple instruction selector"),
                     clEnumValN(PrintEnums, "print-enums",
                                "Print enum values for a class"),
                     clEnumValN(Parse, "parse",
                                "Interpret machine code (testing only)"),
-                    0));
+                    clEnumValEnd));
 
   cl::opt<std::string>
   Class("class", cl::desc("Print Enum list for this class"),
@@ -82,10 +78,12 @@ namespace {
                   cl::value_desc("directory"), cl::init(""));
 }
 
+namespace llvm {
+  void ParseFile(const std::string &Filename,
+                 const std::string &IncludeDir);
+}
 
-void ParseFile(const std::string &Filename, const std::string & IncludeDir);
-
-RecordKeeper Records;
+RecordKeeper llvm::Records;
 
 static Init *getBit(Record *R, unsigned BitNo) {
   const std::vector<RecordVal> &V = R->getValues();
@@ -411,28 +409,21 @@ static void ParseMachineCode() {
   }
 }
 
-} // End llvm namespace
-
-using namespace llvm;
-
 int main(int argc, char **argv) {
   cl::ParseCommandLineOptions(argc, argv);
   ParseFile(InputFilename, IncludeDir);
 
   std::ostream *Out = &std::cout;
   if (OutputFilename != "-") {
-    // Output to a .tmp file, because we don't actually want to overwrite the
-    // output file unless the generated file is different or the specified file
-    // does not exist.
-    Out = new std::ofstream((OutputFilename+".tmp").c_str());
+    Out = new std::ofstream(OutputFilename.c_str());
 
     if (!Out->good()) {
-      std::cerr << argv[0] << ": error opening " << OutputFilename << ".tmp!\n";
+      std::cerr << argv[0] << ": error opening " << OutputFilename << "!\n";
       return 1;
     }
 
     // Make sure the file gets removed if *gasp* tablegen crashes...
-    RemoveFileOnSignal(OutputFilename+".tmp");
+    RemoveFileOnSignal(OutputFilename);
   }
 
   try {
@@ -474,9 +465,6 @@ int main(int argc, char **argv) {
       *Out << "\n";
       break;
     }
-    case GenSimpInstrSel:
-      SimpleInstrSelEmitter(Records).run(*Out);
-      break;
     default:
       assert(1 && "Invalid Action");
       return 1;
@@ -492,14 +480,6 @@ int main(int argc, char **argv) {
 
   if (Out != &std::cout) {
     delete Out;                               // Close the file
-    
-    // Now that we have generated the result, check to see if we either don't
-    // have the requested file, or if the requested file is different than the
-    // file we generated.  If so, move the generated file over the requested
-    // file.  Otherwise, just remove the file we just generated, so 'make'
-    // doesn't try to regenerate tons of dependencies.
-    //
-    MoveFileOverIfUpdated(OutputFilename+".tmp", OutputFilename);
   }
   return 0;
 }