Commit Graph

265 Commits

Author SHA1 Message Date
daan a022049705 remove old comment 2019-07-23 15:00:13 -07:00
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 598ed19c61 more comments 2019-07-23 15:00:13 -07:00
daan 0b4d74a566 merge 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
daan b611c7fb34 use atomic ops to guard large page tries on windows 2019-07-23 15:00:13 -07:00
daan 7b7c36c8c7 use hinted address to mmap to reduce mmap calls 2019-07-23 14:59:57 -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 fe229f8fad Fix path name in documentation about macOS 2019-07-23 14:59:57 -07:00
daan 65037d051b improved debug warning for freeing invalid pointers 2019-07-23 14:59:57 -07:00
daan 2eb607d03f re-add missing thread_init needed when running in debug mode 2019-07-23 14:59:57 -07:00
Jim Huang 28b874129a Avoid using strlen function in loop 2019-07-23 14:59:57 -07:00
Jim Huang 3e9c953eea Add branch prediction hint for mi_option_get
mi_option_get is called frequently in stress tests, and the patch adds
extra hint to the compiler to emit instructions that will cause branch
prediction to favour the "likely" side of a jump instruction.
2019-07-23 14:59:49 -07:00
caixiangyue 7266e7006a fix typo 2019-07-23 14:59:49 -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 46b11fa0a4 add comment about large pages 2019-07-23 14:59:49 -07:00
daan 2ac2c6a1c3 fix format of error messages 2019-07-19 09:27:32 -07:00
daan fcd0253ac9 limit number of error messages to 10 2019-07-19 09:27:14 -07:00
daan dd5fa88c45 check better for valid pointers in free in debug mode 2019-07-19 09:26:51 -07:00
daan 81a7ae33e7 fix order of options 2019-07-19 09:26:22 -07:00
daan 2f63964e5c update stress test to be more deterministic 2019-07-19 08:55:02 -07:00
daan fd6fd23470 make eager-region-commit false by default on windows 2019-07-18 21:48:58 -07:00
daan 8dad858888 update to correct project settings for visual studio 2019-07-18 21:41:28 -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 12e0a04052 compile as C++ under msvc 2019-07-18 19:52:29 -07:00
daan e94143c47c add redirection dll and library 2019-07-18 19:26:44 -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 8390c46503 disable JustMyCode debugging and whole program optimization as it seems to cause compiler errors sometimes 2019-07-15 17:38:16 -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 89bdcd43b2 fix bit search index 2019-07-15 14:33:15 -07:00
daan 08e0f14c2a document experimental options 2019-07-15 14:32:54 -07:00
daan ae1794a852 remove accidental test in cmake 2019-07-15 13:36:12 -07:00
daan 26ef67a45c fix visual studio project 2019-07-15 13:22:15 -07:00
daan ea9dbd1036 set better default options for performance 2019-07-15 13:19:26 -07:00
daan 0196622fff Merge branch 'dev' into dev-exp 2019-07-15 11:10:12 -07:00
Daan ad45dbf0e5
Merge pull request #32 from jedisct1/wasm
Port to WebAssembly
2019-07-15 11:03:46 -07:00
Daan 60e9d3f69d
Merge pull request #81 from devnexen/mac_large_page_2mb
initial support of 2MB pages on Mac
2019-07-15 10:56:53 -07:00
daan d706109b35 don't decommit/reset parts of a region when using large os pages 2019-07-15 10:04:43 -07:00
daan beef7a8c70 Merge branch 'dev' into dev-exp 2019-07-15 09:47:09 -07:00
daan 7ba6192dd5 always pass commit flag to large page allocation on windows 2019-07-15 09:46:58 -07:00
daan 08c873c250 Merge branch 'dev' into dev-exp 2019-07-14 20:35:01 -07:00
daan c4426e1555 add sized delete to windows override 2019-07-14 20:28:33 -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