summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2014-02-05 23:15:53 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2014-02-05 23:15:53 +0000
commitbb7bf85f3c7149e74e1cc2be823d558e33469bad (patch)
tree8e02d7228f66a6e6ff14374286dd4507aed30d13 /include
parentdf7da79db6879032da83de83a90f981cacdb5f1a (diff)
downloadllvm-bb7bf85f3c7149e74e1cc2be823d558e33469bad.tar.gz
llvm-bb7bf85f3c7149e74e1cc2be823d558e33469bad.tar.bz2
llvm-bb7bf85f3c7149e74e1cc2be823d558e33469bad.tar.xz
Add address space argument to allowsUnalignedMemoryAccess.
On R600, some address spaces have more strict alignment requirements than others. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200887 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Target/TargetLowering.h18
1 files changed, 10 insertions, 8 deletions
diff --git a/include/llvm/Target/TargetLowering.h b/include/llvm/Target/TargetLowering.h
index b5c7e43858..f29f620697 100644
--- a/include/llvm/Target/TargetLowering.h
+++ b/include/llvm/Target/TargetLowering.h
@@ -713,14 +713,16 @@ public:
/// \brief Determine if the target supports unaligned memory accesses.
///
- /// This function returns true if the target allows unaligned memory accesses.
- /// of the specified type. If true, it also returns whether the unaligned
- /// memory access is "fast" in the second argument by reference. This is used,
- /// for example, in situations where an array copy/move/set is converted to a
- /// sequence of store operations. It's use helps to ensure that such
- /// replacements don't generate code that causes an alignment error (trap) on
- /// the target machine.
- virtual bool allowsUnalignedMemoryAccesses(EVT, bool * /*Fast*/ = 0) const {
+ /// This function returns true if the target allows unaligned memory accesses
+ /// of the specified type in the given address space. If true, it also returns
+ /// whether the unaligned memory access is "fast" in the third argument by
+ /// reference. This is used, for example, in situations where an array
+ /// copy/move/set is converted to a sequence of store operations. Its use
+ /// helps to ensure that such replacements don't generate code that causes an
+ /// alignment error (trap) on the target machine.
+ virtual bool allowsUnalignedMemoryAccesses(EVT,
+ unsigned AddrSpace = 0,
+ bool * /*Fast*/ = 0) const {
return false;
}