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
daan
069f52523f
use hinted address to mmap to reduce mmap calls
2019-07-21 17:08:09 -07:00
Jim Huang
1e27cef873
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-22 04:54:14 +08:00
Jim Huang
146a753d1e
Fix path name in documentation about macOS
2019-07-22 04:45:40 +08:00
daan
df33efb19a
improved debug warning for freeing invalid pointers
2019-07-21 13:09:34 -07:00
daan
40cb631683
re-add missing thread_init needed when running in debug mode
2019-07-21 13:03:51 -07:00
Jim Huang
c382c72cf2
Avoid using strlen function in loop
2019-07-21 22:30:42 +08:00
Jim Huang
1ffa48cc61
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-21 21:42:00 +08:00
daan
f0de0b6f68
remove old windows override code
2019-07-19 09:33:14 -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
caixiangyue
a215049b4a
fix typo
2019-07-19 16:23:14 +08: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
7b5ba96e8e
merge from dev
2019-07-15 18:58:04 -07:00