llvm-6502/lib/Transforms/Instrumentation
Peter Collingbourne fdb1a6c341 DataFlowSanitizer: greylist is now ABI list.
This replaces the old incomplete greylist functionality with an ABI
list, which can provide more detailed information about the ABI and
semantics of specific functions.  The pass treats every function in
the "uninstrumented" category in the ABI list file as conforming to
the "native" (i.e. unsanitized) ABI.  Unless the ABI list contains
additional categories for those functions, a call to one of those
functions will produce a warning message, as the labelling behaviour
of the function is unknown.  The other supported categories are
"functional", "discard" and "custom".

- "discard" -- This function does not write to (user-accessible) memory,
  and its return value is unlabelled.
- "functional" -- This function does not write to (user-accessible)
  memory, and the label of its return value is the union of the label of
  its arguments.
- "custom" -- Instead of calling the function, a custom wrapper __dfsw_F
  is called, where F is the name of the function.  This function may wrap
  the original function or provide its own implementation.

Differential Revision: http://llvm-reviews.chandlerc.com/D1345

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188402 91177308-0d34-0410-b5e6-96231b3b80d8
2013-08-14 18:54:12 +00:00
..
AddressSanitizer.cpp Add SpecialCaseList::createOrDie() factory and use it in sanitizer passes 2013-08-12 11:46:09 +00:00
BoundsChecking.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
CMakeLists.txt DataFlowSanitizer; LLVM changes. 2013-08-07 22:47:18 +00:00
DataFlowSanitizer.cpp DataFlowSanitizer: greylist is now ABI list. 2013-08-14 18:54:12 +00:00
DebugIR.cpp Remove DIBuilder cache of variable TheCU and change the few 2013-07-19 00:51:47 +00:00
DebugIR.h Add missing header for DebugIR 2013-06-28 19:07:59 +00:00
EdgeProfiling.cpp Revert "Add LLVMContext::emitWarning methods and use them. <rdar://problem/12867368>" 2013-02-08 21:48:29 +00:00
GCOVProfiling.cpp Mark a method 'const' and another 'static'. 2013-07-17 03:54:53 +00:00
Instrumentation.cpp DataFlowSanitizer; LLVM changes. 2013-08-07 22:47:18 +00:00
LLVMBuild.txt LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
Makefile make -fno-rtti the default unless a directory builds with REQUIRES_RTTI. 2010-01-24 20:43:08 +00:00
MaximumSpanningTree.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
MemorySanitizer.cpp Add SpecialCaseList::createOrDie() factory and use it in sanitizer passes 2013-08-12 11:46:09 +00:00
OptimalEdgeProfiling.cpp Revert "Add LLVMContext::emitWarning methods and use them. <rdar://problem/12867368>" 2013-02-08 21:48:29 +00:00
PathProfiling.cpp Revert "Add LLVMContext::emitWarning methods and use them. <rdar://problem/12867368>" 2013-02-08 21:48:29 +00:00
ProfilingUtils.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
ProfilingUtils.h Add a function for profiling to run at shutdown. Unlike the existing API, this 2011-04-08 22:19:52 +00:00
ThreadSanitizer.cpp Add SpecialCaseList::createOrDie() factory and use it in sanitizer passes 2013-08-12 11:46:09 +00:00