CommandLine library cleanup.  No longer use getValue/setValue, instead, just treat the commandline
args as the objects they represent and the "right thing" will happen


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/InstrSelection/InstrSelection.cpp b/lib/CodeGen/InstrSelection/InstrSelection.cpp
index bfeec44..9cc054c 100644
--- a/lib/CodeGen/InstrSelection/InstrSelection.cpp
+++ b/lib/CodeGen/InstrSelection/InstrSelection.cpp
@@ -67,7 +67,7 @@
       // Invoke BURM to label each tree node with a state
       (void) burm_label(basicNode);
       
-      if (DebugLevel.getValue() >= DebugBurgTrees)
+      if (DebugLevel >= DebugBurgTrees)
 	{
 	  printcover(basicNode, 1, 0);
 	  cerr << "\nCover cost == " << treecost(basicNode, 1, 0) << "\n\n";
@@ -84,7 +84,7 @@
   
   if (!failed)
     {
-      if (DebugLevel.getValue() >= DebugInstTrees)
+      if (DebugLevel >= DebugInstTrees)
 	{
 	  cout << "\n\n*** Instruction trees for method "
 	       << (method->hasName()? method->getName() : "")
@@ -92,7 +92,7 @@
 	  instrForest.dump();
 	}
       
-      if (DebugLevel.getValue() > NoDebugInfo)
+      if (DebugLevel > NoDebugInfo)
 	PrintMachineInstructions(method);
     }
   
diff --git a/lib/Support/CommandLine.cpp b/lib/Support/CommandLine.cpp
index 7c3f293..c7590ab 100644
--- a/lib/Support/CommandLine.cpp
+++ b/lib/Support/CommandLine.cpp
@@ -189,7 +189,7 @@
 // String valued command line option implementation
 //
 bool String::handleOccurance(const char *ArgName, const string &Arg) {
-  Value = Arg;
+  *this = Arg;
   return false;
 }
 
diff --git a/lib/Target/SparcV9/InstrSelection/InstrSelection.cpp b/lib/Target/SparcV9/InstrSelection/InstrSelection.cpp
index bfeec44..9cc054c 100644
--- a/lib/Target/SparcV9/InstrSelection/InstrSelection.cpp
+++ b/lib/Target/SparcV9/InstrSelection/InstrSelection.cpp
@@ -67,7 +67,7 @@
       // Invoke BURM to label each tree node with a state
       (void) burm_label(basicNode);
       
-      if (DebugLevel.getValue() >= DebugBurgTrees)
+      if (DebugLevel >= DebugBurgTrees)
 	{
 	  printcover(basicNode, 1, 0);
 	  cerr << "\nCover cost == " << treecost(basicNode, 1, 0) << "\n\n";
@@ -84,7 +84,7 @@
   
   if (!failed)
     {
-      if (DebugLevel.getValue() >= DebugInstTrees)
+      if (DebugLevel >= DebugInstTrees)
 	{
 	  cout << "\n\n*** Instruction trees for method "
 	       << (method->hasName()? method->getName() : "")
@@ -92,7 +92,7 @@
 	  instrForest.dump();
 	}
       
-      if (DebugLevel.getValue() > NoDebugInfo)
+      if (DebugLevel > NoDebugInfo)
 	PrintMachineInstructions(method);
     }
   
diff --git a/support/lib/Support/CommandLine.cpp b/support/lib/Support/CommandLine.cpp
index 7c3f293..c7590ab 100644
--- a/support/lib/Support/CommandLine.cpp
+++ b/support/lib/Support/CommandLine.cpp
@@ -189,7 +189,7 @@
 // String valued command line option implementation
 //
 bool String::handleOccurance(const char *ArgName, const string &Arg) {
-  Value = Arg;
+  *this = Arg;
   return false;
 }
 
diff --git a/tools/analyze/analyze.cpp b/tools/analyze/analyze.cpp
index 3adef16..3163981 100644
--- a/tools/analyze/analyze.cpp
+++ b/tools/analyze/analyze.cpp
@@ -92,7 +92,7 @@
   postdomset, postidom, postdomtree, postdomfrontier,
 };
 
-cl::String InputFilename ("", "Load <arg> file to analyze", 0, "-");
+cl::String InputFilename ("", "Load <arg> file to analyze", cl::NoFlags, "-");
 cl::Flag   Quiet         ("q", "Don't print analysis pass names", 0, false);
 cl::EnumList<enum Ans> AnalysesList(cl::NoFlags,
   clEnumVal(print          , "Print each Method"),
@@ -132,8 +132,8 @@
 int main(int argc, char **argv) {
   cl::ParseCommandLineOptions(argc, argv, " llvm analysis printer tool\n");
 
-  Module *C = ParseBytecodeFile(InputFilename.getValue());
-  if (!C && !(C = ParseAssemblyFile(InputFilename.getValue()))) {
+  Module *C = ParseBytecodeFile(InputFilename);
+  if (!C && !(C = ParseAssemblyFile(InputFilename))) {
     cerr << "Input file didn't read correctly.\n";
     return 1;
   }
diff --git a/tools/as/as.cpp b/tools/as/as.cpp
index 8cb2747..72b63ec 100644
--- a/tools/as/as.cpp
+++ b/tools/as/as.cpp
@@ -19,8 +19,8 @@
 #include "llvm/Support/CommandLine.h"
 
 cl::String InputFilename ("", "Parse <arg> file, compile to bytecode", 0, "-");
-cl::String OutputFilename("o", "Override output filename", 0, "");
-cl::Flag   Force         ("f", "Overwrite output files", 0, false);
+cl::String OutputFilename("o", "Override output filename", cl::NoFlags, "");
+cl::Flag   Force         ("f", "Overwrite output files", cl::NoFlags, false);
 cl::Flag   DumpAsm       ("d", "Print assembly as parsed", cl::Hidden, false);
 
 int main(int argc, char **argv) {
@@ -29,38 +29,38 @@
   ostream *Out = 0;
   try {
     // Parse the file now...
-    Module *C = ParseAssemblyFile(InputFilename.getValue());
+    Module *C = ParseAssemblyFile(InputFilename);
     if (C == 0) {
       cerr << "assembly didn't read correctly.\n";
       return 1;
     }
   
-    if (DumpAsm.getValue())
+    if (DumpAsm)
       cerr << "Here's the assembly:\n" << C;
 
-    if (OutputFilename.getValue() != "") {   // Specified an output filename?
-      Out = new ofstream(OutputFilename.getValue().c_str(), 
-			 (Force.getValue() ? 0 : ios::noreplace)|ios::out);
+    if (OutputFilename != "") {   // Specified an output filename?
+      Out = new ofstream(OutputFilename.c_str(), 
+			 (Force ? 0 : ios::noreplace)|ios::out);
     } else {
-      if (InputFilename.getValue() == "-") {
-	OutputFilename.setValue("-");
+      if (InputFilename == "-") {
+	OutputFilename = "-";
 	Out = &cout;
       } else {
-	string IFN = InputFilename.getValue();
+	string IFN = InputFilename;
 	int Len = IFN.length();
 	if (IFN[Len-3] == '.' && IFN[Len-2] == 'l' && IFN[Len-1] == 'l') {
 	  // Source ends in .ll
-	  OutputFilename.setValue(string(IFN.begin(), IFN.end()-3));
+	  OutputFilename = string(IFN.begin(), IFN.end()-3);
         } else {
-	  OutputFilename.setValue(IFN);   // Append a .bc to it
+	  OutputFilename = IFN;   // Append a .bc to it
 	}
-	OutputFilename.setValue(OutputFilename.getValue() + ".bc");
-	Out = new ofstream(OutputFilename.getValue().c_str(), 
-			   (Force.getValue() ? 0 : ios::noreplace)|ios::out);
+	OutputFilename += ".bc";
+	Out = new ofstream(OutputFilename.c_str(), 
+			   (Force ? 0 : ios::noreplace)|ios::out);
       }
   
       if (!Out->good()) {
-        cerr << "Error opening " << OutputFilename.getValue() << "!\n";
+        cerr << "Error opening " << OutputFilename << "!\n";
 	delete C;
 	return 1;
       }
diff --git a/tools/dis/dis.cpp b/tools/dis/dis.cpp
index 5959476..462ad7f 100644
--- a/tools/dis/dis.cpp
+++ b/tools/dis/dis.cpp
@@ -35,8 +35,8 @@
 };
 
 cl::String InputFilename ("", "Load <arg> file, print as assembly", 0, "-");
-cl::String OutputFilename("o", "Override output filename", 0, "");
-cl::Flag   Force         ("f", "Overwrite output files", 0, false);
+cl::String OutputFilename("o", "Override output filename", cl::NoFlags, "");
+cl::Flag   Force         ("f", "Overwrite output files", cl::NoFlags, false);
 cl::EnumFlags<enum OutputMode> WriteMode(cl::NoFlags,
   clEnumVal(Default, "Write basic blocks in bytecode order"),
   clEnumVal(dfo    , "Write basic blocks in depth first order"),
@@ -49,36 +49,36 @@
   cl::ParseCommandLineOptions(argc, argv, " llvm .bc -> .ll disassembler\n");
   ostream *Out = &cout;  // Default to printing to stdout...
 
-  Module *C = ParseBytecodeFile(InputFilename.getValue());
+  Module *C = ParseBytecodeFile(InputFilename);
   if (C == 0) {
     cerr << "bytecode didn't read correctly.\n";
     return 1;
   }
   
-  if (OutputFilename.getValue() != "") {   // Specified an output filename?
-    Out = new ofstream(OutputFilename.getValue().c_str(), 
-		       (Force.getValue() ? 0 : ios::noreplace)|ios::out);
+  if (OutputFilename != "") {   // Specified an output filename?
+    Out = new ofstream(OutputFilename.c_str(), 
+		       (Force ? 0 : ios::noreplace)|ios::out);
   } else {
-    if (InputFilename.getValue() == "-") {
-      OutputFilename.setValue("-");
+    if (InputFilename == "-") {
+      OutputFilename = "-";
       Out = &cout;
     } else {
-      string IFN = InputFilename.getValue();
+      string IFN = InputFilename;
       int Len = IFN.length();
       if (IFN[Len-3] == '.' && IFN[Len-2] == 'b' && IFN[Len-1] == 'c') {
 	// Source ends in .bc
-	OutputFilename.setValue(string(IFN.begin(), IFN.end()-3));
+	OutputFilename = string(IFN.begin(), IFN.end()-3);
       } else {
-	OutputFilename.setValue(IFN);   // Append a .ll to it
+	OutputFilename = IFN;   // Append a .ll to it
       }
-      OutputFilename.setValue(OutputFilename.getValue() + ".ll");
-      Out = new ofstream(OutputFilename.getValue().c_str(), 
-			 (Force.getValue() ? 0 : ios::noreplace)|ios::out);
+      OutputFilename += ".ll";
+      Out = new ofstream(OutputFilename.c_str(), 
+			 (Force ? 0 : ios::noreplace)|ios::out);
     }
   }
 
   if (!Out->good()) {
-    cerr << "Error opening " << OutputFilename.getValue() 
+    cerr << "Error opening " << OutputFilename
 	 << ": sending to stdout instead!\n";
     Out = &cout;
   }
@@ -86,7 +86,7 @@
   // All that dis does is write the assembly out to a file... which is exactly
   // what the writer library is supposed to do...
   //
-  if (WriteMode.getValue() == Default) {
+  if (WriteMode == Default) {
     (*Out) << C;           // Print out in list order
   } else {
     // TODO: This does not print anything other than the basic blocks in the
@@ -97,7 +97,7 @@
       Method *M = *I;
       (*Out) << "-------------- Method: " << M->getName() << " -------------\n";
 
-      switch (WriteMode.getValue()) {
+      switch (WriteMode) {
       case dfo:                   // Depth First ordering
 	copy(cfg::df_begin(M), cfg::df_end(M),
 	     ostream_iterator<BasicBlock*>(*Out, "\n"));
diff --git a/tools/llc/llc.cpp b/tools/llc/llc.cpp
index c4370d9..a331296 100644
--- a/tools/llc/llc.cpp
+++ b/tools/llc/llc.cpp
@@ -14,31 +14,25 @@
 #include "llvm/Module.h"
 #include "llvm/Method.h"
 #include "llvm/Bytecode/Reader.h"
-#include "llvm/Bytecode/Writer.h"
 #include "llvm/CodeGen/InstrSelection.h"
 #include "llvm/CodeGen/Sparc.h"
 #include "llvm/Support/CommandLine.h"
 
-cl::String InputFilename ("", "Input filename", cl::NoFlags, "");
+cl::String InputFilename ("", "Input filename", cl::NoFlags, "-");
 cl::String OutputFilename("o", "Output filename", cl::NoFlags, "");
 
-static bool CompileModule(Module *module, TargetMachine &Target) {
+static bool CompileModule(Module *M, TargetMachine &Target) {
   bool failed = false;
   
-  for (Module::MethodListType::const_iterator
-	 methodIter = module->getMethodList().begin();
-       methodIter != module->getMethodList().end();
-       ++methodIter)
-    {
-      Method* method = *methodIter;
+  for (Module::const_iterator MI = M->begin(), ME = M->end(); MI != ME; ++MI) {
+    Method * method = *MI;
       
-      if (SelectInstructionsForMethod(method, Target))
-	{
-	  failed = true;
-	  cerr << "Instruction selection failed for method "
-	       << method->getName() << "\n\n";
-	}
+    if (SelectInstructionsForMethod(method, Target)) {
+      failed = true;
+      cerr << "Instruction selection failed for method "
+	   << method->getName() << "\n\n";
     }
+  }
   
   return failed;
 }
@@ -54,24 +48,17 @@
   cl::ParseCommandLineOptions(argc, argv, " llvm system compiler\n");
   UltraSparc Target;
 
-  Module *module = ParseBytecodeFile(InputFilename.getValue());
+  Module *module = ParseBytecodeFile(InputFilename);
   if (module == 0) {
     cerr << "bytecode didn't read correctly.\n";
     return 1;
   }
   
-  bool failure = CompileModule(module, Target);
-  
-  if (failure) {
-      cerr << "Error compiling "
-	   << InputFilename.getValue() << "!\n";
-      delete module;
-      return 1;
-    }
-  
-  // Okay, we're done now... write out result...
-  // WriteBytecodeToFile(module, 
-  // 		      OutputFilename.getValue());
+  if (CompileModule(module, Target)) {
+    cerr << "Error compiling " << InputFilename << "!\n";
+    delete module;
+    return 1;
+  }
   
   // Clean up and exit
   delete module;
diff --git a/tools/llvm-as/as.cpp b/tools/llvm-as/as.cpp
index 8cb2747..72b63ec 100644
--- a/tools/llvm-as/as.cpp
+++ b/tools/llvm-as/as.cpp
@@ -19,8 +19,8 @@
 #include "llvm/Support/CommandLine.h"
 
 cl::String InputFilename ("", "Parse <arg> file, compile to bytecode", 0, "-");
-cl::String OutputFilename("o", "Override output filename", 0, "");
-cl::Flag   Force         ("f", "Overwrite output files", 0, false);
+cl::String OutputFilename("o", "Override output filename", cl::NoFlags, "");
+cl::Flag   Force         ("f", "Overwrite output files", cl::NoFlags, false);
 cl::Flag   DumpAsm       ("d", "Print assembly as parsed", cl::Hidden, false);
 
 int main(int argc, char **argv) {
@@ -29,38 +29,38 @@
   ostream *Out = 0;
   try {
     // Parse the file now...
-    Module *C = ParseAssemblyFile(InputFilename.getValue());
+    Module *C = ParseAssemblyFile(InputFilename);
     if (C == 0) {
       cerr << "assembly didn't read correctly.\n";
       return 1;
     }
   
-    if (DumpAsm.getValue())
+    if (DumpAsm)
       cerr << "Here's the assembly:\n" << C;
 
-    if (OutputFilename.getValue() != "") {   // Specified an output filename?
-      Out = new ofstream(OutputFilename.getValue().c_str(), 
-			 (Force.getValue() ? 0 : ios::noreplace)|ios::out);
+    if (OutputFilename != "") {   // Specified an output filename?
+      Out = new ofstream(OutputFilename.c_str(), 
+			 (Force ? 0 : ios::noreplace)|ios::out);
     } else {
-      if (InputFilename.getValue() == "-") {
-	OutputFilename.setValue("-");
+      if (InputFilename == "-") {
+	OutputFilename = "-";
 	Out = &cout;
       } else {
-	string IFN = InputFilename.getValue();
+	string IFN = InputFilename;
 	int Len = IFN.length();
 	if (IFN[Len-3] == '.' && IFN[Len-2] == 'l' && IFN[Len-1] == 'l') {
 	  // Source ends in .ll
-	  OutputFilename.setValue(string(IFN.begin(), IFN.end()-3));
+	  OutputFilename = string(IFN.begin(), IFN.end()-3);
         } else {
-	  OutputFilename.setValue(IFN);   // Append a .bc to it
+	  OutputFilename = IFN;   // Append a .bc to it
 	}
-	OutputFilename.setValue(OutputFilename.getValue() + ".bc");
-	Out = new ofstream(OutputFilename.getValue().c_str(), 
-			   (Force.getValue() ? 0 : ios::noreplace)|ios::out);
+	OutputFilename += ".bc";
+	Out = new ofstream(OutputFilename.c_str(), 
+			   (Force ? 0 : ios::noreplace)|ios::out);
       }
   
       if (!Out->good()) {
-        cerr << "Error opening " << OutputFilename.getValue() << "!\n";
+        cerr << "Error opening " << OutputFilename << "!\n";
 	delete C;
 	return 1;
       }
diff --git a/tools/llvm-as/llvm-as.cpp b/tools/llvm-as/llvm-as.cpp
index 8cb2747..72b63ec 100644
--- a/tools/llvm-as/llvm-as.cpp
+++ b/tools/llvm-as/llvm-as.cpp
@@ -19,8 +19,8 @@
 #include "llvm/Support/CommandLine.h"
 
 cl::String InputFilename ("", "Parse <arg> file, compile to bytecode", 0, "-");
-cl::String OutputFilename("o", "Override output filename", 0, "");
-cl::Flag   Force         ("f", "Overwrite output files", 0, false);
+cl::String OutputFilename("o", "Override output filename", cl::NoFlags, "");
+cl::Flag   Force         ("f", "Overwrite output files", cl::NoFlags, false);
 cl::Flag   DumpAsm       ("d", "Print assembly as parsed", cl::Hidden, false);
 
 int main(int argc, char **argv) {
@@ -29,38 +29,38 @@
   ostream *Out = 0;
   try {
     // Parse the file now...
-    Module *C = ParseAssemblyFile(InputFilename.getValue());
+    Module *C = ParseAssemblyFile(InputFilename);
     if (C == 0) {
       cerr << "assembly didn't read correctly.\n";
       return 1;
     }
   
-    if (DumpAsm.getValue())
+    if (DumpAsm)
       cerr << "Here's the assembly:\n" << C;
 
-    if (OutputFilename.getValue() != "") {   // Specified an output filename?
-      Out = new ofstream(OutputFilename.getValue().c_str(), 
-			 (Force.getValue() ? 0 : ios::noreplace)|ios::out);
+    if (OutputFilename != "") {   // Specified an output filename?
+      Out = new ofstream(OutputFilename.c_str(), 
+			 (Force ? 0 : ios::noreplace)|ios::out);
     } else {
-      if (InputFilename.getValue() == "-") {
-	OutputFilename.setValue("-");
+      if (InputFilename == "-") {
+	OutputFilename = "-";
 	Out = &cout;
       } else {
-	string IFN = InputFilename.getValue();
+	string IFN = InputFilename;
 	int Len = IFN.length();
 	if (IFN[Len-3] == '.' && IFN[Len-2] == 'l' && IFN[Len-1] == 'l') {
 	  // Source ends in .ll
-	  OutputFilename.setValue(string(IFN.begin(), IFN.end()-3));
+	  OutputFilename = string(IFN.begin(), IFN.end()-3);
         } else {
-	  OutputFilename.setValue(IFN);   // Append a .bc to it
+	  OutputFilename = IFN;   // Append a .bc to it
 	}
-	OutputFilename.setValue(OutputFilename.getValue() + ".bc");
-	Out = new ofstream(OutputFilename.getValue().c_str(), 
-			   (Force.getValue() ? 0 : ios::noreplace)|ios::out);
+	OutputFilename += ".bc";
+	Out = new ofstream(OutputFilename.c_str(), 
+			   (Force ? 0 : ios::noreplace)|ios::out);
       }
   
       if (!Out->good()) {
-        cerr << "Error opening " << OutputFilename.getValue() << "!\n";
+        cerr << "Error opening " << OutputFilename << "!\n";
 	delete C;
 	return 1;
       }
diff --git a/tools/llvm-dis/dis.cpp b/tools/llvm-dis/dis.cpp
index 5959476..462ad7f 100644
--- a/tools/llvm-dis/dis.cpp
+++ b/tools/llvm-dis/dis.cpp
@@ -35,8 +35,8 @@
 };
 
 cl::String InputFilename ("", "Load <arg> file, print as assembly", 0, "-");
-cl::String OutputFilename("o", "Override output filename", 0, "");
-cl::Flag   Force         ("f", "Overwrite output files", 0, false);
+cl::String OutputFilename("o", "Override output filename", cl::NoFlags, "");
+cl::Flag   Force         ("f", "Overwrite output files", cl::NoFlags, false);
 cl::EnumFlags<enum OutputMode> WriteMode(cl::NoFlags,
   clEnumVal(Default, "Write basic blocks in bytecode order"),
   clEnumVal(dfo    , "Write basic blocks in depth first order"),
@@ -49,36 +49,36 @@
   cl::ParseCommandLineOptions(argc, argv, " llvm .bc -> .ll disassembler\n");
   ostream *Out = &cout;  // Default to printing to stdout...
 
-  Module *C = ParseBytecodeFile(InputFilename.getValue());
+  Module *C = ParseBytecodeFile(InputFilename);
   if (C == 0) {
     cerr << "bytecode didn't read correctly.\n";
     return 1;
   }
   
-  if (OutputFilename.getValue() != "") {   // Specified an output filename?
-    Out = new ofstream(OutputFilename.getValue().c_str(), 
-		       (Force.getValue() ? 0 : ios::noreplace)|ios::out);
+  if (OutputFilename != "") {   // Specified an output filename?
+    Out = new ofstream(OutputFilename.c_str(), 
+		       (Force ? 0 : ios::noreplace)|ios::out);
   } else {
-    if (InputFilename.getValue() == "-") {
-      OutputFilename.setValue("-");
+    if (InputFilename == "-") {
+      OutputFilename = "-";
       Out = &cout;
     } else {
-      string IFN = InputFilename.getValue();
+      string IFN = InputFilename;
       int Len = IFN.length();
       if (IFN[Len-3] == '.' && IFN[Len-2] == 'b' && IFN[Len-1] == 'c') {
 	// Source ends in .bc
-	OutputFilename.setValue(string(IFN.begin(), IFN.end()-3));
+	OutputFilename = string(IFN.begin(), IFN.end()-3);
       } else {
-	OutputFilename.setValue(IFN);   // Append a .ll to it
+	OutputFilename = IFN;   // Append a .ll to it
       }
-      OutputFilename.setValue(OutputFilename.getValue() + ".ll");
-      Out = new ofstream(OutputFilename.getValue().c_str(), 
-			 (Force.getValue() ? 0 : ios::noreplace)|ios::out);
+      OutputFilename += ".ll";
+      Out = new ofstream(OutputFilename.c_str(), 
+			 (Force ? 0 : ios::noreplace)|ios::out);
     }
   }
 
   if (!Out->good()) {
-    cerr << "Error opening " << OutputFilename.getValue() 
+    cerr << "Error opening " << OutputFilename
 	 << ": sending to stdout instead!\n";
     Out = &cout;
   }
@@ -86,7 +86,7 @@
   // All that dis does is write the assembly out to a file... which is exactly
   // what the writer library is supposed to do...
   //
-  if (WriteMode.getValue() == Default) {
+  if (WriteMode == Default) {
     (*Out) << C;           // Print out in list order
   } else {
     // TODO: This does not print anything other than the basic blocks in the
@@ -97,7 +97,7 @@
       Method *M = *I;
       (*Out) << "-------------- Method: " << M->getName() << " -------------\n";
 
-      switch (WriteMode.getValue()) {
+      switch (WriteMode) {
       case dfo:                   // Depth First ordering
 	copy(cfg::df_begin(M), cfg::df_end(M),
 	     ostream_iterator<BasicBlock*>(*Out, "\n"));
diff --git a/tools/llvm-dis/llvm-dis.cpp b/tools/llvm-dis/llvm-dis.cpp
index 5959476..462ad7f 100644
--- a/tools/llvm-dis/llvm-dis.cpp
+++ b/tools/llvm-dis/llvm-dis.cpp
@@ -35,8 +35,8 @@
 };
 
 cl::String InputFilename ("", "Load <arg> file, print as assembly", 0, "-");
-cl::String OutputFilename("o", "Override output filename", 0, "");
-cl::Flag   Force         ("f", "Overwrite output files", 0, false);
+cl::String OutputFilename("o", "Override output filename", cl::NoFlags, "");
+cl::Flag   Force         ("f", "Overwrite output files", cl::NoFlags, false);
 cl::EnumFlags<enum OutputMode> WriteMode(cl::NoFlags,
   clEnumVal(Default, "Write basic blocks in bytecode order"),
   clEnumVal(dfo    , "Write basic blocks in depth first order"),
@@ -49,36 +49,36 @@
   cl::ParseCommandLineOptions(argc, argv, " llvm .bc -> .ll disassembler\n");
   ostream *Out = &cout;  // Default to printing to stdout...
 
-  Module *C = ParseBytecodeFile(InputFilename.getValue());
+  Module *C = ParseBytecodeFile(InputFilename);
   if (C == 0) {
     cerr << "bytecode didn't read correctly.\n";
     return 1;
   }
   
-  if (OutputFilename.getValue() != "") {   // Specified an output filename?
-    Out = new ofstream(OutputFilename.getValue().c_str(), 
-		       (Force.getValue() ? 0 : ios::noreplace)|ios::out);
+  if (OutputFilename != "") {   // Specified an output filename?
+    Out = new ofstream(OutputFilename.c_str(), 
+		       (Force ? 0 : ios::noreplace)|ios::out);
   } else {
-    if (InputFilename.getValue() == "-") {
-      OutputFilename.setValue("-");
+    if (InputFilename == "-") {
+      OutputFilename = "-";
       Out = &cout;
     } else {
-      string IFN = InputFilename.getValue();
+      string IFN = InputFilename;
       int Len = IFN.length();
       if (IFN[Len-3] == '.' && IFN[Len-2] == 'b' && IFN[Len-1] == 'c') {
 	// Source ends in .bc
-	OutputFilename.setValue(string(IFN.begin(), IFN.end()-3));
+	OutputFilename = string(IFN.begin(), IFN.end()-3);
       } else {
-	OutputFilename.setValue(IFN);   // Append a .ll to it
+	OutputFilename = IFN;   // Append a .ll to it
       }
-      OutputFilename.setValue(OutputFilename.getValue() + ".ll");
-      Out = new ofstream(OutputFilename.getValue().c_str(), 
-			 (Force.getValue() ? 0 : ios::noreplace)|ios::out);
+      OutputFilename += ".ll";
+      Out = new ofstream(OutputFilename.c_str(), 
+			 (Force ? 0 : ios::noreplace)|ios::out);
     }
   }
 
   if (!Out->good()) {
-    cerr << "Error opening " << OutputFilename.getValue() 
+    cerr << "Error opening " << OutputFilename
 	 << ": sending to stdout instead!\n";
     Out = &cout;
   }
@@ -86,7 +86,7 @@
   // All that dis does is write the assembly out to a file... which is exactly
   // what the writer library is supposed to do...
   //
-  if (WriteMode.getValue() == Default) {
+  if (WriteMode == Default) {
     (*Out) << C;           // Print out in list order
   } else {
     // TODO: This does not print anything other than the basic blocks in the
@@ -97,7 +97,7 @@
       Method *M = *I;
       (*Out) << "-------------- Method: " << M->getName() << " -------------\n";
 
-      switch (WriteMode.getValue()) {
+      switch (WriteMode) {
       case dfo:                   // Depth First ordering
 	copy(cfg::df_begin(M), cfg::df_end(M),
 	     ostream_iterator<BasicBlock*>(*Out, "\n"));
diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp
index 3dedd0b..0dc94f5 100644
--- a/tools/opt/opt.cpp
+++ b/tools/opt/opt.cpp
@@ -75,7 +75,7 @@
   cl::ParseCommandLineOptions(argc, argv,
 			      " llvm .bc -> .bc modular optimizer\n");
  
-  Module *C = ParseBytecodeFile(InputFilename.getValue());
+  Module *C = ParseBytecodeFile(InputFilename);
   if (C == 0) {
     cerr << "bytecode didn't read correctly.\n";
     return 1;
@@ -99,11 +99,11 @@
   }
 
   ostream *Out = &cout;  // Default to printing to stdout...
-  if (OutputFilename.getValue() != "") {
-    Out = new ofstream(OutputFilename.getValue().c_str(), 
-                       (Force.getValue() ? 0 : ios::noreplace)|ios::out);
+  if (OutputFilename != "") {
+    Out = new ofstream(OutputFilename.c_str(), 
+                       (Force ? 0 : ios::noreplace)|ios::out);
     if (!Out->good()) {
-      cerr << "Error opening " << OutputFilename.getValue() << "!\n";
+      cerr << "Error opening " << OutputFilename << "!\n";
       delete C;
       return 1;
     }