summaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
diff options
context:
space:
mode:
authorMartijn Vels <mvels@google.com>2020-03-03 17:47:23 -0500
committerMartijn Vels <mvels@google.com>2020-03-03 17:49:25 -0500
commit8cf76e913b867a98a9843aa1b3d782632ed5d930 (patch)
treefa5642ba67ba4e49458ef20fd5c2492cf98de8cb /lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
parent14ac84e5c56e115d57eef01373f1f97267b38ef8 (diff)
Partially inline basic_string copy constructor in UNSTABLE
his change splits the copy constructor up inlining short initialization, and explicitly outlining long initialization into __init_copy_ctor_external() which is the externally instantiated slow path. For unstable ABI, this has the following changes: remove basic_string(const basic_string&) remove basic_string(const basic_string&, const Allocator&) add __init_copy_ctor_external(const value_type*, size_type) Quick local benchmark for Copy: Master ``` --------------------------------------------------------------- Benchmark Time CPU Iterations --------------------------------------------------------------- BM_StringCopy_Empty 3.50 ns 3.51 ns 199326720 BM_StringCopy_Small 3.50 ns 3.51 ns 199510016 BM_StringCopy_Large 15.7 ns 15.7 ns 45230080 BM_StringCopy_Huge 1503 ns 1503 ns 464896 ``` ``` --------------------------------------------------------------- Benchmark Time CPU Iterations --------------------------------------------------------------- BM_StringCopy_Empty 1.99 ns 2.00 ns 356471808 BM_StringCopy_Small 3.29 ns 3.30 ns 203425792 BM_StringCopy_Large 13.3 ns 13.3 ns 52948992 BM_StringCopy_Huge 1472 ns 1472 ns 475136 ``` Author: Martijn Vels <martijn.vels@gmail.com> Reviewers: EricWF, mclow.list Tags: #llvm Differential Revision: https://reviews.llvm.org/D73223
Diffstat (limited to 'lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp')
0 files changed, 0 insertions, 0 deletions