Kostya Serebryany
|
1ee681305f
|
[asan] introduce two functions that will allow implementations of C++ garbage colection to work with asan's fake stack
llvm-svn: 200908
|
2014-02-06 06:56:22 +00:00 |
Kostya Serebryany
|
1aedf6c9e6
|
[asan] replace the flag uar_stack_size_log with two flags min_uar_stack_size_log/max_uar_stack_size_log
llvm-svn: 197370
|
2013-12-16 08:42:08 +00:00 |
Kostya Serebryany
|
57bfdb080b
|
[asan] add flag uar_noreserve to use noreserve mmap for fake stack. uar_noreserve=1 will save some memory but also negatively affect performance
llvm-svn: 197233
|
2013-12-13 15:03:49 +00:00 |
Kostya Serebryany
|
e55d388e71
|
[asan] when a fake stack is being unmapped also flush the corresponding shadow
llvm-svn: 197040
|
2013-12-11 14:26:41 +00:00 |
Kostya Serebryany
|
7a3a93f112
|
[asan] if verbosity>=2, print the fake stack usage stats at thread exit; No functionality change in non-verboze mode
llvm-svn: 197037
|
2013-12-11 13:54:01 +00:00 |
Sergey Matveev
|
9be70fbda9
|
[sanitizer] Introduce VReport and VPrintf macros and use them in sanitizer code.
Instead of "if (common_flags()->verbosity) Report(...)" we now have macros.
llvm-svn: 196497
|
2013-12-05 12:04:51 +00:00 |
Dmitry Vyukov
|
52ca74ec61
|
tsan: move verbosity flag to CommonFlags
llvm-svn: 192701
|
2013-10-15 13:28:51 +00:00 |
Sergey Matveev
|
43d90cbd86
|
[lsan] Support ASan's stack-use-after-return mode in LSan.
Treat the fake stack as live memory.
llvm-svn: 192593
|
2013-10-14 14:04:50 +00:00 |
Kostya Serebryany
|
3c42ce1516
|
[asan] introduce run-time flag uar_stack_size_log to control the size of FakeStack; don't crash when the fake stack is exhausted, move some code to .cc file
llvm-svn: 191510
|
2013-09-27 11:37:23 +00:00 |
Kostya Serebryany
|
c3d43ca3ec
|
[asan] add a run-time option detect_stack_use_after_return, add verbosity output for fake stack
llvm-svn: 190932
|
2013-09-18 10:35:12 +00:00 |
Kostya Serebryany
|
2f5c2be6bd
|
[asan] further speedup use-after-return: simplify deallocation of fake frames. ~ 20% speedup.
llvm-svn: 190852
|
2013-09-17 07:42:54 +00:00 |
Kostya Serebryany
|
3bee8efc95
|
[asan] Android does not have TLS
llvm-svn: 190669
|
2013-09-13 08:58:22 +00:00 |
Kostya Serebryany
|
9583b87077
|
[asan] don't record the class_id in FakeFrame (scratching the last bits of performance)
llvm-svn: 190666
|
2013-09-13 07:50:44 +00:00 |
Kostya Serebryany
|
4117bdbbbc
|
[asan] more performance to FakeStack: a) don't used atomic exchange, instead rely on regular load and store and other signal-safe logic; b) remove allocated_from_size_class_mask_ which is not helping much anyway; Another 10% speedup
llvm-svn: 190664
|
2013-09-13 07:20:35 +00:00 |
Kostya Serebryany
|
43c4493b44
|
[asan] second attempt to use TLS with fake stack. This time it looks (more) async-signal safe.
llvm-svn: 190663
|
2013-09-13 06:32:26 +00:00 |
Kostya Serebryany
|
c19851ab6c
|
[asan] undo the previous commit since TLS hack breaks with signals... :(
llvm-svn: 190662
|
2013-09-13 06:15:02 +00:00 |
Kostya Serebryany
|
096413ba3b
|
[asan] use TLS on Linux to get the FakeStack. Saves 15% performance
llvm-svn: 190661
|
2013-09-13 06:04:18 +00:00 |
Kostya Serebryany
|
77caab4d7b
|
[asan] inline PoisonShadow in FakeStack to get ~10% speedup
llvm-svn: 190660
|
2013-09-13 05:57:58 +00:00 |
Kostya Serebryany
|
7638aa135e
|
[asan] a bit of performance improvement in fake stack, generalized one test, fixed android build of another test
llvm-svn: 190606
|
2013-09-12 14:41:10 +00:00 |
Kostya Serebryany
|
627ea6391e
|
[asan] add a test for use-after-return and exceptions and fix it. Not 100% sure this is a complete fix, will keep looking for harder cases.
llvm-svn: 190603
|
2013-09-12 13:25:29 +00:00 |
Kostya Serebryany
|
628cda7367
|
[asan] hopefully make the FakeStack async-signal safe, enable the related test
llvm-svn: 190592
|
2013-09-12 08:34:50 +00:00 |
Kostya Serebryany
|
e8f961e847
|
[asan] use xchg instead of CAS in FakeStack::Allocate (5% faster for this case)
llvm-svn: 190589
|
2013-09-12 07:28:42 +00:00 |
Kostya Serebryany
|
729c8dc65b
|
[asan] fully re-implement the FakeStack (use-after-return) to make it faster and async-signal-safe. The implementation is not yet complete (see FIXMEs) but the existing tests pass.
llvm-svn: 190588
|
2013-09-12 07:11:58 +00:00 |
Kostya Serebryany
|
8fc35ca008
|
[asan] refactor the use-after-return API so that the size class is computed at compile time instead of at run-time. compiler-rt part
llvm-svn: 190406
|
2013-09-10 13:16:26 +00:00 |
Kostya Serebryany
|
1f13414d45
|
[asan] make use-after-return handle very deep recursion; fixes 483.xalancbmk in UAR mode
llvm-svn: 189929
|
2013-09-04 10:59:32 +00:00 |
Kostya Serebryany
|
fab9336413
|
[asan]: fix a CHECK failure in use-after-return mode; enable and fix stack-use-after-return.cc; add a test for UAR mode in asan_noinst_test
llvm-svn: 189457
|
2013-08-28 08:59:23 +00:00 |
Evgeniy Stepanov
|
d8a1798b47
|
[asan] Limit fake stack size to a reasonable value when running with unlimited stack.
llvm-svn: 187411
|
2013-07-30 11:50:26 +00:00 |
Kostya Serebryany
|
6a068a715d
|
[asan] initialize fake_stack lazily and increase its maximal size. This makes -fsanitize=address,use-after-return more robust: all SPEC tests pass now. In the default mode thread stacks become a bit smaller.
llvm-svn: 184934
|
2013-06-26 12:16:05 +00:00 |
Timur Iskhodzhanov
|
cc61eefd4b
|
Fix MSVC W3 compiler warnings
llvm-svn: 182857
|
2013-05-29 14:11:44 +00:00 |
Kostya Serebryany
|
1c77de3aeb
|
[asan] improve the UAR reporting (try harder to find the correct frame), try to make the test more stable
llvm-svn: 179292
|
2013-04-11 15:35:40 +00:00 |
Kostya Serebryany
|
5b4267f7e7
|
[sanitizer] found a bug by code inspection: CHECK(a=b) instead of CHECK(a==b). Was puzzled why lint did not catch it. Turns out this check was disabled for asan source. fix all cases and enable the check
llvm-svn: 178872
|
2013-04-05 14:40:25 +00:00 |
Alexey Samsonov
|
a88c60b085
|
[ASan] Speed-up initialization-order checking: create and use fast versions of PoisonShadow functions, store copies of __asan_global descriptors in a vector instead of list of pointers. This gives 3x speedup on both benchmarks and real binaries with lots of globals.
llvm-svn: 178239
|
2013-03-28 15:42:43 +00:00 |
Alexey Samsonov
|
54afba8b62
|
[ASan] Switch ASan to generic ThreadRegistry from sanitizer_common. Delete ASan-specific AsanThreadRegistry.
llvm-svn: 177634
|
2013-03-21 11:23:41 +00:00 |
Alexey Samsonov
|
cf025cb2e6
|
[ASan] Move GetCurrentThread/SetCurrentThread from AsanThreadRegistry class into plain functions: they don't actually use registry
llvm-svn: 177501
|
2013-03-20 09:23:28 +00:00 |
Alexey Samsonov
|
a0c0da8f51
|
[ASan] Split ASan interface header into private and public parts. Add a test that makes sure users can include interface header
llvm-svn: 174058
|
2013-01-31 13:46:14 +00:00 |
Kostya Serebryany
|
13bdbe698e
|
[asan] move FakeStack into a separate file
llvm-svn: 169734
|
2012-12-10 14:19:15 +00:00 |