[llvm-commits] [llvm] r56513 - in /llvm/trunk: include/llvm/ include/llvm/Support/ lib/Analysis/ lib/AsmParser/ lib/Bitcode/Reader/ lib/Bitcode/Writer/ lib/CodeGen/SelectionDAG/ lib/ExecutionEngine/Interpreter/ lib/Target/CppBackend/ lib/Target/MSIL/ lib/Target/PowerPC/ lib/Transforms/IPO/ lib/Transforms/Scalar/ lib/Transforms/Utils/ lib/VMCore/

Evan Cheng evan.cheng at apple.com
Tue Sep 23 16:21:02 PDT 2008


Hi Devang,

This seems to be breaking the build:

llvm[2]: Building Release Archive Library libLLVMArchive.a
/Users/echeng/LLVM/llvm/lib/AsmParser/llvmAsmParser.y:997: error:  
‘ParameterAttributes’ in namespace ‘llvm’ does not name a type
/Users/echeng/LLVM/llvm/lib/AsmParser/llvmAsmParser.y:998: error:  
‘ParameterAttributes’ in namespace ‘llvm’ does not name a type
llvm[2]: Compiling AliasAnalysisEvaluator.cpp for Release build
/Users/echeng/LLVM/llvm/lib/AsmParser/llvmAsmParser.y: In function  
‘int llvmAsmparse()’:
/Users/echeng/LLVM/llvm/lib/AsmParser/llvmAsmParser.y:1264: error:  
‘union YYSTYPE’ has no member named ‘ParamAttrs’
/Users/echeng/LLVM/llvm/lib/AsmParser/llvmAsmParser.y:1265: error:  
‘union YYSTYPE’ has no member named ‘ParamAttrs’

Can you check?

Thanks,

Evan

On Sep 23, 2008, at 4:03 PM, Devang Patel wrote:

