[PATCH] D97726: [sanitizers] [windows] Use InternalMmapVector instead of silencing -Wframe-larger-than

Vitaly Buka via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 1 14:54:33 PST 2021


vitalybuka added inline comments.


================
Comment at: compiler-rt/lib/sanitizer_common/sanitizer_unwind_win.cpp:50
+  InternalMmapVector<CONTEXT> ctx_buf(1);
+  CONTEXT &ctx = ctx_buf[0];
+  ctx = *(CONTEXT *)context;
----------------
This called unwind slow and usually called infrequently, but user can 
set fast_unwind_on_malloc=false and make it frequent.
So it's not nice that we make it slower.

You can try:

```
NOINLINE
static void UnwindSlowInternal(uptr pc, void *context, u32 max_depth, STACKFRAME64*) {
}

void BufferedStackTrace::UnwindSlow(uptr pc, void *context, u32 max_depth) {
  CONTEXT ctx = *(CONTEXT *)context;
  STACKFRAME64 stack_frame;
  UnwindSlowInternal(...., &stack_frame)
}
```


And also I don't know if all these are worth of hassle. Maybe we can just raise limit for -Wframe-larger-than=


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97726/new/

https://reviews.llvm.org/D97726



More information about the llvm-commits mailing list