1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00
llvm-mirror/lib/Transforms/Instrumentation
Jianzhou Zhao 37af161d61 [dfsan] Support passing non-i16 shadow values in TLS mode
This is a child diff of D92261.

It extended TLS arg/ret to work with aggregate types.

For a function
  t foo(t1 a1, t2 a2, ... tn an)
Its arguments shadow are saved in TLS args like
  a1_s, a2_s, ..., an_s
TLS ret simply includes r_s. By calculating the type size of each shadow
value, we can get their offset.

This is similar to what MSan does. See __msan_retval_tls and __msan_param_tls
from llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp.

Note that this change does not add test cases for overflowed TLS
arg/ret because this is hard to test w/o supporting aggregate shdow
types. We will be adding them after supporting that.

Reviewed-by: morehouse

Differential Revision: https://reviews.llvm.org/D92440
2020-12-04 02:45:07 +00:00
..
AddressSanitizer.cpp static const char *const foo => const char foo[] 2020-12-01 10:33:18 -08:00
BoundsChecking.cpp
CFGMST.h [PGO] Supporting code for always instrumenting entry block 2020-07-22 15:01:53 -07:00
CGProfile.cpp [CGProfile] don't emit cgprofile entry if called function is dllimport 2020-09-23 16:56:54 -07:00
CMakeLists.txt llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
ControlHeightReduction.cpp [CHR] Use pred_size (NFC) 2020-11-24 22:52:30 -08:00
DataFlowSanitizer.cpp [dfsan] Support passing non-i16 shadow values in TLS mode 2020-12-04 02:45:07 +00:00
GCOVProfiling.cpp [NFC][GCOV] Fix build: there's llvm::stable_partition() wrapper 2020-10-05 22:52:32 +03:00
HWAddressSanitizer.cpp static const char *const foo => const char foo[] 2020-12-01 10:33:18 -08:00
IndirectCallPromotion.cpp
InstrOrderFile.cpp
InstrProfiling.cpp [PGO] Remove the old memop value profiling buckets. 2020-10-15 10:09:49 -07:00
Instrumentation.cpp [MemProf] Rename HeapProfiler to MemProfiler for consistency 2020-09-14 13:14:57 -07:00
MaximumSpanningTree.h
MemorySanitizer.cpp [msan] Replace 8 by kShadowTLSAlignment 2020-12-02 01:09:49 +00:00
MemProfiler.cpp [MemProf] Pass down memory profile name with optional path from clang 2020-11-01 17:38:23 -08:00
PGOInstrumentation.cpp Revert "clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM" 2020-11-14 13:12:38 +03:00
PGOMemOPSizeOpt.cpp [NFC] Reduce include files dependency. 2020-12-03 18:25:05 +03:00
PoisonChecking.cpp [ValueTracking] Add UndefOrPoison/Poison-only version of relevant functions 2020-09-09 20:00:26 +09:00
SanitizerCoverage.cpp static const char *const foo => const char foo[] 2020-12-01 10:33:18 -08:00
ThreadSanitizer.cpp static const char *const foo => const char foo[] 2020-12-01 10:33:18 -08:00
ValueProfileCollector.cpp ValueProfileCollector.h - remove unnecessary includes. NFC. 2020-07-23 12:33:13 +01:00
ValueProfileCollector.h ValueProfileCollector.h - remove unnecessary includes. NFC. 2020-07-23 12:33:13 +01:00
ValueProfilePlugins.inc