1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/include/llvm
Marco Elver b835b9cf36 [SanitizeCoverage] Add support for NoSanitizeCoverage function attribute
We really ought to support no_sanitize("coverage") in line with other
sanitizers. This came up again in discussions on the Linux-kernel
mailing lists, because we currently do workarounds using objtool to
remove coverage instrumentation. Since that support is only on x86, to
continue support coverage instrumentation on other architectures, we
must support selectively disabling coverage instrumentation via function
attributes.

Unfortunately, for SanitizeCoverage, it has not been implemented as a
sanitizer via fsanitize= and associated options in Sanitizers.def, but
rolls its own option fsanitize-coverage. This meant that we never got
"automatic" no_sanitize attribute support.

Implement no_sanitize attribute support by special-casing the string
"coverage" in the NoSanitizeAttr implementation. To keep the feature as
unintrusive to existing IR generation as possible, define a new negative
function attribute NoSanitizeCoverage to propagate the information
through to the instrumentation pass.

Fixes: https://bugs.llvm.org/show_bug.cgi?id=49035

Reviewed By: vitalybuka, morehouse

Differential Revision: https://reviews.llvm.org/D102772
2021-05-25 12:57:14 +02:00
..
ADT Add a range-based wrapper for std::unique(begin, end, binary_predicate) 2021-05-24 17:26:46 -07:00
Analysis [Remarks] Add analysis remarks for memset/memcpy/memmove lengths 2021-05-24 10:10:44 -07:00
AsmParser [SanitizeCoverage] Add support for NoSanitizeCoverage function attribute 2021-05-25 12:57:14 +02:00
BinaryFormat [WebAssembly] Fix PIC/GOT codegen for wasm64 2021-05-20 09:59:31 -07:00
Bitcode [SanitizeCoverage] Add support for NoSanitizeCoverage function attribute 2021-05-25 12:57:14 +02:00
Bitstream [llvm] Use append_range (NFC) 2021-01-29 23:23:34 -08:00
CodeGen [ARM] Allow findLoopPreheader to return headers with multiple loop successors 2021-05-24 12:22:15 +01:00
Config Fix lld macho standalone build by including llvm/Config/llvm-config.h instead of llvm/Config/config.h 2021-05-19 11:15:07 -04:00
DebugInfo [lldb] Improve invalid DWARF DW_AT_ranges error reporting 2021-05-20 21:37:01 +02:00
Demangle [Demangle][Rust] Parse function signatures 2021-05-22 11:49:08 +02:00
DWARFLinker [dsymutil] Add flag to force a static variable to keep its enclosing function 2021-04-28 11:33:04 -07:00
ExecutionEngine [JITLink] Enable creation and management of mutable block content. 2021-05-24 22:09:36 -07:00
FileCheck [FileCheck] Fix numeric error propagation 2021-03-17 19:25:41 -04:00
Frontend [OpenMP][OMPIRBuilder]Adding support for omp atomic 2021-05-23 17:44:09 -04:00
FuzzMutate [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
InterfaceStub [docs] Fix doxygen comments wrongly attached to the llvm namespace 2021-04-07 01:20:18 +02:00
IR [SanitizeCoverage] Add support for NoSanitizeCoverage function attribute 2021-05-25 12:57:14 +02:00
IRReader
LineEditor
Linker
LTO [SampleFDO] New hierarchical discriminator for Flow Sensitive SampleFDO 2021-05-18 16:23:43 -07:00
MC [MC] Refactor MCObjectFileInfo initialization and allow targets to create MCObjectFileInfo 2021-05-23 14:15:23 -07:00
MCA [MCA][RegisterFile] Refactor the move elimination logic to address PR50258. 2021-05-08 18:10:35 +01:00
Object [LLD] Implement /guard:[no]ehcont 2021-04-14 15:06:49 +08:00
ObjectYAML [WebAssembly] Rename WasmLimits::Initial to ::Minimum. NFC. 2021-03-24 09:10:11 +01:00
Option [clang][cli][docs] Clarify marshalling infrastructure documentation 2021-05-04 15:16:32 +02:00
Passes [NewPM] Add options to PrintPassInstrumentation 2021-05-18 20:59:35 -07:00
ProfileData [CoverageMapping] Handle gaps in counter IDs for source-based coverage 2021-05-19 10:46:38 -07:00
Remarks [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
Support [clang][ARM] Remove non-existent arm9312 CPU 2021-05-25 08:58:24 +00:00
TableGen [TableGen] Fix two bugs in 'defm' when complex 'assert' is involved. 2021-04-30 11:31:06 -04:00
Target [IR] make stack-protector-guard-* flags into module attrs 2021-05-21 15:53:30 -07:00
Testing/Support Bump googletest to 1.10.0 2021-05-14 19:16:31 +02:00
TextAPI [llvm][TextAPI] add mapping from OS string to Platform 2021-05-06 16:25:56 -07:00
ToolDrivers
Transforms Making Instrumentation aware of LoopNest Pass 2021-05-24 20:25:52 -07:00
WindowsManifest [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
WindowsResource
XRay [llvm] Fix header guards (NFC) 2021-02-05 21:02:06 -08:00
CMakeLists.txt
InitializePasses.h [SampleFDO] New hierarchical discriminator for Flow Sensitive SampleFDO 2021-05-18 16:23:43 -07:00
LinkAllIR.h
LinkAllPasses.h Recommit "[VP,Integer,#2] ExpandVectorPredication pass" 2021-05-04 11:47:52 +02:00
module.extern.modulemap
module.install.modulemap
module.modulemap Revert "[build][modules] Fix ObjCARCUtil.h modularization" 2021-03-09 09:36:47 -08:00
module.modulemap.build
Pass.h [NFC] Rename ThinLTOPhase to ThinOrFullLTOPhase and move it from PassBuilder.h 2021-01-13 15:55:40 -08:00
PassAnalysisSupport.h [PM] Avoid duplicates in the Used/Preserved/Required sets 2021-01-20 13:55:18 +01:00
PassInfo.h
PassRegistry.h
PassSupport.h