#
6ec7595b |
| 25-Aug-2017 |
Matt Morehouse <mascasa@google.com> |
Revert "[SanitizeCoverage] Enable stack-depth coverage for -fsanitize=fuzzer"
This reverts r311801 due to a bot failure.
llvm-svn: 311803
|
#
f42bd313 |
| 25-Aug-2017 |
Matt Morehouse <mascasa@google.com> |
[SanitizeCoverage] Enable stack-depth coverage for -fsanitize=fuzzer
Summary: - Don't sanitize __sancov_lowest_stack. - Don't instrument leaf functions. - Add CoverageStackDepth to Fuzzer and Fuzzer
[SanitizeCoverage] Enable stack-depth coverage for -fsanitize=fuzzer
Summary: - Don't sanitize __sancov_lowest_stack. - Don't instrument leaf functions. - Add CoverageStackDepth to Fuzzer and FuzzerNoLink.
Reviewers: vitalybuka, kcc
Reviewed By: kcc
Subscribers: cfe-commits, llvm-commits, hiraditya
Differential Revision: https://reviews.llvm.org/D37156
llvm-svn: 311801
show more ...
|
Revision tags: llvmorg-5.0.0-rc3 |
|
#
d3e4b7e2 |
| 25-Aug-2017 |
Kostya Serebryany <kcc@google.com> |
[sanitizer-coverage] extend fsanitize-coverage=pc-table with flags for every PC
llvm-svn: 311794
|
#
ad96ff12 |
| 25-Aug-2017 |
Justin Bogner <mail@justinbogner.com> |
[sanitizer-coverage] Make sure pc-tables aren't dead stripped
Add a reference to the PC array in llvm.used so that linkers that aggressively dead strip (like ld64) don't remove it.
llvm-svn: 311742
|
#
b1fa8255 |
| 22-Aug-2017 |
Matt Morehouse <mascasa@google.com> |
[SanitizerCoverage] Optimize stack-depth instrumentation.
Summary: Use the initialexec TLS type and eliminate calls to the TLS wrapper. Fixes the sanitizer-x86_64-linux-fuzzer bot failure.
Reviewe
[SanitizerCoverage] Optimize stack-depth instrumentation.
Summary: Use the initialexec TLS type and eliminate calls to the TLS wrapper. Fixes the sanitizer-x86_64-linux-fuzzer bot failure.
Reviewers: vitalybuka, kcc
Reviewed By: kcc
Subscribers: hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D37026
llvm-svn: 311490
show more ...
|
#
5c7fc769 |
| 18-Aug-2017 |
Matt Morehouse <mascasa@google.com> |
[SanitizerCoverage] Add stack depth tracing instrumentation.
Summary: Augment SanitizerCoverage to insert maximum stack depth tracing for use by libFuzzer. The new instrumentation is enabled by the
[SanitizerCoverage] Add stack depth tracing instrumentation.
Summary: Augment SanitizerCoverage to insert maximum stack depth tracing for use by libFuzzer. The new instrumentation is enabled by the flag -fsanitize-coverage=stack-depth and is compatible with the existing trace-pc-guard coverage. The user must also declare the following global variable in their code: thread_local uintptr_t __sancov_lowest_stack
https://bugs.llvm.org/show_bug.cgi?id=33857
Reviewers: vitalybuka, kcc
Reviewed By: vitalybuka
Subscribers: kubamracek, hiraditya, cfe-commits, llvm-commits
Differential Revision: https://reviews.llvm.org/D36839
llvm-svn: 311186
show more ...
|
Revision tags: llvmorg-5.0.0-rc2 |
|
#
52410815 |
| 10-Aug-2017 |
Alexander Potapenko <glider@google.com> |
[sanitizer-coverage] Change cmp instrumentation to distinguish const operands
This implementation of SanitizerCoverage instrumentation inserts different callbacks depending on constantness of operan
[sanitizer-coverage] Change cmp instrumentation to distinguish const operands
This implementation of SanitizerCoverage instrumentation inserts different callbacks depending on constantness of operands:
1. If both operands are non-const, then a usual __sanitizer_cov_trace_cmp[1248] call is inserted. 2. If exactly one operand is const, then a __sanitizer_cov_trace_const_cmp[1248] call is inserted. The first argument of the call is always the constant one. 3. If both operands are const, then no callback is inserted.
This separation comes useful in fuzzing when tasks like "find one operand of the comparison in input arguments and replace it with the other one" have to be done. The new instrumentation allows us to not waste time on searching the constant operands in the input.
Patch by Victor Chibotaru.
llvm-svn: 310600
show more ...
|
#
a1f12ba1 |
| 01-Aug-2017 |
Kostya Serebryany <kcc@google.com> |
[sanitizer-coverage] relax an assertion
llvm-svn: 309644
|
#
bfc83fa8 |
| 31-Jul-2017 |
Kostya Serebryany <kcc@google.com> |
[sanitizer-coverage] don't instrument available_externally functions
llvm-svn: 309611
|
#
bb6f079a |
| 31-Jul-2017 |
Kostya Serebryany <kcc@google.com> |
[sanitizer-coverage] ensure minimal alignment for coverage counters and guards
llvm-svn: 309610
|
#
063b6520 |
| 28-Jul-2017 |
Kostya Serebryany <kcc@google.com> |
[sanitizer-coverage] rename sanitizer-coverage-create-pc-table into sanitizer-coverage-pc-table and add plumbing for a clang flag
llvm-svn: 309337
|
#
b75d002f |
| 27-Jul-2017 |
Kostya Serebryany <kcc@google.com> |
[sanitizer-coverage] add a feature sanitizer-coverage-create-pc-table=1 (works with trace-pc-guard and inline-8bit-counters) that adds a static table of instrumented PCs to be used at run-time
llvm
[sanitizer-coverage] add a feature sanitizer-coverage-create-pc-table=1 (works with trace-pc-guard and inline-8bit-counters) that adds a static table of instrumented PCs to be used at run-time
llvm-svn: 309335
show more ...
|
Revision tags: llvmorg-5.0.0-rc1 |
|
#
c485ca05 |
| 25-Jul-2017 |
Kostya Serebryany <kcc@google.com> |
[sanitizer-coverage] simplify the code, NFC
llvm-svn: 308944
|
#
9385aaa8 |
| 18-Jul-2017 |
Alexander Potapenko <glider@google.com> |
[sancov] Fix PR33732
Coverage hooks that take less-than-64-bit-integers as parameters need the zeroext parameter attribute (http://llvm.org/docs/LangRef.html#paramattrs) to make sure they are proper
[sancov] Fix PR33732
Coverage hooks that take less-than-64-bit-integers as parameters need the zeroext parameter attribute (http://llvm.org/docs/LangRef.html#paramattrs) to make sure they are properly extended by the x86_64 ABI.
llvm-svn: 308296
show more ...
|
#
406c1131 |
| 14-Jun-2017 |
George Karpenkov <ekarpenkov@apple.com> |
Fixing section name for Darwin platforms for sanitizer coverage
On Darwin, section names have a 16char length limit.
llvm-svn: 305429
|
Revision tags: llvmorg-4.0.1, llvmorg-4.0.1-rc3 |
|
#
2c2fb889 |
| 08-Jun-2017 |
Kostya Serebryany <kcc@google.com> |
[sanitizer-coverage] one more flavor of coverage: -fsanitize-coverage=inline-8bit-counters. Experimental so far, not documenting yet. Reapplying revisions 304630, 304631, 304632, 304673, see PR33308
[sanitizer-coverage] one more flavor of coverage: -fsanitize-coverage=inline-8bit-counters. Experimental so far, not documenting yet. Reapplying revisions 304630, 304631, 304632, 304673, see PR33308
llvm-svn: 305026
show more ...
|
#
cdf840fd |
| 05-Jun-2017 |
Renato Golin <renato.golin@linaro.org> |
Revert "[sanitizer-coverage] one more flavor of coverage: -fsanitize-coverage=inline-8bit-counters. Experimental so far, not documenting yet."
This reverts commit r304630, as it broke ARM/AArch64 bo
Revert "[sanitizer-coverage] one more flavor of coverage: -fsanitize-coverage=inline-8bit-counters. Experimental so far, not documenting yet."
This reverts commit r304630, as it broke ARM/AArch64 bots for 2 days.
llvm-svn: 304698
show more ...
|
#
f7db346c |
| 03-Jun-2017 |
Kostya Serebryany <kcc@google.com> |
[sanitizer-coverage] one more flavor of coverage: -fsanitize-coverage=inline-8bit-counters. Experimental so far, not documenting yet.
llvm-svn: 304630
|
#
aed6ba77 |
| 02-Jun-2017 |
Kostya Serebryany <kcc@google.com> |
[sanitizer-coverage] refactor the code to make it easier to add more sections in future. NFC
llvm-svn: 304610
|
#
53b34c84 |
| 31-May-2017 |
Kostya Serebryany <kcc@google.com> |
[sanitizer-coverage] remove stale code (old coverage); llvm part
llvm-svn: 304319
|
Revision tags: llvmorg-4.0.1-rc2 |
|
#
a1c53278 |
| 25-May-2017 |
George Karpenkov <ekarpenkov@apple.com> |
Fix coverage check for full post-dominator basic blocks.
Coverage instrumentation which does not instrument full post-dominators and full-dominators may skip valid paths, as the reasoning for skippi
Fix coverage check for full post-dominator basic blocks.
Coverage instrumentation which does not instrument full post-dominators and full-dominators may skip valid paths, as the reasoning for skipping blocks may become circular. This patch fixes that, by only skipping full post-dominators with multiple predecessors, as such predecessors by definition can not be full-dominators.
llvm-svn: 303827
show more ...
|
#
018472c3 |
| 24-May-2017 |
George Karpenkov <ekarpenkov@apple.com> |
Revert "Disable coverage opt-out for strong postdominator blocks."
This reverts commit 2ed06f05fc10869dd1239cff96fcdea2ee8bf4ef. Buildbots do not like this on Linux.
llvm-svn: 303710
|
#
9017ca29 |
| 23-May-2017 |
George Karpenkov <ekarpenkov@apple.com> |
Disable coverage opt-out for strong postdominator blocks.
Coverage instrumentation has an optimization not to instrument extra blocks, if the pass is already "accounted for" by a successor/predecess
Disable coverage opt-out for strong postdominator blocks.
Coverage instrumentation has an optimization not to instrument extra blocks, if the pass is already "accounted for" by a successor/predecessor basic block. However (https://github.com/google/sanitizers/issues/783) this reasoning may become circular, which stops valid paths from having coverage. In the worst case this can cause fuzzing to stop working entirely.
This change simplifies logic to something which trivially can not have such circular reasoning, as losing valid paths does not seem like a good trade-off for a ~15% decrease in the # of instrumented basic blocks.
llvm-svn: 303698
show more ...
|
#
424bfed6 |
| 05-May-2017 |
Kostya Serebryany <kcc@google.com> |
[sanitizer-coverage] implement -fsanitize-coverage=no-prune,... instead of a hidden -mllvm flag. llvm part.
llvm-svn: 302319
|
Revision tags: llvmorg-4.0.1-rc1 |
|
#
c5d3d490 |
| 19-Apr-2017 |
Kostya Serebryany <kcc@google.com> |
[sanitizer-coverage] remove some more stale code
llvm-svn: 300778
|