summaryrefslogtreecommitdiff
path: root/thirdparty/zstd/compress/zstd_lazy.c
diff options
context:
space:
mode:
authorHein-Pieter van Braam <hp@tmm.cx>2019-01-03 05:56:41 +0100
committerHein-Pieter van Braam <hp@tmm.cx>2019-01-03 08:47:34 +0100
commit4240e3d668be01a8497747b542279041a64a11cd (patch)
tree1d4a527d0a9450a29b0311503da572d7511d31c7 /thirdparty/zstd/compress/zstd_lazy.c
parentd930c909f250f8584d38784cfaebb6a312696ef0 (diff)
Optimizations for trivial types
Relying on various compiler primitives we can reduce the work done in our memory allocators and CowData. For types with trivial ctors or dtors we can skip looping over all elements when creating, resizing, and destroying lists of objects. These primitives are supported by clang, msvc, and GCC. However, once we've moved to C++11 we can rely on several std:: primitives that do the same thing and are standardized. In my testing the extra conditionals introduced here get removed from the generated program entirely as the results for these primitives is known at compile time.
Diffstat (limited to 'thirdparty/zstd/compress/zstd_lazy.c')
0 files changed, 0 insertions, 0 deletions