AArch64: add experimental support for address tagging.
authorTim Northover <tnorthover@apple.com>
Tue, 10 Nov 2015 00:44:23 +0000 (00:44 +0000)
committerTim Northover <tnorthover@apple.com>
Tue, 10 Nov 2015 00:44:23 +0000 (00:44 +0000)
commiteefe9f5a5457340fee5e51f9042f69993b0be895
treeec121823ff4f34ede705dcff91a02408bc89cbff
parent7f0edadcaf45b0fb545e6edfd4d026bb6fa7c5e5
AArch64: add experimental support for address tagging.

AArch64 has the ability to use the top 8-bits of an "address" for extra
information, with the memory subsystem automatically masking them off for loads
and stores. When that's happening, we can sometimes skip masks on memory
operations in the compiler.

However, this requires the host OS and support stack to preserve those bits so
it can't be enabled everywhere. In principle iOS 8.0 and above do take the
required precautions and but we'll put it under a flag for now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252573 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/AArch64/AArch64ISelLowering.cpp
lib/Target/AArch64/AArch64Subtarget.cpp
lib/Target/AArch64/AArch64Subtarget.h
test/CodeGen/AArch64/tbi.ll [new file with mode: 0644]