diff options
author | Chris Lattner <sabre@nondot.org> | 2001-07-23 17:46:59 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2001-07-23 17:46:59 +0000 |
commit | 57dbb3ad63b6a0e77798edb156ef43daa3bfc67e (patch) | |
tree | b10d00a2fd1de0f409b4f341f0a3b1ace177ec15 /include/llvm | |
parent | dbab15a2c9accc0242109881e1632137cb97dbc9 (diff) | |
download | llvm-57dbb3ad63b6a0e77798edb156ef43daa3bfc67e.tar.gz llvm-57dbb3ad63b6a0e77798edb156ef43daa3bfc67e.tar.bz2 llvm-57dbb3ad63b6a0e77798edb156ef43daa3bfc67e.tar.xz |
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
Diffstat (limited to 'include/llvm')
-rw-r--r-- | include/llvm/Bytecode/Primitives.h | 2 | ||||
-rw-r--r-- | include/llvm/CodeGen/MachineInstr.h | 2 | ||||
-rw-r--r-- | include/llvm/CodeGen/TargetMachine.h | 2 | ||||
-rw-r--r-- | include/llvm/ConstPoolVals.h | 2 | ||||
-rw-r--r-- | include/llvm/Support/DataTypes.h (renamed from include/llvm/Tools/DataTypes.h) | 5 | ||||
-rw-r--r-- | include/llvm/Support/HashExtras.h | 22 | ||||
-rw-r--r-- | include/llvm/Support/STLExtras.h (renamed from include/llvm/Tools/STLExtras.h) | 6 | ||||
-rw-r--r-- | include/llvm/Support/StringExtras.h (renamed from include/llvm/Tools/StringExtras.h) | 2 | ||||
-rw-r--r-- | include/llvm/Tools/CommandLine.h | 284 |
9 files changed, 32 insertions, 295 deletions
diff --git a/include/llvm/Bytecode/Primitives.h b/include/llvm/Bytecode/Primitives.h index e5f93e718c..d687fb8185 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 72f299f015..5c6fb62928 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 97bcc54e25..0be7e54baf 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 a9730c2f8a..a2a5d8a7ff 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 index ada16c24da..84b8a65ab1 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 0000000000..ecd572e3d9 --- /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 index 933db3a8ff..867e112819 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 index 819da2f054..585a42ca4c 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 35d96d4922..0000000000 --- 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 |