2062 Commits

Author SHA1 Message Date
daan
d1f708af59 add MIMALLOC_OVERRIDE setting to disable redirection at runtime 2019-07-26 13:01:43 -07:00
daan
bbf97fa02d merge from 'dev-exp'; add support for MIMALLOC_OVERRIDE environment variable 2019-07-26 12:06:15 -07:00
daan
613d0c1993 merge 095a87b 2019-07-23 18:00:07 -07:00
daan
095a87be2e add recursion guard for overriding in windows 2019-07-23 17:57:27 -07:00
daan
3d6feead60 add heap region check to cfree 2019-07-23 15:54:47 -07:00
daan
dd79b662f8 restore to old-style windows override; fix debug mode 2019-07-23 15:51:08 -07:00
daan
89da085b67 rename to mimalloc-override.dll and use C compilation 2019-07-23 15:10:25 -07:00
daan
fa5dc17621 fix merge conflicts 2019-07-23 15:09:54 -07:00
daan
ab022e4271 fix mimalloc-redirect path on windows cmake build 2019-07-23 15:00:13 -07:00
daan
c02a0c9b49 ensure cmake uses C++ compilation with MSVC 2019-07-23 15:00:13 -07:00
daan
13364b50b8 fix 32-bit build of stress test 2019-07-23 15:00:13 -07:00
daan
f2f45ad5df fix cmake build on windows 2019-07-23 15:00:13 -07:00
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
0a81d26c83 fix mimalloc-redirect path on windows cmake build 2019-07-23 12:40:42 -07:00
daan
663e63aac2 ensure cmake uses C++ compilation with MSVC 2019-07-23 09:59:20 -07:00
daan
48a3d0c6e2 fix 32-bit build of stress test 2019-07-23 09:37:36 -07:00
daan
2b911b0b10 fix cmake build on windows 2019-07-23 09:36:58 -07:00
daan
6ca8b3fd89 remove old comment 2019-07-22 21:25:57 -07:00
daan
f0530b6a83 small optimizations, use bitwise aligne 2019-07-22 20:51:12 -07:00
daan
7c26ce9280 ensure C++ compilation on windows 2019-07-22 10:27:14 -07:00
daan
80e09ef44e merge from dev 2019-07-22 10:16:59 -07:00
daan
86cadca059 more comments 2019-07-22 16:11:06 -07:00
daan
e90938fb4b merge 2019-07-22 10:10:45 -07:00
daan
7555260759 Merge branch 'jserv-include-what-you-use' into dev 2019-07-22 10:07:03 -07:00
daan
959d9289b1 merge and improve to upper case in options 2019-07-22 10:06:45 -07:00
Daan
70648635c6
Merge pull request #113 from jserv/fix-incorrect-path
Fix path name in documentation about macOS
2019-07-22 09:51:43 -07:00
Daan
80400c9946
Merge pull request #111 from jserv/avoid-strlen-in-loop
Avoid using strlen function in loop
2019-07-22 09:51:02 -07:00
Daan
cf8f46c263
Merge pull request #110 from jserv/options-branch-predict-hints
Add branch prediction hint for mi_option_get
2019-07-22 09:49:44 -07:00
Daan
ce241fd339
Merge pull request #106 from caixiangyue/fix-typo-719
fix typo
2019-07-22 09:44:07 -07:00
Daan
ade118e23d
Merge pull request #88 from jserv/gcc-builtin-umul-overflow
Use checked unsigned multiplication extension of GCC/Clang
2019-07-22 09:28:38 -07:00
daan
e4caee5f55 update test files and overriding 2019-07-22 01:36:16 -07:00
daan
7091670c22 trailing id after #endif 2019-07-21 17:14:13 -07:00
daan
272a8e03e4 use atomic ops to guard large page tries on windows 2019-07-21 17:13:36 -07:00