daan
e8664001f7
Use standard _Atomic declarations and clean up atomic operations
2019-08-25 22:59:12 -07:00
daan
b86c851cca
put segment cache behind an option and disable by default
2019-08-25 12:35:14 -07:00
daan
038e8fd7d6
reduce retire size
2019-08-25 12:10:18 -07:00
daan
c3c6401633
merge from master; fix windows environment reading
2019-08-25 11:36:34 -07:00
daan
7972b64a82
resolve race on option initialization
2019-08-25 11:18:16 -07:00
daan
a431d80fc3
better object sizes for large objects
2019-08-25 10:20:03 -07:00
daan
23812cc0ac
do not keep a queue of huge pages and free them directly
2019-08-24 15:45:14 -07:00
daan
6c6fcad242
remove threadid from pages and keep page flags separate (cherry picked)
2019-08-23 21:42:24 -07:00
daan
15552eba79
ensure volatile declaration for abandoned_next field
2019-08-23 21:39:27 -07:00
daan
25ea9cf142
on windows use 4TiB area for aligned allocation
2019-08-23 21:38:45 -07:00
Daan
7f29dec44a
Merge pull request #134 from kile0/kile/vs2019
...
Add VS solutions that can leverage the MSVC 2019 runtime
2019-08-21 16:00:03 -07:00
Daan Leijen
eb25093b13
fix mi_cdecl for older clang versions
2019-08-21 09:40:57 -07:00
Daan Leijen
311794b296
remove debug statement
2019-08-21 08:11:16 -07:00
Daan Leijen
12257e5bc1
fix thread-id reset on page abandonment
2019-08-21 08:09:28 -07:00
Kirsten Lee
6165177cb1
provide a set of solutions that use the vs2019 vcruntime
2019-08-20 16:19:16 -07:00
daan
ff88361329
lower block size for keeping retired pages
2019-08-20 09:45:50 -07:00
daan
d81b800e12
optimize stat counter increase
2019-08-20 08:58:53 -07:00
daan
27d794b5f4
fix option_enable call
2019-08-20 07:49:40 -07:00
daan
03d994648a
better option interface: option_enable, option_disable, and option_set_enabled
2019-08-20 07:47:50 -07:00
daan
1e0cd575a5
do not export DllEntry on windows
2019-08-20 07:06:53 -07:00
daan
d52e4039b6
remove the reset_discards option
2019-08-20 07:06:11 -07:00
daan
598233135c
fix optimization settings on Windows compilation
2019-08-20 07:04:00 -07:00
daan
79487dbedf
add checks for right option order
2019-08-20 06:58:51 -07:00
daan
8c795cc37d
remove test statement
2019-08-19 21:24:38 -07:00
daan
d2324f1c2a
always check large_os_pages enabled option so it can be changed during the running of the program
2019-08-19 21:22:24 -07:00
daan
13ef8a049b
allow larger large objects to better use segment space
2019-08-19 21:22:09 -07:00
daan
48a7d64bdd
if region overcommitting due to contention save it to a further slot
2019-08-19 21:20:24 -07:00
daan
2066e2797d
don't allow allocations larger than PTRDIFF_MAX, issue #121
2019-08-19 19:29:27 -07:00
daan
74299646bb
fix heap cookie and random order on initialization (issue #131 )
2019-08-19 19:22:13 -07:00
daan
b46bacc180
fix absorb heap (issue #132 )
2019-08-19 19:19:09 -07:00
daan
770e752578
fix parameter order on mul_overflow to fix static analysis warnings (pr #125 )
2019-08-19 19:15:04 -07:00
daan
82e1b40166
Merge branch 'master' into dev
2019-08-19 19:13:25 -07:00
Daan
e2b4127a16
Merge pull request #129 from devnexen/linux_build_fix
...
linux build correction
2019-08-19 19:04:48 -07:00
daan
61ebaaa403
Merge branch 'dev' of https://github.com/microsoft/mimalloc into dev
2019-08-19 08:10:11 -07:00
Daan Leijen
069c26dbab
fix small object size check in mi_segment_page_alloc
2019-08-16 18:40:30 -07:00
David Carlier
b0003cb101
linux build correction
...
MAP_HUGE_2MB is linux specific and the related header
is not automatically included.
2019-08-14 15:07:13 +01:00
daan
d3375f2bac
fix assertion in mi_free_size
2019-08-12 13:50:41 -07:00
daan
178ea0840c
roll back commit #72d8608 to avoid spin lock contention on region allocation
2019-08-12 13:40:19 -07:00
daan
8ca79b5359
Hide MEM_EXTENDED_PARAMETER to compile on older SDK's
2019-08-12 08:58:22 -07:00
daan
62de76a327
fix C++ compilation of stress test
2019-08-12 08:55:20 -07:00
daan
8b2194c160
merge from master
2019-08-12 15:50:21 -07:00
Daan
cbc826beb5
Merge pull request #126 from JeanMiK/fix_C++_signature_of_mi_is_in_heap_region
...
Fix C++ signature of function mi_is_in_heap_region
2019-08-12 08:45:04 -07:00
JeanMiK
3f43cbe6a1
Fix C++ signature of function mi_is_in_heap_region
...
Original code did not compile with MI_USE_CXX=ON as function
mi_is_in_heap_region was declared noexcept through macro mi_attr_noexcept
but defined without specification, i.e. implicitly with noexception(false)
Just adding the macro in the definition is enough to fix the issue
(tested with gcc 8.3.5)
2019-08-12 12:43:01 +02:00
daan
648f535c80
improve support for transparent huge pages on Linux (pr #115 )
2019-08-11 18:23:31 -07:00
daan
feb7b2c160
improve bit range skipping in region search
2019-08-11 13:49:12 -07:00
daan
3a75a9d5be
use bit-scan instruction to speed up region search
2019-08-11 13:03:00 -07:00
daan
0fd898315c
per thread region search index
2019-08-11 12:15:13 -07:00
daan
2e924150ae
further layout improvement for msvc code generation
2019-08-11 11:30:24 -07:00
daan
7b105c4810
improve layout of page for x64
2019-08-11 10:31:00 -07:00
daan
2c1da9d194
fix scalar initialization of page flags
2019-08-11 09:03:52 -07:00
daan
3a171624bd
Merge branch 'master' into dev
2019-08-11 08:59:38 -07:00
daan
a73daf1804
avoid mod operation in region allocation and limit extension
2019-08-11 08:54:32 -07:00
daan
756f4b2724
improve bit scanning code in region allocation
2019-08-11 08:48:19 -07:00
daan
6435887657
add comment on wait strategy in region allocation
2019-08-11 08:18:51 -07:00
daan
f5902a7a82
ensure webassembly allocation sizes are page aligned
2019-08-11 08:06:17 -07:00
daan
a1384bff72
avoid atomic read on aligned allocation on Linux
2019-08-11 08:00:10 -07:00
daan
dbe010f2d4
add huge and giant stats; increase bins
2019-08-10 20:51:37 -07:00
daan
737b05cc25
remove unused fields from OS thread local data
2019-08-10 17:50:27 -07:00
daan
ed785253bf
restructure the page flags to use explicit masks
2019-08-10 17:48:00 -07:00
daan
c0258b2d29
Merge branch 'master' into dev
2019-08-10 17:27:22 -07:00
daan
b74f9b979f
update documentation
2019-08-10 17:27:07 -07:00
Daan
6bc6628ad4
Update readme.md
...
Start documenting releases
2019-08-10 17:12:05 -07:00
Daan
f7ed954c7c
Update readme.md
...
Notes on dynamic overriding; document environment options
2019-08-10 17:07:40 -07:00
daan
49b1f55029
Merge branch 'dev-win' into dev
2019-08-10 15:56:26 -07:00
daan
74a5c17178
update order of options; make eager_region_commit 0 on windows by default
v1.0.6
2019-08-10 15:44:55 -07:00
daan
2fee6f98d7
Merge branch 'master' into dev
2019-08-10 15:23:43 -07:00
daan
78a70ada2e
Fix option reading even when preloading on Windows
2019-08-10 15:17:40 -07:00
daan
6f3bc87dcd
merge from dev
2019-08-10 10:26:46 -07:00
daan
8ae2492eee
fix arguments for the heap visitor function, issue #124
2019-08-10 10:14:01 -07:00
Daan
5b4c4ac959
Merge pull request #117 from devnexen/darwin_anon_monitor
...
darwin, tracking anonymous page lifetime.
2019-08-10 09:58:35 -07:00
daan
ccc78302bf
fix double assignment ( #125 , by @ebudai)
2019-08-10 09:53:00 -07:00
daan
b1938530af
fix comment
2019-08-09 14:31:45 -07:00
daan
7b16aa9302
remove accidental commit of different size bins experiment
2019-08-09 11:22:38 -07:00
daan
442bad9190
add good-fit for allowing larger blocks in smaller segments
2019-08-09 11:18:38 -07:00
daan
5e56b40fe6
improve page flags handling
2019-08-08 17:18:49 -07:00
daan
de57686dac
Merge branch 'dev-win' of https://github.com/microsoft/mimalloc into dev-win
2019-08-08 15:23:27 -07:00
daan
6596e970a5
move in_full and has_aligned into page threadid for a single test in mi_free
2019-08-08 15:23:18 -07:00
daan
55778d2fe4
improved stats
2019-08-08 11:36:13 -07:00
daan
56778fe7d2
split normal and secure extend in a separate routine
2019-08-06 18:57:53 -07:00
daan
6313c21d93
fix output directory in test projects
2019-08-06 18:25:57 -07:00
Jakub Szymanski
0e8241c140
change from MIMALLOC_OVERRIDE to MIMALLOC_DISABLE_OVERRIDE
2019-07-30 10:36:00 -07:00
David Carlier
82ab9b4bd6
tracking anonymous page lifetime on macOS.
...
this platform allows to tag them per application up to 255.
2019-07-27 23:05:05 +01: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