Moved inline/llvm/Tools/* to include/llvm/Support/*


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/llvm/Bytecode/Primitives.h b/include/llvm/Bytecode/Primitives.h
index e5f93e7..d687fb8 100644
--- a/include/llvm/Bytecode/Primitives.h
+++ b/include/llvm/Bytecode/Primitives.h
@@ -12,7 +12,7 @@
 #ifndef LLVM_BYTECODE_PRIMITIVES_H
 #define LLVM_BYTECODE_PRIMITIVES_H
 
-#include "llvm/Tools/DataTypes.h"
+#include "llvm/Support/DataTypes.h"
 #include <string>
 #include <vector>
 
diff --git a/include/llvm/CodeGen/MachineInstr.h b/include/llvm/CodeGen/MachineInstr.h
index 72f299f..5c6fb62 100644
--- a/include/llvm/CodeGen/MachineInstr.h
+++ b/include/llvm/CodeGen/MachineInstr.h
@@ -16,7 +16,7 @@
 #define LLVM_CODEGEN_MACHINEINSTR_H
 
 #include "llvm/CodeGen/InstrForest.h"
-#include "llvm/Tools/DataTypes.h"
+#include "llvm/Support/DataTypes.h"
 #include "llvm/Support/Unique.h"
 #include "llvm/CodeGen/TargetMachine.h"
 
diff --git a/include/llvm/CodeGen/TargetMachine.h b/include/llvm/CodeGen/TargetMachine.h
index 97bcc54..0be7e54 100644
--- a/include/llvm/CodeGen/TargetMachine.h
+++ b/include/llvm/CodeGen/TargetMachine.h
@@ -13,7 +13,7 @@
 #define LLVM_CODEGEN_TARGETMACHINE_H
 
 #include "llvm/Support/Unique.h"
-#include "llvm/Tools/DataTypes.h"
+#include "llvm/Support/DataTypes.h"
 #include <string>
 
 class Type;
diff --git a/include/llvm/ConstPoolVals.h b/include/llvm/ConstPoolVals.h
index a9730c2..a2a5d8a 100644
--- a/include/llvm/ConstPoolVals.h
+++ b/include/llvm/ConstPoolVals.h
@@ -10,7 +10,7 @@
 
 #include "llvm/User.h"
 #include "llvm/SymTabValue.h"
-#include "llvm/Tools/DataTypes.h"
+#include "llvm/Support/DataTypes.h"
 #include <vector>
 
 class ArrayType;
diff --git a/include/llvm/Tools/DataTypes.h b/include/llvm/Support/DataTypes.h
similarity index 85%
rename from include/llvm/Tools/DataTypes.h
rename to include/llvm/Support/DataTypes.h
index ada16c2..84b8a65 100644
--- a/include/llvm/Tools/DataTypes.h
+++ b/include/llvm/Support/DataTypes.h
@@ -3,8 +3,8 @@
 // autoconfiscated anyways. Major FIXME
 
 
-#ifndef LLVM_TOOLS_DATATYPES_H
-#define LLVM_TOOLS_DATATYPES_H
+#ifndef LLVM_SUPPORT_DATATYPES_H
+#define LLVM_SUPPORT_DATATYPES_H
 
 // Should define the following:
 //   LITTLE_ENDIAN if applicable
@@ -22,5 +22,4 @@
 #endif
 #endif
 
-
 #endif
diff --git a/include/llvm/Support/HashExtras.h b/include/llvm/Support/HashExtras.h
new file mode 100644
index 0000000..ecd572e
--- /dev/null
+++ b/include/llvm/Support/HashExtras.h
@@ -0,0 +1,22 @@
+//===-- HashExtras.h - Useful functions for STL hash containers --*- C++ -*--=//
+//
+// This file contains some templates that are useful if you are working with the
+// STL Hashed containers.
+//
+// No library is required when using these functinons.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_SUPPORT_HASHEXTRAS_H
+#define LLVM_SUPPORT_HASHEXTRAS_H
+
+#include <string>
+#include <hash_map>
+
+template <> struct hash<string> {
+  size_t operator()(string const &str) const {
+    return hash<char const *>()(str.c_str());
+  }
+};
+
+#endif
diff --git a/include/llvm/Tools/STLExtras.h b/include/llvm/Support/STLExtras.h
similarity index 98%
rename from include/llvm/Tools/STLExtras.h
rename to include/llvm/Support/STLExtras.h
index 933db3a..867e112 100644
--- a/include/llvm/Tools/STLExtras.h
+++ b/include/llvm/Support/STLExtras.h
@@ -1,4 +1,4 @@
-//===-- STLExtras.h - Useful functions when working with the STL --*- C++ -*--=//
+//===-- STLExtras.h - Useful functions when working with the STL -*- C++ -*--=//
 //
 // This file contains some templates that are useful if you are working with the
 // STL at all.
@@ -7,8 +7,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef LLVM_TOOLS_STL_EXTRAS_H
-#define LLVM_TOOLS_STL_EXTRAS_H
+#ifndef LLVM_SUPPORT_STL_EXTRAS_H
+#define LLVM_SUPPORT_STL_EXTRAS_H
 
 #include <functional>
 
diff --git a/include/llvm/Tools/StringExtras.h b/include/llvm/Support/StringExtras.h
similarity index 97%
rename from include/llvm/Tools/StringExtras.h
rename to include/llvm/Support/StringExtras.h
index 819da2f..585a42c 100644
--- a/include/llvm/Tools/StringExtras.h
+++ b/include/llvm/Support/StringExtras.h
@@ -10,7 +10,7 @@
 
 #include <string>
 #include <stdio.h>
-#include "llvm/Tools/DataTypes.h"
+#include "llvm/Support/DataTypes.h"
 
 static inline string utostr(uint64_t X, bool isNeg = false) {
   char Buffer[40];
diff --git a/include/llvm/Tools/CommandLine.h b/include/llvm/Tools/CommandLine.h
deleted file mode 100644
index 35d96d4..0000000
--- a/include/llvm/Tools/CommandLine.h
+++ /dev/null
@@ -1,284 +0,0 @@
-//===-- llvm/Tools/CommandLine.h - Command line parser for tools -*- C++ -*--=//
-//
-// This class implements a command line argument processor that is useful when
-// creating a tool.  It provides a simple, minimalistic interface that is easily
-// extensible and supports nonlocal (library) command line options.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TOOLS_COMMANDLINE_H
-#define LLVM_TOOLS_COMMANDLINE_H
-
-#include <string>
-#include <vector>
-#include <utility>
-#include <stdarg.h>
-
-namespace cl {   // Short namespace to make usage concise
-
-//===----------------------------------------------------------------------===//
-// ParseCommandLineOptions - Minimalistic command line option processing entry
-//
-void cl::ParseCommandLineOptions(int &argc, char **argv,
-				 const char *Overview = 0);
-
-
-//===----------------------------------------------------------------------===//
-// Global flags permitted to be passed to command line arguments
-
-enum FlagsOptions {
-  NoFlags         = 0x00,      // Marker to make explicit that we have no flags
-
-  // Flags for the number of occurances allowed...
-  Optional        = 0x00,      // Zero or One occurance
-  ZeroOrMore      = 0x01,      // Zero or more occurances allowed
-  Required        = 0x02,      // One occurance required
-  OneOrMore       = 0x03,      // One or more occurances required
-  OccurancesMask  = 0x07,
-
-  // Number of arguments to a value expected...
-  //Optional      = 0x00,      // The value can oppear... or not
-  ValueRequired   = 0x08,      // The value is required to appear!
-  ValueDisallowed = 0x10,      // A value may not be specified (for flags)
-  ValueMask       = 0x18,
-
-  // Control whether -help shows the command line option...
-  Hidden          = 0x20,      // -help doesn't -help-hidden does
-  ReallyHidden    = 0x60,      // Neither -help nor -help-hidden show this arg
-  HiddenMask      = 0x60,
-};
-
-
-//===----------------------------------------------------------------------===//
-// Option Base class
-//
-class Option {
-  friend void cl::ParseCommandLineOptions(int &, char **, const char *Overview);
-
-  // handleOccurances - Overriden by subclasses to handle the value passed into
-  // an argument.  Should return true if there was an error processing the
-  // argument and the program should exit.
-  //
-  virtual bool handleOccurance(const char *ArgName, const string &Arg) = 0;
-
-  int NumOccurances;          // The number of times specified
-public:
-  const char * const ArgStr;  // The argument string itself (ex: "help", "o")
-  const char * const HelpStr; // The descriptive text message for --help
-  const int Flags;            // Flags for the argument
-
-protected:
-  Option(const char *ArgStr, const char *Message, int Flags);
-  Option(int flags) : ArgStr(""), HelpStr(""), Flags(flags) {}
-
-  // Prints option name followed by message.  Always returns true.
-  bool error(string Message, const char *ArgName = 0);
-
-  // addOccurance - Wrapper around handleOccurance that enforces Flags
-  //
-  bool addOccurance(const char *ArgName, const string &Value);
-
-public:
-  // Return the width of the option tag for printing...
-  virtual unsigned getOptionWidth() const;
-
-  // printOptionInfo - Print out information about this option.  The 
-  // to-be-maintained width is specified.
-  //
-  virtual void printOptionInfo(unsigned GlobalWidth) const;
-
-public:
-  inline int getNumOccurances() const { return NumOccurances; }
-  virtual ~Option() {}
-};
-
-
-//===----------------------------------------------------------------------===//
-// Boolean/flag command line option
-//
-class Flag : public Option {
-  bool Value;
-  virtual bool handleOccurance(const char *ArgName, const string &Arg);
-public:
-  inline Flag(const char *ArgStr, const char *Message, int Flags = 0, 
-	      bool DefaultVal = 0) : Option(ArgStr, Message, Flags), 
-				     Value(DefaultVal) {}
-  operator bool() const { return Value; }
-  inline bool getValue() const { return Value; }
-  inline void setValue(bool Val) { Value = Val; }
-};
-
-
-
-//===----------------------------------------------------------------------===//
-// Integer valued command line option
-//
-class Int : public Option {
-  int Value;
-  virtual bool handleOccurance(const char *ArgName, const string &Arg);
-public:
-  inline Int(const char *ArgStr, const char *Help, int Flags = 0,
-	     int DefaultVal = 0) : Option(ArgStr, Help, Flags | ValueRequired),
-				   Value(DefaultVal) {}
-  inline operator int() const { return Value; }
-  inline int getValue() const { return Value; }
-  inline void setValue(int Val) { Value = Val; }
-};
-
-
-//===----------------------------------------------------------------------===//
-// String valued command line option
-//
-class String : public Option {
-  string Value;
-  virtual bool handleOccurance(const char *ArgName, const string &Arg);
-public:
-  inline String(const char *ArgStr, const char *Help, int Flags = 0, 
-		const char *DefaultVal = "") 
-    : Option(ArgStr, Help, Flags | ValueRequired), Value(DefaultVal) {}
-
-  inline const string &getValue() const { return Value; }
-  inline void setValue(const string &Val) { Value = Val; }
-};
-
-
-//===----------------------------------------------------------------------===//
-// Enum valued command line option
-//
-#define clEnumVal(ENUMVAL, DESC) #ENUMVAL, ENUMVAL, DESC
-#define clEnumValN(ENUMVAL, FLAGNAME, DESC) FLAGNAME, ENUMVAL, DESC
-
-// EnumBase - Base class for all enum/varargs related argument types...
-class EnumBase : public Option {
-protected:
-  // Use a vector instead of a map, because the lists should be short,
-  // the overhead is less, and most importantly, it keeps them in the order
-  // inserted so we can print our option out nicely.
-  vector<pair<const char *, pair<int, const char *> > > ValueMap;
-
-  inline EnumBase(const char *ArgStr, const char *Help, int Flags)
-    : Option(ArgStr, Help, Flags) {}
-  inline EnumBase(int Flags) : Option(Flags) {}
-
-  // processValues - Incorporate the specifed varargs arglist into the 
-  // ValueMap.
-  //
-  void processValues(va_list Vals);
-
-  // registerArgs - notify the system about these new arguments
-  void registerArgs();
-
-public:
-  // Turn an enum into the arg name that activates it
-  const char *getArgName(int ID) const;
-  const char *getArgDescription(int ID) const;
-};
-
-class EnumValueBase : public EnumBase {
-protected:
-  int Value;
-  inline EnumValueBase(const char *ArgStr, const char *Help, int Flags)
-    : EnumBase(ArgStr, Help, Flags) {}
-  inline EnumValueBase(int Flags) : EnumBase(Flags) {}
-
-  // handleOccurance - Set Value to the enum value specified by Arg
-  virtual bool handleOccurance(const char *ArgName, const string &Arg);
-
-  // Return the width of the option tag for printing...
-  virtual unsigned getOptionWidth() const;
-
-  // printOptionInfo - Print out information about this option.  The 
-  // to-be-maintained width is specified.
-  //
-  virtual void printOptionInfo(unsigned GlobalWidth) const;
-};
-
-template <class E>  // The enum we are representing
-class Enum : public EnumValueBase {
-public:
-  inline Enum(const char *ArgStr, int Flags, const char *Help, ...)
-    : EnumValueBase(ArgStr, Help, Flags | ValueRequired) {
-    va_list Values;
-    va_start(Values, Help);
-    processValues(Values);
-    va_end(Values);
-    Value = ValueMap.front().second.first; // Grab default value
-  }
-
-  inline E getValue() const { return (E)Value; }
-  inline void setValue(E Val) { Value = (E)Val; }
-};
-
-
-//===----------------------------------------------------------------------===//
-// Enum flags command line option
-//
-class EnumFlagsBase : public EnumValueBase {
-protected:
-  virtual bool handleOccurance(const char *ArgName, const string &Arg);
-  inline EnumFlagsBase(int Flags) : EnumValueBase(Flags | ValueDisallowed) {}
-
-  // Return the width of the option tag for printing...
-  virtual unsigned getOptionWidth() const;
-
-  // printOptionInfo - Print out information about this option.  The 
-  // to-be-maintained width is specified.
-  //
-  virtual void printOptionInfo(unsigned GlobalWidth) const;
-};
-
-template <class E>  // The enum we are representing
-class EnumFlags : public EnumFlagsBase {
-public:
-  inline EnumFlags(int Flags, ...) : EnumFlagsBase(Flags) {
-    va_list Values;
-    va_start(Values, Flags);
-    processValues(Values);
-    va_end(Values);
-    registerArgs();
-    Value = ValueMap.front().second.first; // Grab default value
-  }
-  inline E getValue() const { return (E)Value; }
-  inline void setValue(E Val) { Value = (E)Val; }
-};
-
-
-//===----------------------------------------------------------------------===//
-// Enum list command line option
-//
-class EnumListBase : public EnumBase {
-protected:
-  vector<int> Values;  // The options specified so far.
-
-  inline EnumListBase(int Flags) 
-    : EnumBase(Flags | ValueDisallowed | ZeroOrMore) {}
-  virtual bool handleOccurance(const char *ArgName, const string &Arg);
-
-  // Return the width of the option tag for printing...
-  virtual unsigned getOptionWidth() const;
-
-  // printOptionInfo - Print out information about this option.  The 
-  // to-be-maintained width is specified.
-  //
-  virtual void printOptionInfo(unsigned GlobalWidth) const;
-public:
-  inline unsigned size() { return Values.size(); }
-};
-
-template <class E>  // The enum we are representing
-class EnumList : public EnumListBase {
-public:
-  inline EnumList(int Flags, ...) : EnumListBase(Flags) {
-    va_list Values;
-    va_start(Values, Flags);
-    processValues(Values);
-    va_end(Values);
-    registerArgs();
-  }
-  inline E getValue(unsigned i) const { return (E)Values[i]; }
-  inline E operator[](unsigned i) const { return (E)Values[i]; }
-};
-
-} // End namespace cl
-
-#endif
diff --git a/lib/Analysis/IntervalPartition.cpp b/lib/Analysis/IntervalPartition.cpp
index bbdcbef..4bff950 100644
--- a/lib/Analysis/IntervalPartition.cpp
+++ b/lib/Analysis/IntervalPartition.cpp
@@ -6,7 +6,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/Analysis/IntervalIterator.h"
-#include "llvm/Tools/STLExtras.h"
+#include "llvm/Support/STLExtras.h"
 
 using namespace cfg;
 
diff --git a/lib/Analysis/LoopDepth.cpp b/lib/Analysis/LoopDepth.cpp
index ac73fda..7518606 100644
--- a/lib/Analysis/LoopDepth.cpp
+++ b/lib/Analysis/LoopDepth.cpp
@@ -7,7 +7,7 @@
 
 #include "llvm/Analysis/LoopDepth.h"
 #include "llvm/Analysis/IntervalPartition.h"
-#include "llvm/Tools/STLExtras.h"
+#include "llvm/Support/STLExtras.h"
 #include <algorithm>
 
 inline void LoopDepthCalculator::AddBB(const BasicBlock *BB) {
diff --git a/lib/Analysis/ModuleAnalyzer.cpp b/lib/Analysis/ModuleAnalyzer.cpp
index 7f50985..45637c9 100644
--- a/lib/Analysis/ModuleAnalyzer.cpp
+++ b/lib/Analysis/ModuleAnalyzer.cpp
@@ -13,7 +13,7 @@
 #include "llvm/BasicBlock.h"
 #include "llvm/DerivedTypes.h"
 #include "llvm/ConstPoolVals.h"
-#include "llvm/Tools/STLExtras.h"
+#include "llvm/Support/STLExtras.h"
 #include <map>
 
 // processModule - Driver function to call all of my subclasses virtual methods.
diff --git a/lib/Analysis/PostDominators.cpp b/lib/Analysis/PostDominators.cpp
index 14ed6c8..707b533 100644
--- a/lib/Analysis/PostDominators.cpp
+++ b/lib/Analysis/PostDominators.cpp
@@ -7,7 +7,7 @@
 #include "llvm/Analysis/Dominators.h"
 #include "llvm/Analysis/SimplifyCFG.h"   // To get cfg::UnifyAllExitNodes
 #include "llvm/CFG.h"
-#include "llvm/Tools/STLExtras.h"
+#include "llvm/Support/STLExtras.h"
 #include <algorithm>
 
 //===----------------------------------------------------------------------===//
diff --git a/lib/AsmParser/ParserInternals.h b/lib/AsmParser/ParserInternals.h
index 5d97bc6..ae44602 100644
--- a/lib/AsmParser/ParserInternals.h
+++ b/lib/AsmParser/ParserInternals.h
@@ -18,7 +18,7 @@
 #include "llvm/Method.h"
 #include "llvm/Type.h"
 #include "llvm/Assembly/Parser.h"
-#include "llvm/Tools/StringExtras.h"
+#include "llvm/Support/StringExtras.h"
 
 class Module;
 
diff --git a/lib/Bytecode/Writer/InstructionWriter.cpp b/lib/Bytecode/Writer/InstructionWriter.cpp
index 73969e6..a9b5e8d 100644
--- a/lib/Bytecode/Writer/InstructionWriter.cpp
+++ b/lib/Bytecode/Writer/InstructionWriter.cpp
@@ -15,7 +15,6 @@
 #include "llvm/BasicBlock.h"
 #include "llvm/Instruction.h"
 #include "llvm/DerivedTypes.h"
-#include "llvm/Tools/DataTypes.h"
 #include <algorithm>
 
 typedef unsigned char uchar;
diff --git a/lib/Bytecode/Writer/WriterInternals.h b/lib/Bytecode/Writer/WriterInternals.h
index be9ccf9..41f0b4d 100644
--- a/lib/Bytecode/Writer/WriterInternals.h
+++ b/lib/Bytecode/Writer/WriterInternals.h
@@ -16,7 +16,7 @@
 #include "llvm/Bytecode/Format.h"
 #include "llvm/Bytecode/Primitives.h"
 #include "llvm/Analysis/SlotCalculator.h"
-#include "llvm/Tools/DataTypes.h"
+#include "llvm/Support/DataTypes.h"
 #include "llvm/Instruction.h"
 
 class BytecodeWriter : public ModuleAnalyzer {
diff --git a/lib/CodeGen/InstrSelection/InstrSelection.cpp b/lib/CodeGen/InstrSelection/InstrSelection.cpp
index 0526dda..bfeec44 100644
--- a/lib/CodeGen/InstrSelection/InstrSelection.cpp
+++ b/lib/CodeGen/InstrSelection/InstrSelection.cpp
@@ -17,7 +17,7 @@
 #include "llvm/iMemory.h"
 #include "llvm/Instruction.h"
 #include "llvm/CodeGen/MachineInstr.h"
-#include "llvm/Tools/CommandLine.h"
+#include "llvm/Support/CommandLine.h"
 
 enum DebugLev {
   NoDebugInfo,
diff --git a/lib/Support/CommandLine.cpp b/lib/Support/CommandLine.cpp
index 013c22f..7c3f293 100644
--- a/lib/Support/CommandLine.cpp
+++ b/lib/Support/CommandLine.cpp
@@ -6,8 +6,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/Tools/CommandLine.h"
-#include "llvm/Tools/STLExtras.h"
+#include "llvm/Support/CommandLine.h"
+#include "llvm/Support/STLExtras.h"
 #include <vector>
 #include <algorithm>
 #include <map>
diff --git a/lib/Target/SparcV9/InstrSelection/InstrSelection.cpp b/lib/Target/SparcV9/InstrSelection/InstrSelection.cpp
index 0526dda..bfeec44 100644
--- a/lib/Target/SparcV9/InstrSelection/InstrSelection.cpp
+++ b/lib/Target/SparcV9/InstrSelection/InstrSelection.cpp
@@ -17,7 +17,7 @@
 #include "llvm/iMemory.h"
 #include "llvm/Instruction.h"
 #include "llvm/CodeGen/MachineInstr.h"
-#include "llvm/Tools/CommandLine.h"
+#include "llvm/Support/CommandLine.h"
 
 enum DebugLev {
   NoDebugInfo,
diff --git a/lib/Transforms/Scalar/ADCE.cpp b/lib/Transforms/Scalar/ADCE.cpp
index cb4de3c..f9b9ee3 100644
--- a/lib/Transforms/Scalar/ADCE.cpp
+++ b/lib/Transforms/Scalar/ADCE.cpp
@@ -10,7 +10,7 @@
 #include "llvm/Instruction.h"
 #include "llvm/Type.h"
 #include "llvm/Analysis/Dominators.h"
-#include "llvm/Tools/STLExtras.h"
+#include "llvm/Support/STLExtras.h"
 #include "llvm/Analysis/Writer.h"
 #include <set>
 #include <algorithm>
diff --git a/lib/Transforms/Scalar/DCE.cpp b/lib/Transforms/Scalar/DCE.cpp
index 56a6d1e..515fd00 100644
--- a/lib/Transforms/Scalar/DCE.cpp
+++ b/lib/Transforms/Scalar/DCE.cpp
@@ -23,7 +23,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/Optimizations/DCE.h"
-#include "llvm/Tools/STLExtras.h"
+#include "llvm/Support/STLExtras.h"
 #include "llvm/Module.h"
 #include "llvm/Method.h"
 #include "llvm/BasicBlock.h"
diff --git a/lib/Transforms/Scalar/InductionVars.cpp b/lib/Transforms/Scalar/InductionVars.cpp
index 4f88685..42397e0 100644
--- a/lib/Transforms/Scalar/InductionVars.cpp
+++ b/lib/Transforms/Scalar/InductionVars.cpp
@@ -23,7 +23,7 @@
 #include "llvm/ConstPoolVals.h"
 #include "llvm/Analysis/IntervalPartition.h"
 #include "llvm/Assembly/Writer.h"
-#include "llvm/Tools/STLExtras.h"
+#include "llvm/Support/STLExtras.h"
 #include "llvm/SymbolTable.h"
 #include "llvm/iOther.h"
 #include "llvm/CFG.h"
diff --git a/lib/Transforms/Scalar/SCCP.cpp b/lib/Transforms/Scalar/SCCP.cpp
index a281552..f1f8d77 100644
--- a/lib/Transforms/Scalar/SCCP.cpp
+++ b/lib/Transforms/Scalar/SCCP.cpp
@@ -25,7 +25,7 @@
 #include "llvm/iOther.h"
 #include "llvm/iMemory.h"
 #include "llvm/iTerminators.h"
-#include "llvm/Tools/STLExtras.h"
+#include "llvm/Support/STLExtras.h"
 #include "llvm/Assembly/Writer.h"
 #include <algorithm>
 #include <map>
diff --git a/lib/VMCore/ConstantPool.cpp b/lib/VMCore/ConstantPool.cpp
index 092ca61..caa79bb 100644
--- a/lib/VMCore/ConstantPool.cpp
+++ b/lib/VMCore/ConstantPool.cpp
@@ -7,7 +7,7 @@
 #define __STDC_LIMIT_MACROS           // Get defs for INT64_MAX and friends...
 #include "llvm/ConstPoolVals.h"
 #include "llvm/ConstantPool.h"
-#include "llvm/Tools/StringExtras.h"  // itostr
+#include "llvm/Support/StringExtras.h"  // itostr
 #include "llvm/DerivedTypes.h"
 #include "llvm/SymbolTable.h"
 #include <algorithm>
diff --git a/lib/VMCore/Dominators.cpp b/lib/VMCore/Dominators.cpp
index 14ed6c8..707b533 100644
--- a/lib/VMCore/Dominators.cpp
+++ b/lib/VMCore/Dominators.cpp
@@ -7,7 +7,7 @@
 #include "llvm/Analysis/Dominators.h"
 #include "llvm/Analysis/SimplifyCFG.h"   // To get cfg::UnifyAllExitNodes
 #include "llvm/CFG.h"
-#include "llvm/Tools/STLExtras.h"
+#include "llvm/Support/STLExtras.h"
 #include <algorithm>
 
 //===----------------------------------------------------------------------===//
diff --git a/lib/VMCore/Module.cpp b/lib/VMCore/Module.cpp
index 9d0015f..618e27b 100644
--- a/lib/VMCore/Module.cpp
+++ b/lib/VMCore/Module.cpp
@@ -9,7 +9,7 @@
 #include "llvm/BasicBlock.h"
 #include "llvm/InstrTypes.h"
 #include "llvm/ValueHolderImpl.h"
-#include "llvm/Tools/STLExtras.h"
+#include "llvm/Support/STLExtras.h"
 
 // Instantiate Templates - This ugliness is the price we have to pay
 // for having a DefHolderImpl.h file seperate from DefHolder.h!  :(
diff --git a/lib/VMCore/SymbolTable.cpp b/lib/VMCore/SymbolTable.cpp
index 07e4b87..e054b88 100644
--- a/lib/VMCore/SymbolTable.cpp
+++ b/lib/VMCore/SymbolTable.cpp
@@ -6,7 +6,7 @@
 
 #include "llvm/SymbolTable.h"
 #include "llvm/InstrTypes.h"
-#include "llvm/Tools/StringExtras.h"
+#include "llvm/Support/StringExtras.h"
 #ifndef NDEBUG
 #include "llvm/BasicBlock.h"   // Required for assertions to work.
 #include "llvm/Type.h"
diff --git a/lib/VMCore/Type.cpp b/lib/VMCore/Type.cpp
index e28c3d1..2adba04 100644
--- a/lib/VMCore/Type.cpp
+++ b/lib/VMCore/Type.cpp
@@ -5,7 +5,7 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/DerivedTypes.h"
-#include "llvm/Tools/StringExtras.h"
+#include "llvm/Support/StringExtras.h"
 
 //===----------------------------------------------------------------------===//
 //                         Type Class Implementation
diff --git a/support/lib/Support/CommandLine.cpp b/support/lib/Support/CommandLine.cpp
index 013c22f..7c3f293 100644
--- a/support/lib/Support/CommandLine.cpp
+++ b/support/lib/Support/CommandLine.cpp
@@ -6,8 +6,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/Tools/CommandLine.h"
-#include "llvm/Tools/STLExtras.h"
+#include "llvm/Support/CommandLine.h"
+#include "llvm/Support/STLExtras.h"
 #include <vector>
 #include <algorithm>
 #include <map>
diff --git a/tools/analyze/analyze.cpp b/tools/analyze/analyze.cpp
index 4dc00b2..3adef16 100644
--- a/tools/analyze/analyze.cpp
+++ b/tools/analyze/analyze.cpp
@@ -16,7 +16,7 @@
 #include "llvm/Method.h"
 #include "llvm/Bytecode/Reader.h"
 #include "llvm/Assembly/Parser.h"
-#include "llvm/Tools/CommandLine.h"
+#include "llvm/Support/CommandLine.h"
 #include "llvm/Analysis/Writer.h"
 
 #include "llvm/Analysis/Dominators.h"
diff --git a/tools/as/as.cpp b/tools/as/as.cpp
index da05a36..8cb2747 100644
--- a/tools/as/as.cpp
+++ b/tools/as/as.cpp
@@ -16,7 +16,7 @@
 #include "llvm/Assembly/Parser.h"
 #include "llvm/Assembly/Writer.h"
 #include "llvm/Bytecode/Writer.h"
-#include "llvm/Tools/CommandLine.h"
+#include "llvm/Support/CommandLine.h"
 
 cl::String InputFilename ("", "Parse <arg> file, compile to bytecode", 0, "-");
 cl::String OutputFilename("o", "Override output filename", 0, "");
diff --git a/tools/dis/dis.cpp b/tools/dis/dis.cpp
index d1f61d7..5959476 100644
--- a/tools/dis/dis.cpp
+++ b/tools/dis/dis.cpp
@@ -21,7 +21,7 @@
 #include "llvm/Module.h"
 #include "llvm/Assembly/Writer.h"
 #include "llvm/Bytecode/Reader.h"
-#include "llvm/Tools/CommandLine.h"
+#include "llvm/Support/CommandLine.h"
 #include "llvm/Method.h"
 #include "llvm/CFG.h"
 
diff --git a/tools/llc/llc.cpp b/tools/llc/llc.cpp
index ab1f532..c4370d9 100644
--- a/tools/llc/llc.cpp
+++ b/tools/llc/llc.cpp
@@ -17,7 +17,7 @@
 #include "llvm/Bytecode/Writer.h"
 #include "llvm/CodeGen/InstrSelection.h"
 #include "llvm/CodeGen/Sparc.h"
-#include "llvm/Tools/CommandLine.h"
+#include "llvm/Support/CommandLine.h"
 
 cl::String InputFilename ("", "Input filename", cl::NoFlags, "");
 cl::String OutputFilename("o", "Output filename", cl::NoFlags, "");
diff --git a/tools/llvm-as/as.cpp b/tools/llvm-as/as.cpp
index da05a36..8cb2747 100644
--- a/tools/llvm-as/as.cpp
+++ b/tools/llvm-as/as.cpp
@@ -16,7 +16,7 @@
 #include "llvm/Assembly/Parser.h"
 #include "llvm/Assembly/Writer.h"
 #include "llvm/Bytecode/Writer.h"
-#include "llvm/Tools/CommandLine.h"
+#include "llvm/Support/CommandLine.h"
 
 cl::String InputFilename ("", "Parse <arg> file, compile to bytecode", 0, "-");
 cl::String OutputFilename("o", "Override output filename", 0, "");
diff --git a/tools/llvm-as/llvm-as.cpp b/tools/llvm-as/llvm-as.cpp
index da05a36..8cb2747 100644
--- a/tools/llvm-as/llvm-as.cpp
+++ b/tools/llvm-as/llvm-as.cpp
@@ -16,7 +16,7 @@
 #include "llvm/Assembly/Parser.h"
 #include "llvm/Assembly/Writer.h"
 #include "llvm/Bytecode/Writer.h"
-#include "llvm/Tools/CommandLine.h"
+#include "llvm/Support/CommandLine.h"
 
 cl::String InputFilename ("", "Parse <arg> file, compile to bytecode", 0, "-");
 cl::String OutputFilename("o", "Override output filename", 0, "");
diff --git a/tools/llvm-dis/dis.cpp b/tools/llvm-dis/dis.cpp
index d1f61d7..5959476 100644
--- a/tools/llvm-dis/dis.cpp
+++ b/tools/llvm-dis/dis.cpp
@@ -21,7 +21,7 @@
 #include "llvm/Module.h"
 #include "llvm/Assembly/Writer.h"
 #include "llvm/Bytecode/Reader.h"
-#include "llvm/Tools/CommandLine.h"
+#include "llvm/Support/CommandLine.h"
 #include "llvm/Method.h"
 #include "llvm/CFG.h"
 
diff --git a/tools/llvm-dis/llvm-dis.cpp b/tools/llvm-dis/llvm-dis.cpp
index d1f61d7..5959476 100644
--- a/tools/llvm-dis/llvm-dis.cpp
+++ b/tools/llvm-dis/llvm-dis.cpp
@@ -21,7 +21,7 @@
 #include "llvm/Module.h"
 #include "llvm/Assembly/Writer.h"
 #include "llvm/Bytecode/Reader.h"
-#include "llvm/Tools/CommandLine.h"
+#include "llvm/Support/CommandLine.h"
 #include "llvm/Method.h"
 #include "llvm/CFG.h"
 
diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp
index 2b5b069..3dedd0b 100644
--- a/tools/opt/opt.cpp
+++ b/tools/opt/opt.cpp
@@ -24,7 +24,7 @@
 #include "llvm/Module.h"
 #include "llvm/Bytecode/Reader.h"
 #include "llvm/Bytecode/Writer.h"
-#include "llvm/Tools/CommandLine.h"
+#include "llvm/Support/CommandLine.h"
 #include "llvm/Optimizations/AllOpts.h"
 
 using namespace opt;