diff options
Diffstat (limited to 'llvm/include/llvm/IR/Argument.h')
-rw-r--r-- | llvm/include/llvm/IR/Argument.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/llvm/include/llvm/IR/Argument.h b/llvm/include/llvm/IR/Argument.h index 244878bd31558..af469e8a5d1aa 100644 --- a/llvm/include/llvm/IR/Argument.h +++ b/llvm/include/llvm/IR/Argument.h @@ -71,9 +71,13 @@ public: /// Return true if this argument has the swifterror attribute. bool hasSwiftErrorAttr() const; - /// Return true if this argument has the byval attribute or inalloca + /// Return true if this argument has the byval, inalloca, or preallocated /// attribute. These attributes represent arguments being passed by value. - bool hasByValOrInAllocaAttr() const; + bool hasPassPointeeByValueAttr() const; + + /// If this argument satisfies has hasPassPointeeByValueAttr, return the + /// in-memory ABI size copied to the stack for the call. Otherwise, return 0. + uint64_t getPassPointeeByValueCopySize(const DataLayout &DL) const; /// If this is a byval or inalloca argument, return its alignment. /// FIXME: Remove this function once transition to Align is over. @@ -110,6 +114,9 @@ public: /// Return true if this argument has the inalloca attribute. bool hasInAllocaAttr() const; + /// Return true if this argument has the preallocated attribute. + bool hasPreallocatedAttr() const; + /// Return true if this argument has the zext attribute. bool hasZExtAttr() const; |