1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
llvm-mirror/lib/Transforms
Marcin Koscielnicki 8145a126c9 [ASan] Add shadow offset for SystemZ.
SystemZ on Linux currently has 53-bit address space.  In theory, the hardware
could support a full 64-bit address space, but that's not supported due to
kernel limitations (it'd require 5-level page tables), and there are no plans
for that.  The default process layout stays within first 4TB of address space
(to avoid creating 4-level page tables), so any offset >= (1 << 42) is fine.
Let's use 1 << 52 here, ie. exactly half the address space.

I've originally used 7 << 50 (uses top 1/8th of the address space), but ASan
runtime assumes there's some space after the shadow area.  While this is
fixable, it's simpler to avoid the issue entirely.

Also, I've originally wanted to have the shadow aligned to 1/8th the address
space, so that we can use OR like X86 to assemble the offset.  I no longer
think it's a good idea, since using ADD enables us to load the constant just
once and use it with register + register indexed addressing.

Differential Revision: http://reviews.llvm.org/D19650

llvm-svn: 268161
2016-04-30 09:57:34 +00:00
..
Hello Remove autoconf support 2016-01-26 21:29:08 +00:00
InstCombine [InstCombine][AVX] VPERMILVAR to shuffle combine to use general aggregate elements. NFCI. 2016-04-30 07:23:30 +00:00
Instrumentation [ASan] Add shadow offset for SystemZ. 2016-04-30 09:57:34 +00:00
IPO Reapply r268107 after fixing a bug breaks debug build. 2016-04-29 22:59:36 +00:00
ObjCARC Unify XDEBUG and EXPENSIVE_CHECKS (into the latter), and add an option to the cmake build to enable them. 2016-04-29 15:22:48 +00:00
Scalar [LowerGuardIntrinsics] Keep track of !make.implicit metadata 2016-04-30 00:55:59 +00:00
Utils Mark guards on true as "trivially dead" 2016-04-29 22:23:16 +00:00
Vectorize [SLPVectorizer] Add operand bundles to vectorized functions 2016-04-29 07:09:51 +00:00
CMakeLists.txt
LLVMBuild.txt