Commit Graph

80 Commits

Author SHA1 Message Date
daan
189ad0f81d small optimizations, use bitwise aligne 2019-07-23 15:00:13 -07:00
daan
66b8c37ab3 ensure C++ compilation on windows 2019-07-23 15:00:13 -07:00
daan
219d46ff0c update test files and overriding 2019-07-23 15:00:13 -07:00
daan
6d9fab5af4 trailing id after #endif 2019-07-23 15:00:13 -07:00
Jim Huang
b5e26bedb1 Enforce strict include-what-you-use policy
The include-what-you-use (IWYU) policy is beneficial to faster
compilation and fewer recompilations. Many build tools, such as GNU make,
provide a mechanism for automatically figuring out what .h files a .cc
file depends on. These mechanisms typically look at #include lines. When
unnecessary #includes are listed, the build system is more likely to
recompile in cases where it is not necessary.

With the enforcement, header file <include/mimalloc.h> no longer
includes <stdlib.h>.

Reference:
https://github.com/include-what-you-use/include-what-you-use/blob/master/docs/WhyIWYU.md
2019-07-23 14:59:57 -07:00
Jim Huang
8dba36bcec Use checked unsigned multiplication extension of GCC/Clang
Most processors have carry flags which they set on addition overflow, so
it is a good idea to access them whenever possible. Most of them also
have widening multiply instructions that can be used to detect overflow
of the non-widening version. Both GCC and Clang offer a way to detect an
overflow for security critical applications.

Reference:
  https://clang.llvm.org/docs/LanguageExtensions.html#checked-arithmetic-builtins
2019-07-23 14:59:49 -07:00
daan
81a7ae33e7 fix order of options 2019-07-19 09:26:22 -07:00
daan
33aa5d92fa fix to overrides on windows 2019-07-18 21:20:18 -07:00
daan
93c8a5b693 full overriding api supported 2019-07-18 21:12:40 -07:00
daan
306a542336 add mimalloc-override header file and use C++ compilation with msvc 2019-07-18 20:28:29 -07:00
daan
c228ecefd8 update for new dynamic direction on windows 64-bit 2019-07-18 18:59:32 -07:00
daan
f646cc925d add is_in_heap_region function 2019-07-17 15:37:36 -07:00
daan
72d8608333 avoid thread over-allocation on initial region allocations 2019-07-15 17:35:43 -07:00
daan
7ea9cf8d1f add region collection 2019-07-15 14:53:03 -07:00
daan
08e0f14c2a document experimental options 2019-07-15 14:32:54 -07:00
Daan
ad45dbf0e5
Merge pull request #32 from jedisct1/wasm
Port to WebAssembly
2019-07-15 11:03:46 -07:00
daan
08c873c250 Merge branch 'dev' into dev-exp 2019-07-14 20:35:01 -07:00
daan
461b8aed80 more complete C++ support for compliance and performance 2019-07-14 19:56:33 -07:00
Frank Denis
9129ab0f64 Port to WebAssembly 2019-07-15 02:22:41 +02:00
daan
8dc0b5345b Merge branch 'dev' into dev-exp 2019-07-14 16:50:38 -07:00
daan
49ceb4d018 refactor delayed_free code 2019-07-14 16:48:53 -07:00
daan
5ad2effb39 use standard compliant compilation of the thread_free atomic field 2019-07-14 16:20:27 -07:00
Daan
b09af48a68
Merge pull request #93 from JulianATA/dev-exp
Fix typo numbes -> number
2019-07-14 14:33:37 -07:00
daan
84a292538c merge with medium pages 2019-07-12 20:39:29 -07:00
daan
a927c07de9 merge medium pages 2019-07-12 20:27:56 -07:00
daan
42cf5e1580 reintroduce support for medium size pages 2019-07-12 20:11:39 -07:00
daan
8a6b474fa0 merge from dev 2019-07-11 16:32:11 -07:00
daan
a932e43650 experiment with larger small pages 2019-07-11 15:44:37 -07:00
daan
9e9208eae8 Merge branch 'dev' into dev-win 2019-07-11 15:22:09 -07:00
daan
1fdb4b288f more eager handling of non-local frees 2019-07-11 15:21:57 -07:00
daan
6deea16d2d add segment count to internal statistics 2019-07-10 19:54:46 -07:00
daan
224951695a enable non eager commit 2019-07-10 07:24:56 -07:00
daan
46a9e51f74 enable non eager-commit flag 2019-07-10 07:17:21 -07:00
daan
3192ca4682 merge with dev-win 2019-07-09 23:34:17 -07:00
daan
3009a7b1fe support non- eager_commit; on larson reduces commit charge 10x, but other benchmarks often see no improvement 2019-07-09 21:34:56 -07:00
daan
0314373d93 add reset_decommit, reset_discard options; maintain more statistics 2019-07-09 20:24:00 -07:00
Julian Fang
5928f12b15 Fix typo numbes -> number 2019-07-10 08:38:58 +08:00
daan
35b590de21 Merge branch 'dev' into dev-exp 2019-07-09 15:12:18 -07:00
daan
8ef37e6c0b update atomic exchange memory model annotations for unix 2019-07-09 14:56:43 -07:00
daan
129149977d Merge branch 'dev' into dev-exp 2019-07-08 17:45:04 -07:00
daan
8203f3dcfa add full heap aligned allocation api (issue #52); remove rezalloc (issue #63); add mi_version 2019-07-08 17:17:07 -07:00
daan
493dfc4b82 merge with dev 2019-07-08 15:42:42 -07:00
daan
56bdb2c2f3 add more const declarations (pr #79) 2019-07-08 12:00:59 -07:00
daan
7f0137a617 Fix compilation error with MSVC C++ 2019-07-07 21:59:53 -07:00
daan
7e743dfb58 fix C++ compilation warnings with VisualStudio 2017 2019-07-07 18:52:12 -07:00
daan
c3528203b5 fix compilation with C++, fix overrides in C++ to adhere to the spec (issue #26) 2019-07-07 18:11:21 -07:00
daan
dd59a917ce Expose mi prefixed public standard implementations of various posix, unix, and c++ allocation functions. See issue #75 2019-07-07 13:44:33 -07:00
daan
983c96a238 Merge branch 'dev' into dev-exp 2019-07-04 14:46:53 -07:00
daan
6abdc5f5a3 do not enable verbose by default in the debug build; add trace messages for verbose level 2 2019-07-04 09:28:22 -07:00
daan
663769c512 merge dev branch 2019-07-03 18:12:55 -07:00