[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/
Devang Patel
dpatel at apple.com
Tue Sep 23 16:22:55 PDT 2008
On Sep 23, 2008, at 4:21 PM, Evan Cheng wrote:
> 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?
I forgot to check-in .y files. Just a second.
-
Devang
>
>
> 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
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
-
Devang
More information about the llvm-commits
mailing list