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
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
7b5ba96e8e
merge from dev
2019-07-15 18:58:04 -07:00
daan
8390c46503
disable JustMyCode debugging and whole program optimization as it seems to cause compiler errors sometimes
v1.0.5
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
v1.0.4
2019-07-15 10:56:53 -07:00
daan
bd6abd2463
add comment about large pages
2019-07-15 10:07:23 -07:00
daan
76a5adfbfe
Merge branch 'dev' into dev-win
2019-07-15 10:04:55 -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
4e855988b4
Merge branch 'dev' into dev-win
2019-07-14 20:34:05 -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
daan
8dc0b5345b
Merge branch 'dev' into dev-exp
2019-07-14 16:50:38 -07:00
daan
c5da02788f
Merge branch 'dev' into dev-win
2019-07-14 16:50:18 -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
2cf419c9bc
Merge branch 'master' into dev
2019-07-14 14:50:39 -07:00
daan
a6aa905731
make sure older cmake versions work for build
2019-07-14 14:47:59 -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
36a16ca7eb
Merge pull request #99 from linkwk7/fix_typo_in_comments
...
Fix typo in comment
2019-07-14 14:33:12 -07:00
daan
adf65a100e
be less aggressive in page reuse to reduce memory footprint
2019-07-14 14:13:47 -07:00
daan
672506a3b3
merged with dev-win
2019-07-14 12:57:47 -07:00
daan
f93a49446f
Merge branch 'dev' into dev-win
2019-07-14 12:55:52 -07:00
daan
e60a5db908
fix cache eviction of smaller segments
2019-07-14 12:52:58 -07:00
daan
89b7ffa8ed
link DiscardVirtualMemory dynamically as it is not supported on every windows
2019-07-13 08:12:16 -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
linkwk7
d4eabf33b6
Fix typo in comments
2019-07-12 22:05:07 +08: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
1377b26b0a
Merge branch 'dev' into dev-win
2019-07-11 13:31:02 -07:00
daan
72a39c0bb1
initial fix for delayed freeing of huge pages transferred between threads
2019-07-11 13:30:40 -07:00
daan
f844665c9f
merge from dev-win
2019-07-10 22:57:37 -07:00
daan
c555e09504
Merge branch 'dev' into dev-win
2019-07-10 22:48:20 -07:00
daan
4e6249fd12
azure pipelines better display name, fix c++ compiler
2019-07-10 22:44:36 -07:00
daan
3bef93698b
remove publish test, add clang config
2019-07-10 22:41:53 -07:00
daan
6577e0e9fd
add test results task to azure pipeline
2019-07-10 22:35:39 -07:00
daan
67bed283aa
fix azure pipeline script; remove mapping value
2019-07-10 22:23:18 -07:00
daan
9fabd1ea01
fix azure pipeline script
2019-07-10 22:22:44 -07:00
daan
a5179d1125
fix azure pipeline script
2019-07-10 22:21:08 -07:00
daan
df8f9fc59c
Add test to build pipeline
2019-07-10 22:13:34 -07:00
daan
34a4de01b1
add Visual Studio support for new stress target
2019-07-10 21:59:44 -07:00
daan
12d3297db5
add allocator stress test to the test targets
2019-07-10 21:52:28 -07:00
daan
da0fb1e53f
merge dev-win
2019-07-10 20:50:32 -07:00
daan
6deea16d2d
add segment count to internal statistics
2019-07-10 19:54:46 -07:00
daan
ef4359b272
fix abondoned segment counter, and free list adding
2019-07-10 16:33:49 -07:00
daan
b80b0837ab
Merge branch 'dev-win' into dev-exp
2019-07-10 07:50:26 -07:00