X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FIR%2FArgument.h;h=0092f49e49ad6200dcc8adeab4fb9dd8e0d9e903;hb=9ac3ec43b3eb2c18007542c1fe43d93519606c32;hp=d226bd3c855298fd9171b489108efc15f50f2f2e;hpb=ec0f0bc6afa8d2c1f427ec55264fc78738b83ef6;p=oota-llvm.git diff --git a/include/llvm/IR/Argument.h b/include/llvm/IR/Argument.h index d226bd3c855..0092f49e49a 100644 --- a/include/llvm/IR/Argument.h +++ b/include/llvm/IR/Argument.h @@ -21,8 +21,7 @@ namespace llvm { -template - class SymbolTableListTraits; +template class SymbolTableListTraits; /// \brief LLVM Argument representation /// @@ -36,7 +35,7 @@ class Argument : public Value, public ilist_node { virtual void anchor(); Function *Parent; - friend class SymbolTableListTraits; + friend class SymbolTableListTraits; void setParent(Function *parent); public: @@ -55,6 +54,21 @@ public: /// For example in "void foo(int a, float b)" a is 0 and b is 1. unsigned getArgNo() const; + /// \brief Return true if this argument has the nonnull attribute on it in + /// its containing function. Also returns true if at least one byte is known + /// to be dereferenceable and the pointer is in addrspace(0). + bool hasNonNullAttr() const; + + /// \brief If this argument has the dereferenceable attribute on it in its + /// containing function, return the number of bytes known to be + /// dereferenceable. Otherwise, zero is returned. + uint64_t getDereferenceableBytes() const; + + /// \brief If this argument has the dereferenceable_or_null attribute on + /// it in its containing function, return the number of bytes known to be + /// dereferenceable. Otherwise, zero is returned. + uint64_t getDereferenceableOrNullBytes() const; + /// \brief Return true if this argument has the byval attribute on it in its /// containing function. bool hasByValAttr() const; @@ -95,6 +109,14 @@ public: /// its containing function. bool hasInAllocaAttr() const; + /// \brief Return true if this argument has the zext attribute on it in its + /// containing function. + bool hasZExtAttr() const; + + /// \brief Return true if this argument has the sext attribute on it in its + /// containing function. + bool hasSExtAttr() const; + /// \brief Add a Attribute to an argument. void addAttr(AttributeSet AS);