mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 19:52:54 +01:00
37af161d61
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 |
||
---|---|---|
.. | ||
AddressSanitizer.cpp | ||
BoundsChecking.cpp | ||
CFGMST.h | ||
CGProfile.cpp | ||
CMakeLists.txt | ||
ControlHeightReduction.cpp | ||
DataFlowSanitizer.cpp | ||
GCOVProfiling.cpp | ||
HWAddressSanitizer.cpp | ||
IndirectCallPromotion.cpp | ||
InstrOrderFile.cpp | ||
InstrProfiling.cpp | ||
Instrumentation.cpp | ||
MaximumSpanningTree.h | ||
MemorySanitizer.cpp | ||
MemProfiler.cpp | ||
PGOInstrumentation.cpp | ||
PGOMemOPSizeOpt.cpp | ||
PoisonChecking.cpp | ||
SanitizerCoverage.cpp | ||
ThreadSanitizer.cpp | ||
ValueProfileCollector.cpp | ||
ValueProfileCollector.h | ||
ValueProfilePlugins.inc |