1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/include/llvm/Transforms
Peter Collingbourne 16d8086f72 Implement categories for special case lists.
A special case list can now specify categories for specific globals,
which can be used to instruct an instrumentation pass to treat certain
functions or global variables in a specific way, such as by omitting
certain aspects of instrumentation while keeping others, or informing
the instrumentation pass that a specific uninstrumentable function
has certain semantics, thus allowing the pass to instrument callers
according to those semantics.

For example, AddressSanitizer now uses the "init" category instead of
global-init prefixes for globals whose initializers should not be
instrumented, but which in all other respects should be instrumented.

The motivating use case is DataFlowSanitizer, which will have a
number of different categories for uninstrumentable functions, such
as "functional" which specifies that a function has pure functional
semantics, or "discard" which indicates that a function's return
value should not be labelled.

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

llvm-svn: 185978
2013-07-09 22:03:17 +00:00
..
IPO Add a flag to defer vectorization into a phase after the inliner and its 2013-06-24 07:21:47 +00:00
Utils Implement categories for special case lists. 2013-07-09 22:03:17 +00:00
Instrumentation.h Remove limitation on DebugIR that made it require existing debug metadata. 2013-06-28 19:05:23 +00:00
IPO.h Use an ArrayRef instead of a std::vector&. 2012-12-11 16:36:02 +00:00
ObjCARC.h Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00
Scalar.h Remove the simplify-libcalls pass (finally) 2013-06-20 19:48:07 +00:00
Vectorize.h Add support for bottom-up SLP vectorization infrastructure. 2013-04-09 19:44:35 +00:00