> Author: dpatel
> Date: Tue Sep 23 18:03:40 2008
> New Revision: 56513
>
> URL: http://llvm.org/viewvc/llvm-project?rev=56513&view=rev
> Log:
> s/ParameterAttributes/Attributes/g
>
>
> Added:
>    llvm/trunk/include/llvm/Attributes.h
>      - copied, changed from r56511, llvm/trunk/include/llvm/ 
> ParameterAttributes.h
>    llvm/trunk/lib/VMCore/Attributes.cpp
>      - copied, changed from r56511, llvm/trunk/lib/VMCore/ 
> ParameterAttributes.cpp
> Removed:
>    llvm/trunk/include/llvm/ParameterAttributes.h
>    llvm/trunk/lib/VMCore/ParameterAttributes.cpp
> Modified:
>    llvm/trunk/include/llvm/Argument.h
>    llvm/trunk/include/llvm/Function.h
>    llvm/trunk/include/llvm/Instructions.h
>    llvm/trunk/include/llvm/Support/CallSite.h
>    llvm/trunk/lib/Analysis/BasicAliasAnalysis.cpp
>    llvm/trunk/lib/AsmParser/ParserInternals.h
>    llvm/trunk/lib/Bitcode/Reader/BitcodeReader.h
>    llvm/trunk/lib/Bitcode/Writer/ValueEnumerator.h
>    llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
>    llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
>    llvm/trunk/lib/ExecutionEngine/Interpreter/Execution.cpp
>    llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp
>    llvm/trunk/lib/Target/MSIL/MSILWriter.cpp
>    llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp
>    llvm/trunk/lib/Transforms/IPO/ArgumentPromotion.cpp
>    llvm/trunk/lib/Transforms/IPO/DeadArgumentElimination.cpp
>    llvm/trunk/lib/Transforms/IPO/PruneEH.cpp
>    llvm/trunk/lib/Transforms/IPO/StructRetPromotion.cpp
>    llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
>    llvm/trunk/lib/Transforms/Scalar/MemCpyOptimizer.cpp
>    llvm/trunk/lib/Transforms/Scalar/SimplifyCFGPass.cpp
>    llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp
>    llvm/trunk/lib/VMCore/AsmWriter.cpp
>    llvm/trunk/lib/VMCore/Function.cpp
>    llvm/trunk/lib/VMCore/Instructions.cpp
>    llvm/trunk/lib/VMCore/Verifier.cpp
>
> Modified: llvm/trunk/include/llvm/Argument.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Argument.h?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/include/llvm/Argument.h (original)
> +++ llvm/trunk/include/llvm/Argument.h Tue Sep 23 18:03:40 2008
> @@ -15,7 +15,7 @@
> #define LLVM_ARGUMENT_H
>
> #include "llvm/Value.h"
> -#include "llvm/ParameterAttributes.h"
> +#include "llvm/Attributes.h"
> #include "llvm/ADT/ilist_node.h"
>
> namespace llvm {
> @@ -61,10 +61,10 @@
>   bool hasStructRetAttr() const;
>
>   /// addAttr - Add a ParamAttr to an argument
> -  void addAttr(ParameterAttributes);
> +  void addAttr(Attributes);
>
>   /// removeAttr - Remove a ParamAttr from an argument
> -  void removeAttr(ParameterAttributes);
> +  void removeAttr(Attributes);
>
>   /// classof - Methods for support type inquiry through isa, cast,  
> and
>   /// dyn_cast:
>
> Copied: llvm/trunk/include/llvm/Attributes.h (from r56511, llvm/ 
> trunk/include/llvm/ParameterAttributes.h)
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Attributes.h?p2=llvm/trunk/include/llvm/Attributes.h&p1=llvm/trunk/include/llvm/ParameterAttributes.h&r1=56511&r2=56513&rev=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/include/llvm/ParameterAttributes.h (original)
> +++ llvm/trunk/include/llvm/Attributes.h Tue Sep 23 18:03:40 2008
> @@ -1,4 +1,4 @@
> -//===-- llvm/ParameterAttributes.h - Container for ParamAttrs ---*-  
> C++ -*-===//
> +//===-- llvm/Attributes.h - Container for ParamAttrs ---*- C++ -*- 
> ===//
> //
> //                     The LLVM Compiler Infrastructure
> //
> @@ -20,8 +20,8 @@
> namespace llvm {
> class Type;
>
> -/// ParameterAttributes - A bitset of attributes for a parameter.
> -typedef unsigned ParameterAttributes;
> +/// Attributes - A bitset of attributes for a parameter.
> +typedef unsigned Attributes;
>
> namespace ParamAttr {
>
> @@ -30,7 +30,6 @@
> /// lists the attributes that can be associated with parameters or  
> function
> /// results.
> /// @brief Function parameter attributes.
> -typedef ParameterAttributes Attributes;
>
> const Attributes None      = 0;     ///< No attributes have been set
> const Attributes ZExt      = 1<<0;  ///< Zero extended before/after  
> call
> @@ -74,26 +73,26 @@
> Attributes typeIncompatible(const Type *Ty);
>
> /// This turns an int alignment (a power of 2, normally) into the
> -/// form used internally in ParameterAttributes.
> -inline ParamAttr::Attributes constructAlignmentFromInt(unsigned i) {
> +/// form used internally in Attributes.
> +inline Attributes constructAlignmentFromInt(unsigned i) {
>   return (i << 16);
> }
>
> -/// The set of ParameterAttributes set in Attributes is converted  
> to a
> +/// The set of Attributes 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
> -std::string getAsString(ParameterAttributes Attrs);
> +std::string getAsString(Attributes Attrs);
> } // end namespace ParamAttr
>
>
> /// This is just a pair of values to associate a set of parameter  
> attributes
> /// with a parameter index.
> struct ParamAttrsWithIndex {
> -  ParameterAttributes Attrs; ///< The attributes that are set, or'd  
> together.
> +  Attributes Attrs; ///< The attributes that are set, or'd together.
>   unsigned Index; ///< Index of the parameter for which the  
> attributes apply.
>
> -  static ParamAttrsWithIndex get(unsigned Idx, ParameterAttributes  
> Attrs) {
> +  static ParamAttrsWithIndex get(unsigned Idx, Attributes Attrs) {
>     ParamAttrsWithIndex P;
>     P.Index = Idx;
>     P.Attrs = Attrs;
> @@ -137,12 +136,12 @@
>   /// addAttr - Add the specified attribute at the specified index  
> to this
>   /// attribute list.  Since parameter attribute lists are  
> immutable, this
>   /// returns the new list.
> -  PAListPtr addAttr(unsigned Idx, ParameterAttributes Attrs) const;
> +  PAListPtr addAttr(unsigned Idx, Attributes Attrs) const;
>
>   /// removeAttr - Remove the specified attribute at the specified  
> index from
>   /// this attribute list.  Since parameter attribute lists are  
> immutable, this
>   /// returns the new list.
> -  PAListPtr removeAttr(unsigned Idx, ParameterAttributes Attrs)  
> const;
> +  PAListPtr removeAttr(unsigned Idx, Attributes Attrs) const;
>
>   // 
> = 
> = 
> =-------------------------------------------------------------------- 
> ===//
>   // Parameter Attribute List Accessors
> @@ -150,11 +149,11 @@
>
>   /// getParamAttrs - The parameter attributes for the specified  
> parameter are
>   /// returned.  Parameters for the result are denoted with Idx = 0.
> -  ParameterAttributes getParamAttrs(unsigned Idx) const;
> +  Attributes getParamAttrs(unsigned Idx) const;
>
>   /// paramHasAttr - Return true if the specified parameter index  
> has the
>   /// specified attribute set.
> -  bool paramHasAttr(unsigned Idx, ParameterAttributes Attr) const {
> +  bool paramHasAttr(unsigned Idx, Attributes Attr) const {
>     return getParamAttrs(Idx) & Attr;
>   }
>
> @@ -166,7 +165,7 @@
>
>   /// hasAttrSomewhere - Return true if the specified attribute is  
> set for at
>   /// least one parameter or for the return value.
> -  bool hasAttrSomewhere(ParameterAttributes Attr) const;
> +  bool hasAttrSomewhere(Attributes Attr) const;
>
>   /// operator==/!= - Provide equality predicates.
>   bool operator==(const PAListPtr &RHS) const { return PAList ==  
> RHS.PAList; }
>
> Modified: llvm/trunk/include/llvm/Function.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Function.h?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/include/llvm/Function.h (original)
> +++ llvm/trunk/include/llvm/Function.h Tue Sep 23 18:03:40 2008
> @@ -22,7 +22,7 @@
> #include "llvm/BasicBlock.h"
> #include "llvm/Argument.h"
> #include "llvm/Support/Annotation.h"
> -#include "llvm/ParameterAttributes.h"
> +#include "llvm/Attributes.h"
>
> namespace llvm {
>
> @@ -150,14 +150,14 @@
>
>
>   /// hasNote - Return true if this function has given note.
> -  bool hasNote(ParameterAttributes N) const {
> +  bool hasNote(Attributes N) const {
>   	// Notes are stored at ~0 index in parameter attribute list
>     return (!isDeclaration() && paramHasAttr(~0, N));
>   }
>
>   /// setNotes - Set notes for this function
>   ///
> -  void setNotes(const ParameterAttributes N) {
> +  void setNotes(const Attributes N) {
>   	// Notes are stored at ~0 index in parameter attribute list
>   	addParamAttr(~0, N);
>   }
> @@ -170,15 +170,15 @@
>   void clearGC();
>
>   /// @brief Determine whether the function has the given attribute.
> -  bool paramHasAttr(unsigned i, ParameterAttributes attr) const {
> +  bool paramHasAttr(unsigned i, Attributes attr) const {
>     return ParamAttrs.paramHasAttr(i, attr);
>   }
>
>   /// addParamAttr - adds the attribute to the list of attributes.
> -  void addParamAttr(unsigned i, ParameterAttributes attr);
> +  void addParamAttr(unsigned i, Attributes attr);
>
>   /// removeParamAttr - removes the attribute from the list of  
> attributes.
> -  void removeParamAttr(unsigned i, ParameterAttributes attr);
> +  void removeParamAttr(unsigned i, Attributes attr);
>
>   /// @brief Extract the alignment for a call or parameter  
> (0=unknown).
>   unsigned getParamAlignment(unsigned i) const {
>
> Modified: llvm/trunk/include/llvm/Instructions.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Instructions.h?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/include/llvm/Instructions.h (original)
> +++ llvm/trunk/include/llvm/Instructions.h Tue Sep 23 18:03:40 2008
> @@ -20,7 +20,7 @@
>
> #include "llvm/InstrTypes.h"
> #include "llvm/DerivedTypes.h"
> -#include "llvm/ParameterAttributes.h"
> +#include "llvm/Attributes.h"
> #include "llvm/BasicBlock.h"
> #include "llvm/ADT/SmallVector.h"
>
> @@ -1081,10 +1081,10 @@
>   void setParamAttrs(const PAListPtr &Attrs) { ParamAttrs = Attrs; }
>
>   /// addParamAttr - adds the attribute to the list of attributes.
> -  void addParamAttr(unsigned i, ParameterAttributes attr);
> +  void addParamAttr(unsigned i, Attributes attr);
>
>   /// removeParamAttr - removes the attribute from the list of  
> attributes.
> -  void removeParamAttr(unsigned i, ParameterAttributes attr);
> +  void removeParamAttr(unsigned i, Attributes attr);
>
>   /// @brief Determine whether the call or the callee has the given  
> attribute.
>   bool paramHasAttr(unsigned i, unsigned attr) const;
> @@ -2440,13 +2440,13 @@
>   void setParamAttrs(const PAListPtr &Attrs) { ParamAttrs = Attrs; }
>
>   /// @brief Determine whether the call or the callee has the given  
> attribute.
> -  bool paramHasAttr(unsigned i, ParameterAttributes attr) const;
> +  bool paramHasAttr(unsigned i, Attributes attr) const;
>
>   /// addParamAttr - adds the attribute to the list of attributes.
> -  void addParamAttr(unsigned i, ParameterAttributes attr);
> +  void addParamAttr(unsigned i, Attributes attr);
>
>   /// removeParamAttr - removes the attribute from the list of  
> attributes.
> -  void removeParamAttr(unsigned i, ParameterAttributes attr);
> +  void removeParamAttr(unsigned i, Attributes attr);
>
>   /// @brief Extract the alignment for a call or parameter  
> (0=unknown).
>   unsigned getParamAlignment(unsigned i) const {
>
> Removed: llvm/trunk/include/llvm/ParameterAttributes.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ParameterAttributes.h?rev=56512&view=auto
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/include/llvm/ParameterAttributes.h (original)
> +++ llvm/trunk/include/llvm/ParameterAttributes.h (removed)
> @@ -1,212 +0,0 @@
> -//===-- llvm/ParameterAttributes.h - Container for 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 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 <string>
> -
> -namespace llvm {
> -class Type;
> -
> -/// ParameterAttributes - A bitset of attributes for a parameter.
> -typedef unsigned ParameterAttributes;
> -
> -namespace ParamAttr {
> -
> -/// Function parameters and results can have attributes to indicate  
> how they
> -/// should be treated by optimizations and code generation. This  
> enumeration
> -/// lists the attributes that can be associated with parameters or  
> function
> -/// results.
> -/// @brief Function parameter attributes.
> -typedef ParameterAttributes Attributes;
> -
> -const Attributes None      = 0;     ///< No attributes have been set
> -const Attributes ZExt      = 1<<0;  ///< Zero extended before/after  
> call
> -const Attributes SExt      = 1<<1;  ///< Sign extended before/after  
> call
> -const Attributes NoReturn  = 1<<2;  ///< Mark the function as not  
> returning
> -const Attributes InReg     = 1<<3;  ///< Force argument to be  
> passed in register
> -const Attributes StructRet = 1<<4;  ///< Hidden pointer to  
> structure to return
> -const Attributes NoUnwind  = 1<<5;  ///< Function doesn't unwind  
> stack
> -const Attributes NoAlias   = 1<<6;  ///< Considered to not alias  
> after call
> -const Attributes ByVal     = 1<<7;  ///< Pass structure by value
> -const Attributes Nest      = 1<<8;  ///< Nested function static chain
> -const Attributes ReadNone  = 1<<9;  ///< Function does not access  
> memory
> -const Attributes ReadOnly  = 1<<10; ///< Function only reads from  
> memory
> -const Attributes Alignment = 0xffff<<16; ///< Alignment of  
> parameter (16 bits)
> -                                    // 0 = unknown, else in clear  
> (not log)
> -
> -/// Function notes are implemented as attributes stored at index ~0  
> in
> -/// parameter attribute list.
> -const Attributes FN_NOTE_None            = 0;
> -const Attributes FN_NOTE_NoInline        = 1<<0; // inline=never
> -const Attributes FN_NOTE_AlwaysInline    = 1<<1; // inline=always
> -const Attributes FN_NOTE_OptimizeForSize = 1<<2; // opt_size
> -
> -/// @brief Attributes that only apply to function parameters.
> -const Attributes ParameterOnly = ByVal | Nest | StructRet;
> -
> -/// @brief Attributes that only apply to function return values.
> -const Attributes ReturnOnly = NoReturn | NoUnwind | ReadNone |  
> ReadOnly;
> -
> -/// @brief Parameter attributes that do not apply to vararg call  
> arguments.
> -const Attributes VarArgsIncompatible = StructRet;
> -
> -/// @brief Attributes that are mutually incompatible.
> -const Attributes MutuallyIncompatible[3] = {
> -  ByVal | InReg | Nest  | StructRet,
> -  ZExt  | SExt,
> -  ReadNone | ReadOnly
> -};
> -
> -/// @brief Which attributes cannot be applied to a type.
> -Attributes typeIncompatible(const Type *Ty);
> -
> -/// This turns an int alignment (a power of 2, normally) into the
> -/// form used internally in ParameterAttributes.
> -inline ParamAttr::Attributes constructAlignmentFromInt(unsigned i) {
> -  return (i << 16);
> -}
> -
> -/// 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
> -std::string getAsString(ParameterAttributes Attrs);
> -} // end namespace ParamAttr
> -
> -
> -/// This is just a pair of values to associate a set of parameter  
> attributes
> -/// with a parameter index.
> -struct ParamAttrsWithIndex {
> -  ParameterAttributes Attrs; ///< The attributes that are set, or'd  
> together.
> -  unsigned Index; ///< Index of the parameter for which the  
> attributes apply.
> -
> -  static ParamAttrsWithIndex get(unsigned Idx, ParameterAttributes  
> Attrs) {
> -    ParamAttrsWithIndex P;
> -    P.Index = Idx;
> -    P.Attrs = Attrs;
> -    return P;
> -  }
> -};
> -
> -// 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
> -// PAListPtr Smart Pointer
> -// 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
> -
> -class ParamAttributeListImpl;
> -
> -/// PAListPtr - This class manages the ref count for the opaque
> -/// ParamAttributeListImpl object and provides accessors for it.
> -class PAListPtr {
> -  /// PAList - The parameter attributes that we are managing.  This  
> can be null
> -  /// to represent the empty parameter attributes list.
> -  ParamAttributeListImpl *PAList;
> -public:
> -  PAListPtr() : PAList(0) {}
> -  PAListPtr(const PAListPtr &P);
> -  const PAListPtr &operator=(const PAListPtr &RHS);
> -  ~PAListPtr();
> -
> -  // 
> = 
> = 
> =-------------------------------------------------------------------- 
> ===//
> -  // Parameter Attribute List Construction and Mutation
> -  // 
> = 
> = 
> =-------------------------------------------------------------------- 
> ===//
> -
> -  /// get - Return a ParamAttrs list with the specified parameter  
> in it.
> -  static PAListPtr get(const ParamAttrsWithIndex *Attr, unsigned  
> NumAttrs);
> -
> -  /// get - Return a ParamAttr list with the parameters specified  
> by the
> -  /// consecutive random access iterator range.
> -  template <typename Iter>
> -  static PAListPtr get(const Iter &I, const Iter &E) {
> -    if (I == E) return PAListPtr();  // Empty list.
> -    return get(&*I, static_cast<unsigned>(E-I));
> -  }
> -
> -  /// addAttr - Add the specified attribute at the specified index  
> to this
> -  /// attribute list.  Since parameter attribute lists are  
> immutable, this
> -  /// returns the new list.
> -  PAListPtr addAttr(unsigned Idx, ParameterAttributes Attrs) const;
> -
> -  /// removeAttr - Remove the specified attribute at the specified  
> index from
> -  /// this attribute list.  Since parameter attribute lists are  
> immutable, this
> -  /// returns the new list.
> -  PAListPtr removeAttr(unsigned Idx, ParameterAttributes Attrs)  
> const;
> -
> -  // 
> = 
> = 
> =-------------------------------------------------------------------- 
> ===//
> -  // Parameter Attribute List Accessors
> -  // 
> = 
> = 
> =-------------------------------------------------------------------- 
> ===//
> -
> -  /// getParamAttrs - The parameter attributes for the specified  
> parameter are
> -  /// returned.  Parameters for the result are denoted with Idx = 0.
> -  ParameterAttributes getParamAttrs(unsigned Idx) const;
> -
> -  /// paramHasAttr - Return true if the specified parameter index  
> has the
> -  /// specified attribute set.
> -  bool paramHasAttr(unsigned Idx, ParameterAttributes Attr) const {
> -    return getParamAttrs(Idx) & Attr;
> -  }
> -
> -  /// getParamAlignment - Return the alignment for the specified  
> function
> -  /// parameter.
> -  unsigned getParamAlignment(unsigned Idx) const {
> -    return (getParamAttrs(Idx) & ParamAttr::Alignment) >> 16;
> -  }
> -
> -  /// hasAttrSomewhere - Return true if the specified attribute is  
> set for at
> -  /// least one parameter or for the return value.
> -  bool hasAttrSomewhere(ParameterAttributes Attr) const;
> -
> -  /// operator==/!= - Provide equality predicates.
> -  bool operator==(const PAListPtr &RHS) const { return PAList ==  
> RHS.PAList; }
> -  bool operator!=(const PAListPtr &RHS) const { return PAList !=  
> RHS.PAList; }
> -
> -  void dump() const;
> -
> -  // 
> = 
> = 
> =-------------------------------------------------------------------- 
> ===//
> -  // Parameter Attribute List Introspection
> -  // 
> = 
> = 
> =-------------------------------------------------------------------- 
> ===//
> -
> -  /// getRawPointer - Return a raw pointer that uniquely identifies  
> this
> -  /// parameter attribute list.
> -  void *getRawPointer() const {
> -    return PAList;
> -  }
> -
> -  // Parameter attributes are stored as a dense set of slots, where  
> there is one
> -  // slot for each argument that has an attribute.  This allows  
> walking over the
> -  // dense set instead of walking the sparse list of attributes.
> -
> -  /// isEmpty - Return true if no parameters have an attribute.
> -  ///
> -  bool isEmpty() const {
> -    return PAList == 0;
> -  }
> -
> -  /// getNumSlots - Return the number of slots used in this  
> attribute list.
> -  /// This is the number of arguments that have an attribute set on  
> them
> -  /// (including the function itself).
> -  unsigned getNumSlots() const;
> -
> -  /// getSlot - Return the ParamAttrsWithIndex at the specified  
> slot.  This
> -  /// holds a parameter number plus a set of attributes.
> -  const ParamAttrsWithIndex &getSlot(unsigned Slot) const;
> -
> -private:
> -  explicit PAListPtr(ParamAttributeListImpl *L);
> -};
> -
> -} // End llvm namespace
> -
> -#endif
>
> Modified: llvm/trunk/include/llvm/Support/CallSite.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/CallSite.h?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/include/llvm/Support/CallSite.h (original)
> +++ llvm/trunk/include/llvm/Support/CallSite.h Tue Sep 23 18:03:40  
> 2008
> @@ -22,7 +22,7 @@
>
> #include "llvm/Instruction.h"
> #include "llvm/BasicBlock.h"
> -#include "llvm/ParameterAttributes.h"
> +#include "llvm/Attributes.h"
>
> namespace llvm {
>
> @@ -68,7 +68,7 @@
>   void setParamAttrs(const PAListPtr &PAL);
>
>   /// paramHasAttr - whether the call or the callee has the given  
> attribute.
> -  bool paramHasAttr(uint16_t i, ParameterAttributes attr) const;
> +  bool paramHasAttr(uint16_t i, Attributes attr) const;
>
>   /// @brief Extract the alignment for a call or parameter  
> (0=unknown).
>   uint16_t getParamAlignment(uint16_t i) const;
>
> Modified: llvm/trunk/lib/Analysis/BasicAliasAnalysis.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/BasicAliasAnalysis.cpp?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/Analysis/BasicAliasAnalysis.cpp (original)
> +++ llvm/trunk/lib/Analysis/BasicAliasAnalysis.cpp Tue Sep 23  
> 18:03:40 2008
> @@ -18,7 +18,6 @@
> #include "llvm/Constants.h"
> #include "llvm/DerivedTypes.h"
> #include "llvm/Function.h"
> -#include "llvm/ParameterAttributes.h"
> #include "llvm/GlobalVariable.h"
> #include "llvm/Instructions.h"
> #include "llvm/IntrinsicInst.h"
>
> Modified: llvm/trunk/lib/AsmParser/ParserInternals.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/AsmParser/ParserInternals.h?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/AsmParser/ParserInternals.h (original)
> +++ llvm/trunk/lib/AsmParser/ParserInternals.h Tue Sep 23 18:03:40  
> 2008
> @@ -17,7 +17,7 @@
>
> #include "llvm/Constants.h"
> #include "llvm/DerivedTypes.h"
> -#include "llvm/ParameterAttributes.h"
> +#include "llvm/Attributes.h"
> #include "llvm/Function.h"
> #include "llvm/Instructions.h"
> #include "llvm/Assembly/Parser.h"
> @@ -232,13 +232,13 @@
>
> struct TypeWithAttrs {
>   llvm::PATypeHolder *Ty;
> -  ParameterAttributes Attrs;
> +  Attributes Attrs;
> };
>
> typedef std::vector<TypeWithAttrs> TypeWithAttrsList;
>
> struct ArgListEntry {
> -  ParameterAttributes Attrs;
> +  Attributes Attrs;
>   llvm::PATypeHolder *Ty;
>   std::string *Name;
> };
> @@ -247,7 +247,7 @@
>
> struct ParamListEntry {
>   Value *Val;
> -  ParameterAttributes Attrs;
> +  Attributes Attrs;
> };
>
> typedef std::vector<ParamListEntry> ParamList;
>
> Modified: llvm/trunk/lib/Bitcode/Reader/BitcodeReader.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Reader/BitcodeReader.h?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/Bitcode/Reader/BitcodeReader.h (original)
> +++ llvm/trunk/lib/Bitcode/Reader/BitcodeReader.h Tue Sep 23  
> 18:03:40 2008
> @@ -15,7 +15,7 @@
> #define BITCODE_READER_H
>
> #include "llvm/ModuleProvider.h"
> -#include "llvm/ParameterAttributes.h"
> +#include "llvm/Attributes.h"
> #include "llvm/Type.h"
> #include "llvm/OperandTraits.h"
> #include "llvm/Bitcode/BitstreamReader.h"
>
> Modified: llvm/trunk/lib/Bitcode/Writer/ValueEnumerator.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Writer/ValueEnumerator.h?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/Bitcode/Writer/ValueEnumerator.h (original)
> +++ llvm/trunk/lib/Bitcode/Writer/ValueEnumerator.h Tue Sep 23  
> 18:03:40 2008
> @@ -15,7 +15,7 @@
> #define VALUE_ENUMERATOR_H
>
> #include "llvm/ADT/DenseMap.h"
> -#include "llvm/ParameterAttributes.h"
> +#include "llvm/Attributes.h"
> #include <vector>
>
> namespace llvm {
>
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp  
> (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp Tue  
> Sep 23 18:03:40 2008
> @@ -25,7 +25,6 @@
> #include "llvm/Instructions.h"
> #include "llvm/Intrinsics.h"
> #include "llvm/IntrinsicInst.h"
> -#include "llvm/ParameterAttributes.h"
> #include "llvm/CodeGen/FastISel.h"
> #include "llvm/CodeGen/GCStrategy.h"
> #include "llvm/CodeGen/GCMetadata.h"
>
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp  
> (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp Tue Sep  
> 23 18:03:40 2008
> @@ -25,7 +25,6 @@
> #include "llvm/Instructions.h"
> #include "llvm/Intrinsics.h"
> #include "llvm/IntrinsicInst.h"
> -#include "llvm/ParameterAttributes.h"
> #include "llvm/CodeGen/FastISel.h"
> #include "llvm/CodeGen/GCStrategy.h"
> #include "llvm/CodeGen/GCMetadata.h"
>
> Modified: llvm/trunk/lib/ExecutionEngine/Interpreter/Execution.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/Interpreter/Execution.cpp?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/ExecutionEngine/Interpreter/Execution.cpp  
> (original)
> +++ llvm/trunk/lib/ExecutionEngine/Interpreter/Execution.cpp Tue Sep  
> 23 18:03:40 2008
> @@ -16,7 +16,6 @@
> #include "llvm/Constants.h"
> #include "llvm/DerivedTypes.h"
> #include "llvm/Instructions.h"
> -#include "llvm/ParameterAttributes.h"
> #include "llvm/CodeGen/IntrinsicLowering.h"
> #include "llvm/Support/GetElementPtrTypeIterator.h"
> #include "llvm/ADT/APInt.h"
>
> Modified: llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp (original)
> +++ llvm/trunk/lib/Target/CppBackend/CPPBackend.cpp Tue Sep 23  
> 18:03:40 2008
> @@ -438,7 +438,7 @@
>       Out << "ParamAttrsWithIndex PAWI;"; nl(Out);
>       for (unsigned i = 0; i < PAL.getNumSlots(); ++i) {
>         uint16_t index = PAL.getSlot(i).Index;
> -        ParameterAttributes attrs = PAL.getSlot(i).Attrs;
> +        Attributes attrs = PAL.getSlot(i).Attrs;
>         Out << "PAWI.Index = " << index << "; PAWI.Attrs = 0 ";
>         if (attrs & ParamAttr::SExt)
>           Out << " | ParamAttr::SExt";
>
> Modified: llvm/trunk/lib/Target/MSIL/MSILWriter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MSIL/MSILWriter.cpp?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/Target/MSIL/MSILWriter.cpp (original)
> +++ llvm/trunk/lib/Target/MSIL/MSILWriter.cpp Tue Sep 23 18:03:40 2008
> @@ -16,7 +16,6 @@
> #include "llvm/DerivedTypes.h"
> #include "llvm/Intrinsics.h"
> #include "llvm/IntrinsicInst.h"
> -#include "llvm/ParameterAttributes.h"
> #include "llvm/TypeSymbolTable.h"
> #include "llvm/Analysis/ConstantsScanner.h"
> #include "llvm/Support/CallSite.h"
>
> Modified: llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp (original)
> +++ llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp Tue Sep 23  
> 18:03:40 2008
> @@ -29,7 +29,6 @@
> #include "llvm/Constants.h"
> #include "llvm/Function.h"
> #include "llvm/Intrinsics.h"
> -#include "llvm/ParameterAttributes.h"
> #include "llvm/Support/MathExtras.h"
> #include "llvm/Target/TargetOptions.h"
> #include "llvm/Support/CommandLine.h"
>
> Modified: llvm/trunk/lib/Transforms/IPO/ArgumentPromotion.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/ArgumentPromotion.cpp?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/Transforms/IPO/ArgumentPromotion.cpp (original)
> +++ llvm/trunk/lib/Transforms/IPO/ArgumentPromotion.cpp Tue Sep 23  
> 18:03:40 2008
> @@ -508,7 +508,7 @@
>   const PAListPtr &PAL = F->getParamAttrs();
>
>   // Add any return attributes.
> -  if (ParameterAttributes attrs = PAL.getParamAttrs(0))
> +  if (Attributes attrs = PAL.getParamAttrs(0))
>     ParamAttrsVec.push_back(ParamAttrsWithIndex::get(0, attrs));
>
>   // First, determine the new argument list
> @@ -525,7 +525,7 @@
>     } else if (!ArgsToPromote.count(I)) {
>       // Unchanged argument
>       Params.push_back(I->getType());
> -      if (ParameterAttributes attrs = PAL.getParamAttrs(ArgIndex))
> +      if (Attributes attrs = PAL.getParamAttrs(ArgIndex))
>          
> ParamAttrsVec.push_back(ParamAttrsWithIndex::get(Params.size(),  
> attrs));
>     } else if (I->use_empty()) {
>       // Dead argument (which are always marked as promotable)
> @@ -621,7 +621,7 @@
>     const PAListPtr &CallPAL = CS.getParamAttrs();
>
>     // Add any return attributes.
> -    if (ParameterAttributes attrs = CallPAL.getParamAttrs(0))
> +    if (Attributes attrs = CallPAL.getParamAttrs(0))
>       ParamAttrsVec.push_back(ParamAttrsWithIndex::get(0, attrs));
>
>     // Loop over the operands, inserting GEP and loads in the caller  
> as
> @@ -633,7 +633,7 @@
>       if (!ArgsToPromote.count(I) && !ByValArgsToTransform.count(I)) {
>         Args.push_back(*AI);          // Unmodified argument
>
> -        if (ParameterAttributes Attrs =  
> CallPAL.getParamAttrs(ArgIndex))
> +        if (Attributes Attrs = CallPAL.getParamAttrs(ArgIndex))
>            
> ParamAttrsVec.push_back(ParamAttrsWithIndex::get(Args.size(), Attrs));
>
>       } else if (ByValArgsToTransform.count(I)) {
> @@ -688,7 +688,7 @@
>     // Push any varargs arguments on the list
>     for (; AI != CS.arg_end(); ++AI, ++ArgIndex) {
>       Args.push_back(*AI);
> -      if (ParameterAttributes Attrs =  
> CallPAL.getParamAttrs(ArgIndex))
> +      if (Attributes Attrs = CallPAL.getParamAttrs(ArgIndex))
>          
> ParamAttrsVec.push_back(ParamAttrsWithIndex::get(Args.size(), Attrs));
>     }
>
>
> Modified: llvm/trunk/lib/Transforms/IPO/DeadArgumentElimination.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/DeadArgumentElimination.cpp?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/Transforms/IPO/DeadArgumentElimination.cpp  
> (original)
> +++ llvm/trunk/lib/Transforms/IPO/DeadArgumentElimination.cpp Tue  
> Sep 23 18:03:40 2008
> @@ -593,7 +593,7 @@
>   const PAListPtr &PAL = F->getParamAttrs();
>
>   // The existing function return attributes.
> -  ParameterAttributes RAttrs = PAL.getParamAttrs(0);
> +  Attributes RAttrs = PAL.getParamAttrs(0);
>
>
>   // Find out the new return value.
> @@ -678,7 +678,7 @@
>
>       // Get the original parameter attributes (skipping the first  
> one, that is
>       // for the return value.
> -      if (ParameterAttributes Attrs = PAL.getParamAttrs(i + 1))
> +      if (Attributes Attrs = PAL.getParamAttrs(i + 1))
>          
> ParamAttrsVec.push_back(ParamAttrsWithIndex::get(Params.size(),  
> Attrs));
>     } else {
>       ++NumArgumentsEliminated;
> @@ -730,7 +730,7 @@
>     const PAListPtr &CallPAL = CS.getParamAttrs();
>
>     // The call return attributes.
> -    ParameterAttributes RAttrs = CallPAL.getParamAttrs(0);
> +    Attributes RAttrs = CallPAL.getParamAttrs(0);
>     // Adjust in case the function was changed to return void.
>     RAttrs &= ~ParamAttr::typeIncompatible(NF->getReturnType());
>     if (RAttrs)
> @@ -746,7 +746,7 @@
>       if (ArgAlive[i]) {
>         Args.push_back(*I);
>         // Get original parameter attributes, but skip return  
> attributes.
> -        if (ParameterAttributes Attrs = CallPAL.getParamAttrs(i + 1))
> +        if (Attributes Attrs = CallPAL.getParamAttrs(i + 1))
>            
> ParamAttrsVec.push_back(ParamAttrsWithIndex::get(Args.size(), Attrs));
>       }
>
> @@ -756,7 +756,7 @@
>     // Push any varargs arguments on the list. Don't forget their  
> attributes.
>     for (CallSite::arg_iterator E = CS.arg_end(); I != E; ++I, ++i) {
>       Args.push_back(*I);
> -      if (ParameterAttributes Attrs = CallPAL.getParamAttrs(i + 1))
> +      if (Attributes Attrs = CallPAL.getParamAttrs(i + 1))
>          
> ParamAttrsVec.push_back(ParamAttrsWithIndex::get(Args.size(), Attrs));
>     }
>
>
> Modified: llvm/trunk/lib/Transforms/IPO/PruneEH.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/PruneEH.cpp?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/Transforms/IPO/PruneEH.cpp (original)
> +++ llvm/trunk/lib/Transforms/IPO/PruneEH.cpp Tue Sep 23 18:03:40 2008
> @@ -125,7 +125,7 @@
>   // If the SCC doesn't unwind or doesn't throw, note this fact.
>   if (!SCCMightUnwind || !SCCMightReturn)
>     for (unsigned i = 0, e = SCC.size(); i != e; ++i) {
> -      ParameterAttributes NewAttributes = ParamAttr::None;
> +      Attributes NewAttributes = ParamAttr::None;
>
>       if (!SCCMightUnwind)
>         NewAttributes |= ParamAttr::NoUnwind;
>
> Modified: llvm/trunk/lib/Transforms/IPO/StructRetPromotion.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/StructRetPromotion.cpp?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/Transforms/IPO/StructRetPromotion.cpp (original)
> +++ llvm/trunk/lib/Transforms/IPO/StructRetPromotion.cpp Tue Sep 23  
> 18:03:40 2008
> @@ -210,7 +210,7 @@
>   const PAListPtr &PAL = F->getParamAttrs();
>
>   // Add any return attributes.
> -  if (ParameterAttributes attrs = PAL.getParamAttrs(0))
> +  if (Attributes attrs = PAL.getParamAttrs(0))
>     ParamAttrsVec.push_back(ParamAttrsWithIndex::get(0, attrs));
>
>   // Skip first argument.
> @@ -221,7 +221,7 @@
>   unsigned ParamIndex = 2;
>   while (I != E) {
>     Params.push_back(I->getType());
> -    if (ParameterAttributes Attrs = PAL.getParamAttrs(ParamIndex))
> +    if (Attributes Attrs = PAL.getParamAttrs(ParamIndex))
>       ParamAttrsVec.push_back(ParamAttrsWithIndex::get(ParamIndex -  
> 1, Attrs));
>     ++I;
>     ++ParamIndex;
> @@ -264,7 +264,7 @@
>
>     const PAListPtr &PAL = F->getParamAttrs();
>     // Add any return attributes.
> -    if (ParameterAttributes attrs = PAL.getParamAttrs(0))
> +    if (Attributes attrs = PAL.getParamAttrs(0))
>       ArgAttrsVec.push_back(ParamAttrsWithIndex::get(0, attrs));
>
>     // Copy arguments, however skip first one.
> @@ -276,7 +276,7 @@
>     unsigned ParamIndex = 2;
>     while (AI != AE) {
>       Args.push_back(*AI);
> -      if (ParameterAttributes Attrs = PAL.getParamAttrs(ParamIndex))
> +      if (Attributes Attrs = PAL.getParamAttrs(ParamIndex))
>         ArgAttrsVec.push_back(ParamAttrsWithIndex::get(ParamIndex -  
> 1, Attrs));
>       ++ParamIndex;
>       ++AI;
>
> Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp  
> (original)
> +++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Tue  
> Sep 23 18:03:40 2008
> @@ -9127,7 +9127,7 @@
>       return false;   // Cannot transform this return value.
>
>     if (!CallerPAL.isEmpty() && !Caller->use_empty()) {
> -      ParameterAttributes RAttrs = CallerPAL.getParamAttrs(0);
> +      Attributes RAttrs = CallerPAL.getParamAttrs(0);
>       if (RAttrs & ParamAttr::typeIncompatible(NewRetTy))
>         return false;   // Attribute not compatible with transformed  
> value.
>     }
> @@ -9180,7 +9180,7 @@
>     for (unsigned i = CallerPAL.getNumSlots(); i; --i) {
>       if (CallerPAL.getSlot(i - 1).Index <= FT->getNumParams())
>         break;
> -      ParameterAttributes PAttrs = CallerPAL.getSlot(i - 1).Attrs;
> +      Attributes PAttrs = CallerPAL.getSlot(i - 1).Attrs;
>       if (PAttrs & ParamAttr::VarArgsIncompatible)
>         return false;
>     }
> @@ -9193,7 +9193,7 @@
>   attrVec.reserve(NumCommonArgs);
>
>   // Get any return attributes.
> -  ParameterAttributes RAttrs = CallerPAL.getParamAttrs(0);
> +  Attributes RAttrs = CallerPAL.getParamAttrs(0);
>
>   // If the return value is not being used, the type may not be  
> compatible
>   // with the existing attributes.  Wipe out any problematic  
> attributes.
> @@ -9216,7 +9216,7 @@
>     }
>
>     // Add any parameter attributes.
> -    if (ParameterAttributes PAttrs = CallerPAL.getParamAttrs(i + 1))
> +    if (Attributes PAttrs = CallerPAL.getParamAttrs(i + 1))
>       attrVec.push_back(ParamAttrsWithIndex::get(i + 1, PAttrs));
>   }
>
> @@ -9246,7 +9246,7 @@
>         }
>
>         // Add any parameter attributes.
> -        if (ParameterAttributes PAttrs = CallerPAL.getParamAttrs(i  
> + 1))
> +        if (Attributes PAttrs = CallerPAL.getParamAttrs(i + 1))
>           attrVec.push_back(ParamAttrsWithIndex::get(i + 1, PAttrs));
>       }
>     }
> @@ -9329,7 +9329,7 @@
>   if (!NestAttrs.isEmpty()) {
>     unsigned NestIdx = 1;
>     const Type *NestTy = 0;
> -    ParameterAttributes NestAttr = ParamAttr::None;
> +    Attributes NestAttr = ParamAttr::None;
>
>     // Look for a parameter marked with the 'nest' attribute.
>     for (FunctionType::param_iterator I = NestFTy->param_begin(),
> @@ -9353,7 +9353,7 @@
>       // mean appending it.  Likewise for attributes.
>
>       // Add any function result attributes.
> -      if (ParameterAttributes Attr = Attrs.getParamAttrs(0))
> +      if (Attributes Attr = Attrs.getParamAttrs(0))
>         NewAttrs.push_back(ParamAttrsWithIndex::get(0, Attr));
>
>       {
> @@ -9374,7 +9374,7 @@
>
>           // Add the original argument and attributes.
>           NewArgs.push_back(*I);
> -          if (ParameterAttributes Attr = Attrs.getParamAttrs(Idx))
> +          if (Attributes Attr = Attrs.getParamAttrs(Idx))
>             NewAttrs.push_back
>               (ParamAttrsWithIndex::get(Idx + (Idx >= NestIdx),  
> Attr));
>
>
> Modified: llvm/trunk/lib/Transforms/Scalar/MemCpyOptimizer.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/MemCpyOptimizer.cpp?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/Transforms/Scalar/MemCpyOptimizer.cpp (original)
> +++ llvm/trunk/lib/Transforms/Scalar/MemCpyOptimizer.cpp Tue Sep 23  
> 18:03:40 2008
> @@ -16,7 +16,6 @@
> #include "llvm/Transforms/Scalar.h"
> #include "llvm/IntrinsicInst.h"
> #include "llvm/Instructions.h"
> -#include "llvm/ParameterAttributes.h"
> #include "llvm/ADT/SmallVector.h"
> #include "llvm/ADT/Statistic.h"
> #include "llvm/Analysis/Dominators.h"
>
> Modified: llvm/trunk/lib/Transforms/Scalar/SimplifyCFGPass.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/SimplifyCFGPass.cpp?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/Transforms/Scalar/SimplifyCFGPass.cpp (original)
> +++ llvm/trunk/lib/Transforms/Scalar/SimplifyCFGPass.cpp Tue Sep 23  
> 18:03:40 2008
> @@ -27,7 +27,7 @@
> #include "llvm/Constants.h"
> #include "llvm/Instructions.h"
> #include "llvm/Module.h"
> -#include "llvm/ParameterAttributes.h"
> +#include "llvm/Attributes.h"
> #include "llvm/Support/CFG.h"
> #include "llvm/Support/Compiler.h"
> #include "llvm/Pass.h"
>
> Modified: llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp (original)
> +++ llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp Tue Sep 23  
> 18:03:40 2008
> @@ -18,7 +18,7 @@
> #include "llvm/Module.h"
> #include "llvm/Instructions.h"
> #include "llvm/Intrinsics.h"
> -#include "llvm/ParameterAttributes.h"
> +#include "llvm/Attributes.h"
> #include "llvm/Analysis/CallGraph.h"
> #include "llvm/Target/TargetData.h"
> #include "llvm/ADT/SmallVector.h"
>
> Modified: llvm/trunk/lib/VMCore/AsmWriter.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/AsmWriter.cpp?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/VMCore/AsmWriter.cpp (original)
> +++ llvm/trunk/lib/VMCore/AsmWriter.cpp Tue Sep 23 18:03:40 2008
> @@ -1006,7 +1006,7 @@
>   void write(const Type *Ty)          { printType(Ty);        }
>
>   void writeOperand(const Value *Op, bool PrintType);
> -  void writeParamOperand(const Value *Operand, ParameterAttributes  
> Attrs);
> +  void writeParamOperand(const Value *Operand, Attributes Attrs);
>
>   const Module* getModule() { return TheModule; }
>
> @@ -1016,7 +1016,7 @@
>   void printGlobal(const GlobalVariable *GV);
>   void printAlias(const GlobalAlias *GV);
>   void printFunction(const Function *F);
> -  void printArgument(const Argument *FA, ParameterAttributes Attrs);
> +  void printArgument(const Argument *FA, Attributes Attrs);
>   void printBasicBlock(const BasicBlock *BB);
>   void printInstruction(const Instruction &I);
>
> @@ -1126,7 +1126,7 @@
> }
>
> void AssemblyWriter::writeParamOperand(const Value *Operand,
> -                                       ParameterAttributes Attrs) {
> +                                       Attributes Attrs) {
>   if (Operand == 0) {
>     Out << "<null operand!>";
>   } else {
> @@ -1386,7 +1386,7 @@
>       // Output type...
>       printType(FT->getParamType(i));
>
> -      ParameterAttributes ArgAttrs = Attrs.getParamAttrs(i+1);
> +      Attributes ArgAttrs = Attrs.getParamAttrs(i+1);
>       if (ArgAttrs != ParamAttr::None)
>         Out << ' ' << ParamAttr::getAsString(ArgAttrs);
>     }
> @@ -1398,7 +1398,7 @@
>     Out << "...";  // Output varargs portion of signature!
>   }
>   Out << ')';
> -  ParameterAttributes RetAttrs = Attrs.getParamAttrs(0);
> +  Attributes RetAttrs = Attrs.getParamAttrs(0);
>   if (RetAttrs != ParamAttr::None)
>     Out << ' ' << ParamAttr::getAsString(Attrs.getParamAttrs(0));
>   if (F->hasSection())
> @@ -1454,7 +1454,7 @@
> /// the function.  Simply print it out
> ///
> void AssemblyWriter::printArgument(const Argument *Arg,
> -                                   ParameterAttributes Attrs) {
> +                                   Attributes Attrs) {
>   // Output type...
>   printType(Arg->getType());
>
>
> Copied: llvm/trunk/lib/VMCore/Attributes.cpp (from r56511, llvm/ 
> trunk/lib/VMCore/ParameterAttributes.cpp)
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Attributes.cpp?p2=llvm/trunk/lib/VMCore/Attributes.cpp&p1=llvm/trunk/lib/VMCore/ParameterAttributes.cpp&r1=56511&r2=56513&rev=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/VMCore/ParameterAttributes.cpp (original)
> +++ llvm/trunk/lib/VMCore/Attributes.cpp Tue Sep 23 18:03:40 2008
> @@ -1,4 +1,4 @@
> -//===-- ParameterAttributes.cpp - Implement ParamAttrsList  
> ----------------===//
> +//===-- Attributes.cpp - Implement ParamAttrsList ---------------- 
> ===//
> //
> //                     The LLVM Compiler Infrastructure
> //
> @@ -11,7 +11,7 @@
> //
> // 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
>
> -#include "llvm/ParameterAttributes.h"
> +#include "llvm/Attributes.h"
> #include "llvm/Type.h"
> #include "llvm/ADT/StringExtras.h"
> #include "llvm/ADT/FoldingSet.h"
> @@ -23,7 +23,7 @@
> // ParamAttr Function Definitions
> // 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
>
> -std::string ParamAttr::getAsString(ParameterAttributes Attrs) {
> +std::string ParamAttr::getAsString(Attributes Attrs) {
>   std::string Result;
>   if (Attrs & ParamAttr::ZExt)
>     Result += "zeroext ";
> @@ -57,8 +57,8 @@
>   return Result;
> }
>
> -ParameterAttributes ParamAttr::typeIncompatible(const Type *Ty) {
> -  ParameterAttributes Incompatible = None;
> +Attributes ParamAttr::typeIncompatible(const Type *Ty) {
> +  Attributes Incompatible = None;
>
>   if (!Ty->isInteger())
>     // Attributes that only apply to integers.
> @@ -187,7 +187,7 @@
> /// getParamAttrs - The parameter attributes for the specified  
> parameter are
> /// returned.  Parameters for the result are denoted with Idx = 0.
> /// Function notes are denoted with idx = ~0.
> -ParameterAttributes PAListPtr::getParamAttrs(unsigned Idx) const {
> +Attributes PAListPtr::getParamAttrs(unsigned Idx) const {
>   if (PAList == 0) return ParamAttr::None;
>
>   const SmallVector<ParamAttrsWithIndex, 4> &Attrs = PAList->Attrs;
> @@ -199,7 +199,7 @@
>
> /// hasAttrSomewhere - Return true if the specified attribute is set  
> for at
> /// least one parameter or for the return value.
> -bool PAListPtr::hasAttrSomewhere(ParameterAttributes Attr) const {
> +bool PAListPtr::hasAttrSomewhere(Attributes Attr) const {
>   if (PAList == 0) return false;
>
>   const SmallVector<ParamAttrsWithIndex, 4> &Attrs = PAList->Attrs;
> @@ -210,18 +210,18 @@
> }
>
>
> -PAListPtr PAListPtr::addAttr(unsigned Idx, ParameterAttributes  
> Attrs) const {
> -  ParameterAttributes OldAttrs = getParamAttrs(Idx);
> +PAListPtr PAListPtr::addAttr(unsigned Idx, Attributes Attrs) const {
> +  Attributes OldAttrs = getParamAttrs(Idx);
> #ifndef NDEBUG
>   // FIXME it is not obvious how this should work for alignment.
>   // For now, say we can't change a known alignment.
> -  ParameterAttributes OldAlign = OldAttrs & ParamAttr::Alignment;
> -  ParameterAttributes NewAlign = Attrs & ParamAttr::Alignment;
> +  Attributes OldAlign = OldAttrs & ParamAttr::Alignment;
> +  Attributes NewAlign = Attrs & ParamAttr::Alignment;
>   assert((!OldAlign || !NewAlign || OldAlign == NewAlign) &&
>          "Attempt to change alignment!");
> #endif
>
> -  ParameterAttributes NewAttrs = OldAttrs | Attrs;
> +  Attributes NewAttrs = OldAttrs | Attrs;
>   if (NewAttrs == OldAttrs)
>     return *this;
>
> @@ -251,7 +251,7 @@
>   return get(&NewAttrList[0], NewAttrList.size());
> }
>
> -PAListPtr PAListPtr::removeAttr(unsigned Idx, ParameterAttributes  
> Attrs) const {
> +PAListPtr PAListPtr::removeAttr(unsigned Idx, Attributes Attrs)  
> const {
> #ifndef NDEBUG
>   // FIXME it is not obvious how this should work for alignment.
>   // For now, say we can't pass in alignment, which no current use  
> does.
> @@ -259,8 +259,8 @@
> #endif
>   if (PAList == 0) return PAListPtr();
>
> -  ParameterAttributes OldAttrs = getParamAttrs(Idx);
> -  ParameterAttributes NewAttrs = OldAttrs & ~Attrs;
> +  Attributes OldAttrs = getParamAttrs(Idx);
> +  Attributes NewAttrs = OldAttrs & ~Attrs;
>   if (NewAttrs == OldAttrs)
>     return *this;
>
>
> Modified: llvm/trunk/lib/VMCore/Function.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Function.cpp?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/VMCore/Function.cpp (original)
> +++ llvm/trunk/lib/VMCore/Function.cpp Tue Sep 23 18:03:40 2008
> @@ -112,12 +112,12 @@
> }
>
> /// addAttr - Add a ParamAttr to an argument
> -void Argument::addAttr(ParameterAttributes attr) {
> +void Argument::addAttr(Attributes attr) {
>   getParent()->addParamAttr(getArgNo() + 1, attr);
> }
>
> /// removeAttr - Remove a ParamAttr from an argument
> -void Argument::removeAttr(ParameterAttributes attr) {
> +void Argument::removeAttr(Attributes attr) {
>   getParent()->removeParamAttr(getArgNo() + 1, attr);
> }
>
> @@ -229,13 +229,13 @@
>   BasicBlocks.clear();    // Delete all basic blocks...
> }
>
> -void Function::addParamAttr(unsigned i, ParameterAttributes attr) {
> +void Function::addParamAttr(unsigned i, Attributes attr) {
>   PAListPtr PAL = getParamAttrs();
>   PAL = PAL.addAttr(i, attr);
>   setParamAttrs(PAL);
> }
>
> -void Function::removeParamAttr(unsigned i, ParameterAttributes  
> attr) {
> +void Function::removeParamAttr(unsigned i, Attributes attr) {
>   PAListPtr PAL = getParamAttrs();
>   PAL = PAL.removeAttr(i, attr);
>   setParamAttrs(PAL);
> @@ -356,7 +356,7 @@
> }
>
> PAListPtr Intrinsic::getParamAttrs(ID id) {
> -  ParameterAttributes Attr = ParamAttr::None;
> +  Attributes Attr = ParamAttr::None;
>
> #define GET_INTRINSIC_ATTRIBUTES
> #include "llvm/Intrinsics.gen"
>
> Modified: llvm/trunk/lib/VMCore/Instructions.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Instructions.cpp?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/VMCore/Instructions.cpp (original)
> +++ llvm/trunk/lib/VMCore/Instructions.cpp Tue Sep 23 18:03:40 2008
> @@ -53,7 +53,7 @@
>   else
>     cast<InvokeInst>(I)->setParamAttrs(PAL);
> }
> -bool CallSite::paramHasAttr(uint16_t i, ParameterAttributes attr)  
> const {
> +bool CallSite::paramHasAttr(uint16_t i, Attributes attr) const {
>   if (CallInst *CI = dyn_cast<CallInst>(I))
>     return CI->paramHasAttr(i, attr);
>   else
> @@ -402,19 +402,19 @@
>     OL[i] = InOL[i];
> }
>
> -void CallInst::addParamAttr(unsigned i, ParameterAttributes attr) {
> +void CallInst::addParamAttr(unsigned i, Attributes attr) {
>   PAListPtr PAL = getParamAttrs();
>   PAL = PAL.addAttr(i, attr);
>   setParamAttrs(PAL);
> }
>
> -void CallInst::removeParamAttr(unsigned i, ParameterAttributes  
> attr) {
> +void CallInst::removeParamAttr(unsigned i, Attributes attr) {
>   PAListPtr PAL = getParamAttrs();
>   PAL = PAL.removeAttr(i, attr);
>   setParamAttrs(PAL);
> }
>
> -bool CallInst::paramHasAttr(unsigned i, ParameterAttributes attr)  
> const {
> +bool CallInst::paramHasAttr(unsigned i, Attributes attr) const {
>   if (ParamAttrs.paramHasAttr(i, attr))
>     return true;
>   if (const Function *F = getCalledFunction())
> @@ -473,7 +473,7 @@
>   return setSuccessor(idx, B);
> }
>
> -bool InvokeInst::paramHasAttr(unsigned i, ParameterAttributes attr)  
> const {
> +bool InvokeInst::paramHasAttr(unsigned i, Attributes attr) const {
>   if (ParamAttrs.paramHasAttr(i, attr))
>     return true;
>   if (const Function *F = getCalledFunction())
> @@ -481,13 +481,13 @@
>   return false;
> }
>
> -void InvokeInst::addParamAttr(unsigned i, ParameterAttributes attr) {
> +void InvokeInst::addParamAttr(unsigned i, Attributes attr) {
>   PAListPtr PAL = getParamAttrs();
>   PAL = PAL.addAttr(i, attr);
>   setParamAttrs(PAL);
> }
>
> -void InvokeInst::removeParamAttr(unsigned i, ParameterAttributes  
> attr) {
> +void InvokeInst::removeParamAttr(unsigned i, Attributes attr) {
>   PAListPtr PAL = getParamAttrs();
>   PAL = PAL.removeAttr(i, attr);
>   setParamAttrs(PAL);
>
> Removed: llvm/trunk/lib/VMCore/ParameterAttributes.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/ParameterAttributes.cpp?rev=56512&view=auto
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/VMCore/ParameterAttributes.cpp (original)
> +++ llvm/trunk/lib/VMCore/ParameterAttributes.cpp (removed)
> @@ -1,297 +0,0 @@
> -//===-- ParameterAttributes.cpp - Implement ParamAttrsList  
> ----------------===//
> -//
> -//                     The LLVM Compiler Infrastructure
> -//
> -// This file is distributed under the University of Illinois Open  
> Source
> -// License. See LICENSE.TXT for details.
> -//
> -// 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
> -//
> -// This file implements the ParamAttrsList class and ParamAttr  
> utilities.
> -//
> -// 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
> -
> -#include "llvm/ParameterAttributes.h"
> -#include "llvm/Type.h"
> -#include "llvm/ADT/StringExtras.h"
> -#include "llvm/ADT/FoldingSet.h"
> -#include "llvm/Support/Streams.h"
> -#include "llvm/Support/ManagedStatic.h"
> -using namespace llvm;
> -
> -// 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
> -// ParamAttr Function Definitions
> -// 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
> -
> -std::string ParamAttr::getAsString(ParameterAttributes Attrs) {
> -  std::string Result;
> -  if (Attrs & ParamAttr::ZExt)
> -    Result += "zeroext ";
> -  if (Attrs & ParamAttr::SExt)
> -    Result += "signext ";
> -  if (Attrs & ParamAttr::NoReturn)
> -    Result += "noreturn ";
> -  if (Attrs & ParamAttr::NoUnwind)
> -    Result += "nounwind ";
> -  if (Attrs & ParamAttr::InReg)
> -    Result += "inreg ";
> -  if (Attrs & ParamAttr::NoAlias)
> -    Result += "noalias ";
> -  if (Attrs & ParamAttr::StructRet)
> -    Result += "sret ";
> -  if (Attrs & ParamAttr::ByVal)
> -    Result += "byval ";
> -  if (Attrs & ParamAttr::Nest)
> -    Result += "nest ";
> -  if (Attrs & ParamAttr::ReadNone)
> -    Result += "readnone ";
> -  if (Attrs & ParamAttr::ReadOnly)
> -    Result += "readonly ";
> -  if (Attrs & ParamAttr::Alignment) {
> -    Result += "align ";
> -    Result += utostr((Attrs & ParamAttr::Alignment) >> 16);
> -    Result += " ";
> -  }
> -  // Trim the trailing space.
> -  Result.erase(Result.end()-1);
> -  return Result;
> -}
> -
> -ParameterAttributes ParamAttr::typeIncompatible(const Type *Ty) {
> -  ParameterAttributes Incompatible = None;
> -
> -  if (!Ty->isInteger())
> -    // Attributes that only apply to integers.
> -    Incompatible |= SExt | ZExt;
> -
> -  if (!isa<PointerType>(Ty))
> -    // Attributes that only apply to pointers.
> -    Incompatible |= ByVal | Nest | NoAlias | StructRet;
> -
> -  return Incompatible;
> -}
> -
> -// 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
> -// ParamAttributeListImpl Definition
> -// 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
> -
> -namespace llvm {
> -class ParamAttributeListImpl : public FoldingSetNode {
> -  unsigned RefCount;
> -
> -  // ParamAttrsList is uniqued, these should not be publicly  
> available.
> -  void operator=(const ParamAttributeListImpl &); // Do not implement
> -  ParamAttributeListImpl(const ParamAttributeListImpl &); // Do not  
> implement
> -  ~ParamAttributeListImpl();                        // Private  
> implementation
> -public:
> -  SmallVector<ParamAttrsWithIndex, 4> Attrs;
> -
> -  ParamAttributeListImpl(const ParamAttrsWithIndex *Attr, unsigned  
> NumAttrs)
> -    : Attrs(Attr, Attr+NumAttrs) {
> -    RefCount = 0;
> -  }
> -
> -  void AddRef() { ++RefCount; }
> -  void DropRef() { if (--RefCount == 0) delete this; }
> -
> -  void Profile(FoldingSetNodeID &ID) const {
> -    Profile(ID, &Attrs[0], Attrs.size());
> -  }
> -  static void Profile(FoldingSetNodeID &ID, const  
> ParamAttrsWithIndex *Attr,
> -                      unsigned NumAttrs) {
> -    for (unsigned i = 0; i != NumAttrs; ++i)
> -      ID.AddInteger(uint64_t(Attr[i].Attrs) << 32 |  
> unsigned(Attr[i].Index));
> -  }
> -};
> -}
> -
> -static ManagedStatic<FoldingSet<ParamAttributeListImpl> >  
> ParamAttrsLists;
> -
> -ParamAttributeListImpl::~ParamAttributeListImpl() {
> -  ParamAttrsLists->RemoveNode(this);
> -}
> -
> -
> -PAListPtr PAListPtr::get(const ParamAttrsWithIndex *Attrs, unsigned  
> NumAttrs) {
> -  // If there are no attributes then return a null ParamAttrsList  
> pointer.
> -  if (NumAttrs == 0)
> -    return PAListPtr();
> -
> -#ifndef NDEBUG
> -  for (unsigned i = 0; i != NumAttrs; ++i) {
> -    assert(Attrs[i].Attrs != ParamAttr::None &&
> -           "Pointless parameter attribute!");
> -    assert((!i || Attrs[i-1].Index < Attrs[i].Index) &&
> -           "Misordered ParamAttrsList!");
> -  }
> -#endif
> -
> -  // Otherwise, build a key to look up the existing attributes.
> -  FoldingSetNodeID ID;
> -  ParamAttributeListImpl::Profile(ID, Attrs, NumAttrs);
> -  void *InsertPos;
> -  ParamAttributeListImpl *PAL =
> -    ParamAttrsLists->FindNodeOrInsertPos(ID, InsertPos);
> -
> -  // If we didn't find any existing attributes of the same shape then
> -  // create a new one and insert it.
> -  if (!PAL) {
> -    PAL = new ParamAttributeListImpl(Attrs, NumAttrs);
> -    ParamAttrsLists->InsertNode(PAL, InsertPos);
> -  }
> -
> -  // Return the ParamAttrsList that we found or created.
> -  return PAListPtr(PAL);
> -}
> -
> -
> -// 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
> -// PAListPtr Method Implementations
> -// 
> = 
> = 
> = 
> ----------------------------------------------------------------------= 
> ==//
> -
> -PAListPtr::PAListPtr(ParamAttributeListImpl *LI) : PAList(LI) {
> -  if (LI) LI->AddRef();
> -}
> -
> -PAListPtr::PAListPtr(const PAListPtr &P) : PAList(P.PAList) {
> -  if (PAList) PAList->AddRef();
> -}
> -
> -const PAListPtr &PAListPtr::operator=(const PAListPtr &RHS) {
> -  if (PAList == RHS.PAList) return *this;
> -  if (PAList) PAList->DropRef();
> -  PAList = RHS.PAList;
> -  if (PAList) PAList->AddRef();
> -  return *this;
> -}
> -
> -PAListPtr::~PAListPtr() {
> -  if (PAList) PAList->DropRef();
> -}
> -
> -/// getNumSlots - Return the number of slots used in this attribute  
> list.
> -/// This is the number of arguments that have an attribute set on  
> them
> -/// (including the function itself).
> -unsigned PAListPtr::getNumSlots() const {
> -  return PAList ? PAList->Attrs.size() : 0;
> -}
> -
> -/// getSlot - Return the ParamAttrsWithIndex at the specified  
> slot.  This
> -/// holds a parameter number plus a set of attributes.
> -const ParamAttrsWithIndex &PAListPtr::getSlot(unsigned Slot) const {
> -  assert(PAList && Slot < PAList->Attrs.size() && "Slot # out of  
> range!");
> -  return PAList->Attrs[Slot];
> -}
> -
> -
> -/// getParamAttrs - The parameter attributes for the specified  
> parameter are
> -/// returned.  Parameters for the result are denoted with Idx = 0.
> -/// Function notes are denoted with idx = ~0.
> -ParameterAttributes PAListPtr::getParamAttrs(unsigned Idx) const {
> -  if (PAList == 0) return ParamAttr::None;
> -
> -  const SmallVector<ParamAttrsWithIndex, 4> &Attrs = PAList->Attrs;
> -  for (unsigned i = 0, e = Attrs.size(); i != e && Attrs[i].Index  
> <= Idx; ++i)
> -    if (Attrs[i].Index == Idx)
> -      return Attrs[i].Attrs;
> -  return ParamAttr::None;
> -}
> -
> -/// hasAttrSomewhere - Return true if the specified attribute is  
> set for at
> -/// least one parameter or for the return value.
> -bool PAListPtr::hasAttrSomewhere(ParameterAttributes Attr) const {
> -  if (PAList == 0) return false;
> -
> -  const SmallVector<ParamAttrsWithIndex, 4> &Attrs = PAList->Attrs;
> -  for (unsigned i = 0, e = Attrs.size(); i != e; ++i)
> -    if (Attrs[i].Attrs & Attr)
> -      return true;
> -  return false;
> -}
> -
> -
> -PAListPtr PAListPtr::addAttr(unsigned Idx, ParameterAttributes  
> Attrs) const {
> -  ParameterAttributes OldAttrs = getParamAttrs(Idx);
> -#ifndef NDEBUG
> -  // FIXME it is not obvious how this should work for alignment.
> -  // For now, say we can't change a known alignment.
> -  ParameterAttributes OldAlign = OldAttrs & ParamAttr::Alignment;
> -  ParameterAttributes NewAlign = Attrs & ParamAttr::Alignment;
> -  assert((!OldAlign || !NewAlign || OldAlign == NewAlign) &&
> -         "Attempt to change alignment!");
> -#endif
> -
> -  ParameterAttributes NewAttrs = OldAttrs | Attrs;
> -  if (NewAttrs == OldAttrs)
> -    return *this;
> -
> -  SmallVector<ParamAttrsWithIndex, 8> NewAttrList;
> -  if (PAList == 0)
> -    NewAttrList.push_back(ParamAttrsWithIndex::get(Idx, Attrs));
> -  else {
> -    const SmallVector<ParamAttrsWithIndex, 4> &OldAttrList = PAList- 
> >Attrs;
> -    unsigned i = 0, e = OldAttrList.size();
> -    // Copy attributes for arguments before this one.
> -    for (; i != e && OldAttrList[i].Index < Idx; ++i)
> -      NewAttrList.push_back(OldAttrList[i]);
> -
> -    // If there are attributes already at this index, merge them in.
> -    if (i != e && OldAttrList[i].Index == Idx) {
> -      Attrs |= OldAttrList[i].Attrs;
> -      ++i;
> -    }
> -
> -    NewAttrList.push_back(ParamAttrsWithIndex::get(Idx, Attrs));
> -
> -    // Copy attributes for arguments after this one.
> -    NewAttrList.insert(NewAttrList.end(),
> -                       OldAttrList.begin()+i, OldAttrList.end());
> -  }
> -
> -  return get(&NewAttrList[0], NewAttrList.size());
> -}
> -
> -PAListPtr PAListPtr::removeAttr(unsigned Idx, ParameterAttributes  
> Attrs) const {
> -#ifndef NDEBUG
> -  // FIXME it is not obvious how this should work for alignment.
> -  // For now, say we can't pass in alignment, which no current use  
> does.
> -  assert(!(Attrs & ParamAttr::Alignment) && "Attempt to exclude  
> alignment!");
> -#endif
> -  if (PAList == 0) return PAListPtr();
> -
> -  ParameterAttributes OldAttrs = getParamAttrs(Idx);
> -  ParameterAttributes NewAttrs = OldAttrs & ~Attrs;
> -  if (NewAttrs == OldAttrs)
> -    return *this;
> -
> -  SmallVector<ParamAttrsWithIndex, 8> NewAttrList;
> -  const SmallVector<ParamAttrsWithIndex, 4> &OldAttrList = PAList- 
> >Attrs;
> -  unsigned i = 0, e = OldAttrList.size();
> -
> -  // Copy attributes for arguments before this one.
> -  for (; i != e && OldAttrList[i].Index < Idx; ++i)
> -    NewAttrList.push_back(OldAttrList[i]);
> -
> -  // If there are attributes already at this index, merge them in.
> -  assert(OldAttrList[i].Index == Idx && "Attribute isn't set?");
> -  Attrs = OldAttrList[i].Attrs & ~Attrs;
> -  ++i;
> -  if (Attrs)  // If any attributes left for this parameter, add them.
> -    NewAttrList.push_back(ParamAttrsWithIndex::get(Idx, Attrs));
> -
> -  // Copy attributes for arguments after this one.
> -  NewAttrList.insert(NewAttrList.end(),
> -                     OldAttrList.begin()+i, OldAttrList.end());
> -
> -  return get(&NewAttrList[0], NewAttrList.size());
> -}
> -
> -void PAListPtr::dump() const {
> -  cerr << "PAL[ ";
> -  for (unsigned i = 0; i < getNumSlots(); ++i) {
> -    const ParamAttrsWithIndex &PAWI = getSlot(i);
> -    cerr << "{" << PAWI.Index << "," << PAWI.Attrs << "} ";
> -  }
> -
> -  cerr << "]\n";
> -}
>
> Modified: llvm/trunk/lib/VMCore/Verifier.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Verifier.cpp?rev=56513&r1=56512&r2=56513&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/VMCore/Verifier.cpp (original)
> +++ llvm/trunk/lib/VMCore/Verifier.cpp Tue Sep 23 18:03:40 2008
> @@ -268,7 +268,7 @@
>     void VerifyCallSite(CallSite CS);
>     void VerifyIntrinsicPrototype(Intrinsic::ID ID, Function *F,
>                                   unsigned Count, ...);
> -    void VerifyAttrs(ParameterAttributes Attrs, const Type *Ty,
> +    void VerifyAttrs(Attributes Attrs, const Type *Ty,
>                      bool isReturnValue, const Value *V);
>     void VerifyFunctionAttrs(const FunctionType *FT, const PAListPtr  
> &Attrs,
>                              const Value *V);
> @@ -406,33 +406,33 @@
>
> // VerifyAttrs - Check the given parameter attributes for an  
> argument or return
> // value of the specified type.  The value V is printed in error  
> messages.
> -void Verifier::VerifyAttrs(ParameterAttributes Attrs, const Type *Ty,
> +void Verifier::VerifyAttrs(Attributes Attrs, const Type *Ty,
>                            bool isReturnValue, const Value *V) {
>   if (Attrs == ParamAttr::None)
>     return;
>
>   if (isReturnValue) {
> -    ParameterAttributes RetI = Attrs & ParamAttr::ParameterOnly;
> +    Attributes RetI = Attrs & ParamAttr::ParameterOnly;
>     Assert1(!RetI, "Attribute " + ParamAttr::getAsString(RetI) +
>             " does not apply to return values!", V);
>   } else {
> -    ParameterAttributes ParmI = Attrs & ParamAttr::ReturnOnly;
> +    Attributes ParmI = Attrs & ParamAttr::ReturnOnly;
>     Assert1(!ParmI, "Attribute " + ParamAttr::getAsString(ParmI) +
>             " only applies to return values!", V);
>   }
>
>   for (unsigned i = 0;
>        i < array_lengthof(ParamAttr::MutuallyIncompatible); ++i) {
> -    ParameterAttributes MutI = Attrs &  
> ParamAttr::MutuallyIncompatible[i];
> +    Attributes MutI = Attrs & ParamAttr::MutuallyIncompatible[i];
>     Assert1(!(MutI & (MutI - 1)), "Attributes " +
>             ParamAttr::getAsString(MutI) + " are incompatible!", V);
>   }
>
> -  ParameterAttributes TypeI = Attrs &  
> ParamAttr::typeIncompatible(Ty);
> +  Attributes TypeI = Attrs & ParamAttr::typeIncompatible(Ty);
>   Assert1(!TypeI, "Wrong type for attribute " +
>           ParamAttr::getAsString(TypeI), V);
>
> -  ParameterAttributes ByValI = Attrs & ParamAttr::ByVal;
> +  Attributes ByValI = Attrs & ParamAttr::ByVal;
>   if (const PointerType *PTy = dyn_cast<PointerType>(Ty)) {
>     Assert1(!ByValI || PTy->getElementType()->isSized(),
>             "Attribute " + ParamAttr::getAsString(ByValI) +
> @@ -976,11 +976,11 @@
>   if (FTy->isVarArg())
>     // Check attributes on the varargs part.
>     for (unsigned Idx = 1 + FTy->getNumParams(); Idx <=  
> CS.arg_size(); ++Idx) {
> -      ParameterAttributes Attr = Attrs.getParamAttrs(Idx);
> +      Attributes Attr = Attrs.getParamAttrs(Idx);
>
>       VerifyAttrs(Attr, CS.getArgument(Idx-1)->getType(), false, I);
>
> -      ParameterAttributes VArgI = Attr &  
> ParamAttr::VarArgsIncompatible;
> +      Attributes VArgI = Attr & ParamAttr::VarArgsIncompatible;
>       Assert1(!VArgI, "Attribute " + ParamAttr::getAsString(VArgI) +
>               " cannot be used for vararg call arguments!", I);
>     }
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list