1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-26 14:33:02 +02:00
llvm-mirror/lib/Transforms/Instrumentation
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
..
AddressSanitizer.cpp [ASan] Add shadow offset for SystemZ. 2016-04-30 09:57:34 +00:00
BoundsChecking.cpp Remove PreserveNames template parameter from IRBuilder 2016-03-13 21:05:13 +00:00
CFGMST.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
CMakeLists.txt [PGO] Promote indirect calls to conditional direct calls with value-profile 2016-04-27 23:20:27 +00:00
DataFlowSanitizer.cpp [DFSan] Remove an overly aggressive assert reported in PR26068. 2016-03-07 14:05:09 +00:00
EfficiencySanitizer.cpp [esan] EfficiencySanitizer instrumentation pass 2016-04-21 21:30:22 +00:00
GCOVProfiling.cpp [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
IndirectCallPromotion.cpp [PGO] Fix incorrect Twine usage in emitting optimization remarks. 2016-04-28 17:49:56 +00:00
IndirectCallSiteVisitor.h [PGO] Avoid instrumenting direct callee's at value sites. 2016-04-04 18:56:36 +00:00
InstrProfiling.cpp [PGO] Prohibit address recording if the function is both internal and COMDAT 2016-04-27 21:17:30 +00:00
Instrumentation.cpp [PGO] Promote indirect calls to conditional direct calls with value-profile 2016-04-27 23:20:27 +00:00
LLVMBuild.txt
MaximumSpanningTree.h
MemorySanitizer.cpp Fix build by casting to the proper int type. 2016-04-29 02:09:57 +00:00
PGOInstrumentation.cpp Minor format change and fixing typos in the comments. NFC. 2016-04-28 17:31:22 +00:00
SanitizerCoverage.cpp [sancov] enabling coverage edge pruning by default. 2016-04-06 23:24:37 +00:00
ThreadSanitizer.cpp Make helper functions static. NFC. 2016-04-07 10:10:09 +00:00