summaryrefslogtreecommitdiff
path: root/llvm/include/llvm/IR/Argument.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/include/llvm/IR/Argument.h')
-rw-r--r--llvm/include/llvm/IR/Argument.h11
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;