[compiler-rt] r192441 - [Sanitizer] StackTrace: kill CopyTo and reimplement CopyFrom
Alexey Samsonov
samsonov at google.com
Mon Oct 14 00:39:51 PDT 2013
On Mon, Oct 14, 2013 at 11:07 AM, Kostya Serebryany <kcc at google.com> wrote:
>
>
>
> On Mon, Oct 14, 2013 at 10:58 AM, Alexey Samsonov <samsonov at google.com>wrote:
>
>>
>>
>> On Mon, Oct 14, 2013 at 10:46 AM, Kostya Serebryany <kcc at google.com>wrote:
>>
>>> Did you do performance testing?
>>>
>>
>> No. CopyFrom() is currently only used in unittests (I agree with you,
>> though - we may benefit from putting its body into the header w/o extra
>> function calls).
>>
> Ok then. I am only worried about non-test memcpy performance
>
I've reverted part of this patch in r192574
>
>>
>>> Our current implementation of internal_memcpy is not that great and
>>> your change might have negative impact on performance.
>>>
>>>
>>> On Fri, Oct 11, 2013 at 3:14 PM, Alexey Samsonov <samsonov at google.com>wrote:
>>>
>>>> Author: samsonov
>>>> Date: Fri Oct 11 06:14:20 2013
>>>> New Revision: 192441
>>>>
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=192441&view=rev
>>>> Log:
>>>> [Sanitizer] StackTrace: kill CopyTo and reimplement CopyFrom
>>>>
>>>> Modified:
>>>> compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc
>>>> compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.h
>>>>
>>>> Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc?rev=192441&r1=192440&r2=192441&view=diff
>>>>
>>>> ==============================================================================
>>>> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc
>>>> (original)
>>>> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.cc Fri
>>>> Oct 11 06:14:20 2013
>>>> @@ -13,6 +13,7 @@
>>>>
>>>> #include "sanitizer_common.h"
>>>> #include "sanitizer_flags.h"
>>>> +#include "sanitizer_libc.h"
>>>> #include "sanitizer_procmaps.h"
>>>> #include "sanitizer_stacktrace.h"
>>>> #include "sanitizer_symbolizer.h"
>>>> @@ -34,6 +35,11 @@ uptr StackTrace::GetPreviousInstructionP
>>>> #endif
>>>> }
>>>>
>>>> +void StackTrace::CopyFrom(const uptr *src, uptr src_size) {
>>>> + size = Min(src_size, kStackTraceMax);
>>>> + internal_memcpy(trace, src, sizeof(trace[0]) * size);
>>>> +}
>>>> +
>>>> static void PrintStackFramePrefix(uptr frame_num, uptr pc) {
>>>> Printf(" #%zu 0x%zx", frame_num, pc);
>>>> }
>>>>
>>>> Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.h
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.h?rev=192441&r1=192440&r2=192441&view=diff
>>>>
>>>> ==============================================================================
>>>> --- compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.h
>>>> (original)
>>>> +++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_stacktrace.h Fri
>>>> Oct 11 06:14:20 2013
>>>> @@ -36,20 +36,8 @@ struct StackTrace {
>>>> uptr trace[kStackTraceMax];
>>>> static void PrintStack(const uptr *addr, uptr size, bool symbolize,
>>>> SymbolizeCallback symbolize_callback);
>>>> - void CopyTo(uptr *dst, uptr dst_size) {
>>>> - for (uptr i = 0; i < size && i < dst_size; i++)
>>>> - dst[i] = trace[i];
>>>> - for (uptr i = size; i < dst_size; i++)
>>>> - dst[i] = 0;
>>>> - }
>>>>
>>>> - void CopyFrom(uptr *src, uptr src_size) {
>>>> - size = src_size;
>>>> - if (size > kStackTraceMax) size = kStackTraceMax;
>>>> - for (uptr i = 0; i < size; i++) {
>>>> - trace[i] = src[i];
>>>> - }
>>>> - }
>>>> + void CopyFrom(const uptr *src, uptr src_size);
>>>>
>>>> void FastUnwindStack(uptr pc, uptr bp, uptr stack_top, uptr
>>>> stack_bottom,
>>>> uptr max_depth);
>>>>
>>>>
>>>> _______________________________________________
>>>> llvm-commits mailing list
>>>> llvm-commits at cs.uiuc.edu
>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>>>
>>>
>>>
>>
>>
>> --
>> Alexey Samsonov, MSK
>>
>
>
--
Alexey Samsonov, MSK
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131014/1a10cf57/attachment.html>
More information about the llvm-commits
mailing list