diff options
26 files changed, 791 insertions, 763 deletions
diff --git a/include/llvm/ParamAttrsList.h b/include/llvm/ParamAttrsList.h new file mode 100644 index 0000000000..fca9046eaa --- /dev/null +++ b/include/llvm/ParamAttrsList.h @@ -0,0 +1,227 @@ +//===-- llvm/ParamAttrsList.h - List and Vector of ParamAttrs ---*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file contains classes used to represent the parameter attributes +// associated with functions and their calls. +// +// The implementation of ParamAttrsList is in lib/VMCore/ParameterAttributes.cpp. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_PARAM_ATTRS_LIST_H +#define LLVM_PARAM_ATTRS_LIST_H + +#include "llvm/ADT/SmallVector.h" +#include "llvm/ADT/FoldingSet.h" +#include "llvm/ParameterAttributes.h" +#include <cassert> + +namespace llvm { + +/// @brief A vector of attribute/index pairs. +typedef SmallVector<ParamAttrsWithIndex,4> ParamAttrsVector; + +/// This class represents a list of attribute/index pairs for parameter +/// attributes. Each entry in the list contains the index of a function +/// parameter and the associated ParameterAttributes. If a parameter's index is +/// not present in the list, then no attributes are set for that parameter. The +/// list may also be empty, but this does not occur in practice. An item in +/// the list with an index of 0 refers to the function as a whole or its result. +/// To construct a ParamAttrsList, you must first fill a ParamAttrsVector with +/// the attribute/index pairs you wish to set. The list of attributes can be +/// turned into a string of mnemonics suitable for LLVM Assembly output. +/// Various accessors are provided to obtain information about the attributes. +/// Note that objects of this class are "uniqued". The \p get method can return +/// the pointer of an existing and identical instance. Consequently, reference +/// counting is necessary in order to determine when the last reference to a +/// ParamAttrsList of a given shape is dropped. Users of this class should use +/// the addRef and dropRef methods to add/drop references. When the reference +/// count goes to zero, the ParamAttrsList object is deleted. +/// This class is used by Function, CallInst and InvokeInst to represent their +/// sets of parameter attributes. +/// @brief A List of ParameterAttributes. +class ParamAttrsList : public FoldingSetNode { + /// @name Construction + /// @{ + private: + // ParamAttrsList is uniqued, these should not be publicly available + void operator=(const ParamAttrsList &); // Do not implement + ParamAttrsList(const ParamAttrsList &); // Do not implement + ~ParamAttrsList(); // Private implementation + + /// Only the \p get method can invoke this when it wants to create a + /// new instance. + /// @brief Construct an ParamAttrsList from a ParamAttrsVector + explicit ParamAttrsList(const ParamAttrsVector &attrVec); + + public: + /// This method ensures the uniqueness of ParamAttrsList instances. The + /// argument is a vector of attribute/index pairs as represented by the + /// ParamAttrsWithIndex structure. The index values must be in strictly + /// increasing order and ParamAttr::None is not allowed. The vector is + /// used to construct the ParamAttrsList instance. If an instance with + /// identical vector pairs exists, it will be returned instead of creating + /// a new instance. + /// @brief Get a ParamAttrsList instance. + static const ParamAttrsList *get(const ParamAttrsVector &attrVec); + + /// Returns the ParamAttrsList obtained by modifying PAL using the supplied + /// list of attribute/index pairs. Any existing attributes for the given + /// index are replaced by the given attributes. If there were no attributes + /// then the new ones are inserted. Attributes can be deleted by replacing + /// them with ParamAttr::None. Index values must be strictly increasing. + /// @brief Get a new ParamAttrsList instance by modifying an existing one. + static const ParamAttrsList *getModified(const ParamAttrsList *PAL, + const ParamAttrsVector &modVec); + + /// @brief Add the specified attributes to those in PAL at index idx. + static const ParamAttrsList *includeAttrs(const ParamAttrsList *PAL, + uint16_t idx, + ParameterAttributes attrs); + + /// @brief Remove the specified attributes from those in PAL at index idx. + static const ParamAttrsList *excludeAttrs(const ParamAttrsList *PAL, + uint16_t idx, + ParameterAttributes attrs); + + /// @} + /// @name Accessors + /// @{ + public: + /// The parameter attributes for the \p indexth parameter are returned. + /// The 0th parameter refers to the return type of the function. Note that + /// the \p param_index is an index into the function's parameters, not an + /// index into this class's list of attributes. The result of getParamIndex + /// is always suitable input to this function. + /// @returns The all the ParameterAttributes for the \p indexth parameter + /// as a uint16_t of enumeration values OR'd together. + /// @brief Get the attributes for a parameter + ParameterAttributes getParamAttrs(uint16_t param_index) const; + + /// This checks to see if the \p ith function parameter has the parameter + /// attribute given by \p attr set. + /// @returns true if the parameter attribute is set + /// @brief Determine if a ParameterAttributes is set + bool paramHasAttr(uint16_t i, ParameterAttributes attr) const { + return getParamAttrs(i) & attr; + } + + /// This extracts the alignment for the \p ith function parameter. + /// @returns 0 if unknown, else the alignment in bytes + /// @brief Extract the Alignment + uint16_t getParamAlignment(uint16_t i) const { + return (getParamAttrs(i) & ParamAttr::Alignment) >> 16; + } + + /// This returns whether the given attribute is set for at least one + /// parameter or for the return value. + /// @returns true if the parameter attribute is set somewhere + /// @brief Determine if a ParameterAttributes is set somewhere + bool hasAttrSomewhere(ParameterAttributes attr) const; + + /// The set of ParameterAttributes set in Attributes is converted to a + /// string of equivalent mnemonics. This is, presumably, for writing out + /// the mnemonics for the assembly writer. + /// @brief Convert parameter attribute bits to text + static std::string getParamAttrsText(ParameterAttributes Attributes); + + /// The \p Indexth parameter attribute is converted to string. + /// @brief Get the text for the parmeter attributes for one parameter. + std::string getParamAttrsTextByIndex(uint16_t Index) const { + return getParamAttrsText(getParamAttrs(Index)); + } + + /// @brief Comparison operator for ParamAttrsList + bool operator < (const ParamAttrsList& that) const { + if (this->attrs.size() < that.attrs.size()) + return true; + if (this->attrs.size() > that.attrs.size()) + return false; + for (unsigned i = 0; i < attrs.size(); ++i) { + if (attrs[i].index < that.attrs[i].index) + return true; + if (attrs[i].index > that.attrs[i].index) + return false; + if (attrs[i].attrs < that.attrs[i].attrs) + return true; + if (attrs[i].attrs > that.attrs[i].attrs) + return false; + } + return false; + } + + /// Returns the parameter index of a particular parameter attribute in this + /// list of attributes. Note that the attr_index is an index into this + /// class's list of attributes, not the index of a parameter. The result + /// is the index of the parameter. Clients generally should not use this + /// method. It is used internally by LLVM. + /// @brief Get a parameter index + uint16_t getParamIndex(unsigned attr_index) const { + return attrs[attr_index].index; + } + + ParameterAttributes getParamAttrsAtIndex(unsigned attr_index) const { + return attrs[attr_index].attrs; + } + + /// Determines how many parameter attributes are set in this ParamAttrsList. + /// This says nothing about how many parameters the function has. It also + /// says nothing about the highest parameter index that has attributes. + /// Clients generally should not use this method. It is used internally by + /// LLVM. + /// @returns the number of parameter attributes in this ParamAttrsList. + /// @brief Return the number of parameter attributes this type has. + unsigned size() const { return attrs.size(); } + + /// @brief Return the number of references to this ParamAttrsList. + unsigned numRefs() const { return refCount; } + + /// @} + /// @name Mutators + /// @{ + public: + /// Classes retaining references to ParamAttrsList objects should call this + /// method to increment the reference count. This ensures that the + /// ParamAttrsList object will not disappear until the class drops it. + /// @brief Add a reference to this instance. + void addRef() const { refCount++; } + + /// Classes retaining references to ParamAttrsList objects should call this + /// method to decrement the reference count and possibly delete the + /// ParamAttrsList object. This ensures that ParamAttrsList objects are + /// cleaned up only when the last reference to them is dropped. + /// @brief Drop a reference to this instance. + void dropRef() const { + assert(refCount != 0 && "dropRef without addRef"); + if (--refCount == 0) + delete this; + } + + /// @} + /// @name Implementation Details + /// @{ + public: + void Profile(FoldingSetNodeID &ID) const { + Profile(ID, attrs); + } + static void Profile(FoldingSetNodeID &ID, const ParamAttrsVector &Attrs); + void dump() const; + + /// @} + /// @name Data + /// @{ + private: + ParamAttrsVector attrs; ///< The list of attributes + mutable unsigned refCount; ///< The number of references to this object + /// @} +}; + +} // End llvm namespace + +#endif diff --git a/include/llvm/ParameterAttributes.h b/include/llvm/ParameterAttributes.h index 33cc95c95d..5cff0443de 100644 --- a/include/llvm/ParameterAttributes.h +++ b/include/llvm/ParameterAttributes.h @@ -7,18 +7,14 @@ // //===----------------------------------------------------------------------===// // -// This file contains the types necessary to represent the parameter attributes -// associated with functions and their calls. -// -// The implementations of these classes live in lib/VMCore/Function.cpp. +// This file contains the simple types necessary to represent the parameter +// attributes associated with functions and their calls. // //===----------------------------------------------------------------------===// #ifndef LLVM_PARAMETER_ATTRIBUTES_H #define LLVM_PARAMETER_ATTRIBUTES_H -#include "llvm/ADT/SmallVector.h" -#include "llvm/ADT/FoldingSet.h" #include <cassert> namespace llvm { @@ -95,204 +91,6 @@ struct ParamAttrsWithIndex { } }; -/// @brief A vector of attribute/index pairs. -typedef SmallVector<ParamAttrsWithIndex,4> ParamAttrsVector; - -/// This class represents a list of attribute/index pairs for parameter -/// attributes. Each entry in the list contains the index of a function -/// parameter and the associated ParameterAttributes. If a parameter's index is -/// not present in the list, then no attributes are set for that parameter. The -/// list may also be empty, but this does not occur in practice. An item in -/// the list with an index of 0 refers to the function as a whole or its result. -/// To construct a ParamAttrsList, you must first fill a ParamAttrsVector with -/// the attribute/index pairs you wish to set. The list of attributes can be -/// turned into a string of mnemonics suitable for LLVM Assembly output. -/// Various accessors are provided to obtain information about the attributes. -/// Note that objects of this class are "uniqued". The \p get method can return -/// the pointer of an existing and identical instance. Consequently, reference -/// counting is necessary in order to determine when the last reference to a -/// ParamAttrsList of a given shape is dropped. Users of this class should use -/// the addRef and dropRef methods to add/drop references. When the reference -/// count goes to zero, the ParamAttrsList object is deleted. -/// This class is used by Function, CallInst and InvokeInst to represent their -/// sets of parameter attributes. -/// @brief A List of ParameterAttributes. -class ParamAttrsList : public FoldingSetNode { - /// @name Construction - /// @{ - private: - // ParamAttrsList is uniqued, these should not be publicly available - void operator=(const ParamAttrsList &); // Do not implement - ParamAttrsList(const ParamAttrsList &); // Do not implement - ~ParamAttrsList(); // Private implementation - - /// Only the \p get method can invoke this when it wants to create a - /// new instance. - /// @brief Construct an ParamAttrsList from a ParamAttrsVector - explicit ParamAttrsList(const ParamAttrsVector &attrVec); - - public: - /// This method ensures the uniqueness of ParamAttrsList instances. The - /// argument is a vector of attribute/index pairs as represented by the - /// ParamAttrsWithIndex structure. The index values must be in strictly - /// increasing order and ParamAttr::None is not allowed. The vector is - /// used to construct the ParamAttrsList instance. If an instance with - /// identical vector pairs exists, it will be returned instead of creating - /// a new instance. - /// @brief Get a ParamAttrsList instance. - static const ParamAttrsList *get(const ParamAttrsVector &attrVec); - - /// Returns the ParamAttrsList obtained by modifying PAL using the supplied - /// list of attribute/index pairs. Any existing attributes for the given - /// index are replaced by the given attributes. If there were no attributes - /// then the new ones are inserted. Attributes can be deleted by replacing - /// them with ParamAttr::None. Index values must be strictly increasing. - /// @brief Get a new ParamAttrsList instance by modifying an existing one. - static const ParamAttrsList *getModified(const ParamAttrsList *PAL, - const ParamAttrsVector &modVec); - - /// @brief Add the specified attributes to those in PAL at index idx. - static const ParamAttrsList *includeAttrs(const ParamAttrsList *PAL, - uint16_t idx, - ParameterAttributes attrs); - - /// @brief Remove the specified attributes from those in PAL at index idx. - static const ParamAttrsList *excludeAttrs(const ParamAttrsList *PAL, - uint16_t idx, - ParameterAttributes attrs); - - /// @} - /// @name Accessors - /// @{ - public: - /// The parameter attributes for the \p indexth parameter are returned. - /// The 0th parameter refers to the return type of the function. Note that - /// the \p param_index is an index into the function's parameters, not an - /// index into this class's list of attributes. The result of getParamIndex - /// is always suitable input to this function. - /// @returns The all the ParameterAttributes for the \p indexth parameter - /// as a uint16_t of enumeration values OR'd together. - /// @brief Get the attributes for a parameter - ParameterAttributes getParamAttrs(uint16_t param_index) const; - - /// This checks to see if the \p ith function parameter has the parameter - /// attribute given by \p attr set. - /// @returns true if the parameter attribute is set - /// @brief Determine if a ParameterAttributes is set - bool paramHasAttr(uint16_t i, ParameterAttributes attr) const { - return getParamAttrs(i) & attr; - } - - /// This extracts the alignment for the \p ith function parameter. - /// @returns 0 if unknown, else the alignment in bytes - /// @brief Extract the Alignment - uint16_t getParamAlignment(uint16_t i) const { - return (getParamAttrs(i) & ParamAttr::Alignment) >> 16; - } - - /// This returns whether the given attribute is set for at least one - /// parameter or for the return value. - /// @returns true if the parameter attribute is set somewhere - /// @brief Determine if a ParameterAttributes is set somewhere - bool hasAttrSomewhere(ParameterAttributes attr) const; - - /// The set of ParameterAttributes set in Attributes is converted to a - /// string of equivalent mnemonics. This is, presumably, for writing out - /// the mnemonics for the assembly writer. - /// @brief Convert parameter attribute bits to text - static std::string getParamAttrsText(ParameterAttributes Attributes); - - /// The \p Indexth parameter attribute is converted to string. - /// @brief Get the text for the parmeter attributes for one parameter. - std::string getParamAttrsTextByIndex(uint16_t Index) const { - return getParamAttrsText(getParamAttrs(Index)); - } - - /// @brief Comparison operator for ParamAttrsList - bool operator < (const ParamAttrsList& that) const { - if (this->attrs.size() < that.attrs.size()) - return true; - if (this->attrs.size() > that.attrs.size()) - return false; - for (unsigned i = 0; i < attrs.size(); ++i) { - if (attrs[i].index < that.attrs[i].index) - return true; - if (attrs[i].index > that.attrs[i].index) - return false; - if (attrs[i].attrs < that.attrs[i].attrs) - return true; - if (attrs[i].attrs > that.attrs[i].attrs) - return false; - } - return false; - } - - /// Returns the parameter index of a particular parameter attribute in this - /// list of attributes. Note that the attr_index is an index into this - /// class's list of attributes, not the index of a parameter. The result - /// is the index of the parameter. Clients generally should not use this - /// method. It is used internally by LLVM. - /// @brief Get a parameter index - uint16_t getParamIndex(unsigned attr_index) const { - return attrs[attr_index].index; - } - - ParameterAttributes getParamAttrsAtIndex(unsigned attr_index) const { - return attrs[attr_index].attrs; - } - - /// Determines how many parameter attributes are set in this ParamAttrsList. - /// This says nothing about how many parameters the function has. It also - /// says nothing about the highest parameter index that has attributes. - /// Clients generally should not use this method. It is used internally by - /// LLVM. - /// @returns the number of parameter attributes in this ParamAttrsList. - /// @brief Return the number of parameter attributes this type has. - unsigned size() const { return attrs.size(); } - - /// @brief Return the number of references to this ParamAttrsList. - unsigned numRefs() const { return refCount; } - - /// @} - /// @name Mutators - /// @{ - public: - /// Classes retaining references to ParamAttrsList objects should call this - /// method to increment the reference count. This ensures that the - /// ParamAttrsList object will not disappear until the class drops it. - /// @brief Add a reference to this instance. - void addRef() const { refCount++; } - - /// Classes retaining references to ParamAttrsList objects should call this - /// method to decrement the reference count and possibly delete the - /// ParamAttrsList object. This ensures that ParamAttrsList objects are - /// cleaned up only when the last reference to them is dropped. - /// @brief Drop a reference to this instance. - void dropRef() const { - assert(refCount != 0 && "dropRef without addRef"); - if (--refCount == 0) - delete this; - } - - /// @} - /// @name Implementation Details - /// @{ - public: - void Profile(FoldingSetNodeID &ID) const { - Profile(ID, attrs); - } - static void Profile(FoldingSetNodeID &ID, const ParamAttrsVector &Attrs); - void dump() const; - - /// @} - /// @name Data - /// @{ - private: - ParamAttrsVector attrs; ///< The list of attributes - mutable unsigned refCount; ///< The number of references to this object - /// @} -}; - } // End llvm namespace #endif diff --git a/lib/AsmParser/llvmAsmParser.cpp.cvs b/lib/AsmParser/llvmAsmParser.cpp.cvs index 72c53c224d..5b53c55868 100644 --- a/lib/AsmParser/llvmAsmParser.cpp.cvs +++ b/lib/AsmParser/llvmAsmParser.cpp.cvs @@ -378,7 +378,7 @@ /* Copy the first part of user declarations. */ -#line 14 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 14 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" #include "ParserInternals.h" #include "llvm/CallingConv.h" @@ -393,6 +393,7 @@ #include "llvm/ADT/STLExtras.h" #include "llvm/Support/MathExtras.h" #include "llvm/Support/Streams.h" +#include "llvm/ParamAttrsList.h" #include <algorithm> #include <list> #include <map> @@ -1337,7 +1338,7 @@ Module *llvm::RunVMAsmParser(llvm::MemoryBuffer *MB) { #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE -#line 952 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 953 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" { llvm::Module *ModuleVal; llvm::Function *FunctionVal; @@ -1385,7 +1386,7 @@ typedef union YYSTYPE llvm::FCmpInst::Predicate FPredicate; } /* Line 193 of yacc.c. */ -#line 1389 "llvmAsmParser.tab.c" +#line 1390 "llvmAsmParser.tab.c" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -1398,7 +1399,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 1402 "llvmAsmParser.tab.c" +#line 1403 "llvmAsmParser.tab.c" #ifdef short # undef short @@ -1827,39 +1828,39 @@ static const yytype_int16 yyrhs[] = /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, - 1114, 1115, 1115, 1115, 1115, 1115, 1115, 1116, 1116, 1116, - 1116, 1116, 1116, 1117, 1117, 1117, 1117, 1117, 1117, 1120, - 1120, 1121, 1121, 1122, 1122, 1123, 1123, 1124, 1124, 1128, - 1128, 1129, 1129, 1130, 1130, 1131, 1131, 1132, 1132, 1133, - 1133, 1134, 1134, 1135, 1136, 1141, 1142, 1142, 1142, 1142, - 1142, 1144, 1144, 1144, 1145, 1145, 1147, 1148, 1152, 1156, - 1161, 1161, 1163, 1164, 1169, 1175, 1176, 1177, 1178, 1179, - 1183, 1184, 1185, 1189, 1190, 1191, 1192, 1196, 1197, 1198, - 1202, 1203, 1204, 1205, 1206, 1210, 1211, 1212, 1215, 1216, - 1217, 1218, 1219, 1220, 1221, 1228, 1229, 1230, 1231, 1232, - 1233, 1234, 1235, 1236, 1237, 1241, 1242, 1247, 1248, 1249, - 1250, 1251, 1252, 1255, 1256, 1261, 1262, 1269, 1270, 1276, - 1277, 1286, 1294, 1295, 1300, 1301, 1302, 1307, 1320, 1320, - 1320, 1320, 1320, 1320, 1320, 1323, 1327, 1331, 1338, 1343, - 1351, 1381, 1406, 1411, 1421, 1431, 1435, 1445, 1452, 1461, - 1468, 1473, 1478, 1485, 1486, 1493, 1500, 1508, 1514, 1526, - 1554, 1570, 1597, 1625, 1651, 1671, 1697, 1717, 1729, 1736, - 1802, 1812, 1822, 1828, 1838, 1844, 1854, 1859, 1864, 1877, - 1889, 1911, 1919, 1925, 1936, 1941, 1946, 1952, 1958, 1967, - 1971, 1979, 1979, 1982, 1982, 1985, 1997, 2018, 2023, 2031, - 2032, 2036, 2036, 2040, 2040, 2043, 2046, 2070, 2082, 2081, - 2093, 2092, 2102, 2101, 2112, 2152, 2155, 2161, 2171, 2175, - 2180, 2182, 2187, 2192, 2201, 2211, 2222, 2226, 2235, 2244, - 2249, 2383, 2383, 2385, 2394, 2394, 2396, 2401, 2413, 2417, - 2422, 2426, 2430, 2434, 2438, 2442, 2446, 2450, 2454, 2479, - 2483, 2493, 2497, 2501, 2506, 2513, 2513, 2519, 2528, 2533, - 2538, 2542, 2551, 2560, 2569, 2573, 2581, 2607, 2611, 2616, - 2626, 2645, 2654, 2745, 2749, 2756, 2767, 2780, 2790, 2801, - 2811, 2822, 2830, 2840, 2847, 2850, 2851, 2858, 2862, 2867, - 2883, 2900, 2914, 2928, 2940, 2948, 2955, 2961, 2967, 2973, - 2988, 3086, 3091, 3095, 3102, 3109, 3117, 3124, 3132, 3140, - 3154, 3171, 3178 + 0, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, + 1115, 1116, 1116, 1116, 1116, 1116, 1116, 1117, 1117, 1117, + 1117, 1117, 1117, 1118, 1118, 1118, 1118, 1118, 1118, 1121, + 1121, 1122, 1122, 1123, 1123, 1124, 1124, 1125, 1125, 1129, + 1129, 1130, 1130, 1131, 1131, 1132, 1132, 1133, 1133, 1134, + 1134, 1135, 1135, 1136, 1137, 1142, 1143, 1143, 1143, 1143, + 1143, 1145, 1145, 1145, 1146, 1146, 1148, 1149, 1153, 1157, + 1162, 1162, 1164, 1165, 1170, 1176, 1177, 1178, 1179, 1180, + 1184, 1185, 1186, 1190, 1191, 1192, 1193, 1197, 1198, 1199, + 1203, 1204, 1205, 1206, 1207, 1211, 1212, 1213, 1216, 1217, + 1218, 1219, 1220, 1221, 1222, 1229, 1230, 1231, 1232, 1233, + 1234, 1235, 1236, 1237, 1238, 1242, 1243, 1248, 1249, 1250, + 1251, 1252, 1253, 1256, 1257, 1262, 1263, 1270, 1271, 1277, + 1278, 1287, 1295, 1296, 1301, 1302, 1303, 1308, 1321, 1321, + 1321, 1321, 1321, 1321, 1321, 1324, 1328, 1332, 1339, 1344, + 1352, 1382, 1407, 1412, 1422, 1432, 1436, 1446, 1453, 1462, + 1469, 1474, 1479, 1486, 1487, 1494, 1501, 1509, 1515, 1527, + 1555, 1571, 1598, 1626, 1652, 1672, 1698, 1718, 1730, 1737, + 1803, 1813, 1823, 1829, 1839, 1845, 1855, 1860, 1865, 1878, + 1890, 1912, 1920, 1926, 1937, 1942, 1947, 1953, 1959, 1968, + 1972, 1980, 1980, 1983, 1983, 1986, 1998, 2019, 2024, 2032, + 2033, 2037, 2037, 2041, 2041, 2044, 2047, 2071, 2083, 2082, + 2094, 2093, 2103, 2102, 2113, 2153, 2156, 2162, 2172, 2176, + 2181, 2183, 2188, 2193, 2202, 2212, 2223, 2227, 2236, 2245, + 2250, 2384, 2384, 2386, 2395, 2395, 2397, 2402, 2414, 2418, + 2423, 2427, 2431, 2435, 2439, 2443, 2447, 2451, 2455, 2480, + 2484, 2494, 2498, 2502, 2507, 2514, 2514, 2520, 2529, 2534, + 2539, 2543, 2552, 2561, 2570, 2574, 2582, 2608, 2612, 2617, + 2627, 2646, 2655, 2746, 2750, 2757, 2768, 2781, 2791, 2802, + 2812, 2823, 2831, 2841, 2848, 2851, 2852, 2859, 2863, 2868, + 2884, 2901, 2915, 2929, 2941, 2949, 2956, 2962, 2968, 2974, + 2989, 3087, 3092, 3096, 3103, 3110, 3118, 3125, 3133, 3141, + 3155, 3172, 3179 }; #endif @@ -3473,152 +3474,152 @@ yyreduce: switch (yyn) { case 29: -#line 1120 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1121 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_EQ; ;} break; case 30: -#line 1120 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1121 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_NE; ;} break; case 31: -#line 1121 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1122 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_SLT; ;} break; case 32: -#line 1121 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1122 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_SGT; ;} break; case 33: -#line 1122 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1123 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_SLE; ;} break; case 34: -#line 1122 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1123 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_SGE; ;} break; case 35: -#line 1123 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1124 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_ULT; ;} break; case 36: -#line 1123 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1124 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_UGT; ;} break; case 37: -#line 1124 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1125 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_ULE; ;} break; case 38: -#line 1124 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1125 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.IPredicate) = ICmpInst::ICMP_UGE; ;} break; case 39: -#line 1128 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1129 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_OEQ; ;} break; case 40: -#line 1128 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1129 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_ONE; ;} break; case 41: -#line 1129 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1130 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_OLT; ;} break; case 42: -#line 1129 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1130 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_OGT; ;} break; case 43: -#line 1130 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1131 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_OLE; ;} break; case 44: -#line 1130 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1131 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_OGE; ;} break; case 45: -#line 1131 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1132 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_ORD; ;} break; case 46: -#line 1131 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1132 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_UNO; ;} break; case 47: -#line 1132 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1133 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_UEQ; ;} break; case 48: -#line 1132 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1133 "/Volumes/MacOS9/gcc/llvm/lib/AsmParser/llvmAsmParser.y" { (yyval.FPredicate) = FCmpInst::FCMP_UNE; ;} break; case 49: -#line 1133 "/Volumes/Nanpura/mrv/llvm/lib/AsmParser/llvmAsmParser.y" +#line 1134 "/Volumes/MacOS9/gcc/ |