Skip to content

Commit 556be92

Browse files
Auto merge of #147583 - umbrageodotus:master, r=<try>
[perf] Test mimalloc 3.1.5
2 parents 9725c4b + cd2fc8e commit 556be92

File tree

4 files changed

+44
-23
lines changed

4 files changed

+44
-23
lines changed

Cargo.lock

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -908,6 +908,12 @@ dependencies = [
908908
"windows-sys 0.59.0",
909909
]
910910

911+
[[package]]
912+
name = "cty"
913+
version = "0.2.2"
914+
source = "registry+https://github.com/rust-lang/crates.io-index"
915+
checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"
916+
911917
[[package]]
912918
name = "curl"
913919
version = "0.4.49"
@@ -2152,6 +2158,17 @@ version = "0.2.15"
21522158
source = "registry+https://github.com/rust-lang/crates.io-index"
21532159
checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de"
21542160

2161+
[[package]]
2162+
name = "libmimalloc-sys"
2163+
version = "0.1.44"
2164+
source = "registry+https://github.com/rust-lang/crates.io-index"
2165+
checksum = "667f4fec20f29dfc6bc7357c582d91796c169ad7e2fce709468aefeb2c099870"
2166+
dependencies = [
2167+
"cc",
2168+
"cty",
2169+
"libc",
2170+
]
2171+
21552172
[[package]]
21562173
name = "libredox"
21572174
version = "0.1.9"
@@ -3287,13 +3304,13 @@ checksum = "e4ee29da77c5a54f42697493cd4c9b9f31b74df666a6c04dfc4fde77abe0438b"
32873304
name = "rustc-main"
32883305
version = "0.0.0"
32893306
dependencies = [
3307+
"libmimalloc-sys",
32903308
"rustc_codegen_ssa",
32913309
"rustc_driver",
32923310
"rustc_driver_impl",
32933311
"rustc_public",
32943312
"rustc_public_bridge",
32953313
"rustc_windows_rc",
3296-
"tikv-jemalloc-sys",
32973314
]
32983315

32993316
[[package]]

compiler/rustc/Cargo.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@ rustc_public = { path = "../rustc_public" }
2020
rustc_public_bridge = { path = "../rustc_public_bridge" }
2121
# tidy-alphabetical-end
2222

23-
[dependencies.tikv-jemalloc-sys]
24-
version = "0.6.0"
23+
[dependencies.libmimalloc-sys]
24+
version = "0.1.44"
2525
optional = true
26-
features = ['unprefixed_malloc_on_supported_platforms']
26+
features = ["v3", "local_dynamic_tls", "arena", "extended", "override"]
2727

2828
[features]
2929
# tidy-alphabetical-start
3030
check_only = ['rustc_driver_impl/check_only']
31-
jemalloc = ['dep:tikv-jemalloc-sys']
31+
jemalloc = ['dep:libmimalloc-sys']
3232
llvm = ['rustc_driver_impl/llvm']
3333
llvm_enzyme = ['rustc_driver_impl/llvm_enzyme']
3434
max_level_info = ['rustc_driver_impl/max_level_info']

compiler/rustc/src/main.rs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,21 +43,23 @@ fn main() {
4343
{
4444
use std::os::raw::{c_int, c_void};
4545

46-
use tikv_jemalloc_sys as jemalloc_sys;
46+
use libmimalloc_sys as mimalloc_sys;
4747

4848
#[used]
49-
static _F1: unsafe extern "C" fn(usize, usize) -> *mut c_void = jemalloc_sys::calloc;
49+
static _F1: unsafe extern "C" fn(usize, usize) -> *mut c_void = mimalloc_sys::mi_calloc;
5050
#[used]
5151
static _F2: unsafe extern "C" fn(*mut *mut c_void, usize, usize) -> c_int =
52-
jemalloc_sys::posix_memalign;
52+
mimalloc_sys::mi_posix_memalign;
5353
#[used]
54-
static _F3: unsafe extern "C" fn(usize, usize) -> *mut c_void = jemalloc_sys::aligned_alloc;
54+
static _F3: unsafe extern "C" fn(usize, usize) -> *mut c_void =
55+
mimalloc_sys::mi_aligned_alloc;
5556
#[used]
56-
static _F4: unsafe extern "C" fn(usize) -> *mut c_void = jemalloc_sys::malloc;
57+
static _F4: unsafe extern "C" fn(usize) -> *mut c_void = mimalloc_sys::mi_malloc;
5758
#[used]
58-
static _F5: unsafe extern "C" fn(*mut c_void, usize) -> *mut c_void = jemalloc_sys::realloc;
59+
static _F5: unsafe extern "C" fn(*mut c_void, usize) -> *mut c_void =
60+
mimalloc_sys::mi_realloc;
5961
#[used]
60-
static _F6: unsafe extern "C" fn(*mut c_void) = jemalloc_sys::free;
62+
static _F6: unsafe extern "C" fn(*mut c_void) = mimalloc_sys::mi_free;
6163

6264
// On OSX, jemalloc doesn't directly override malloc/free, but instead
6365
// registers itself with the allocator's zone APIs in a ctor. However,
@@ -66,11 +68,11 @@ fn main() {
6668
#[cfg(target_os = "macos")]
6769
{
6870
unsafe extern "C" {
69-
fn _rjem_je_zone_register();
71+
fn _mi_macos_override_malloc();
7072
}
7173

7274
#[used]
73-
static _F7: unsafe extern "C" fn() = _rjem_je_zone_register;
75+
static _F7: unsafe extern "C" fn() = _mi_macos_override_malloc;
7476
}
7577
}
7678

src/librustdoc/lib.rs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ extern crate test;
6565
// See docs in https://github.com/rust-lang/rust/blob/master/compiler/rustc/src/main.rs
6666
// about jemalloc.
6767
#[cfg(feature = "jemalloc")]
68-
extern crate tikv_jemalloc_sys as jemalloc_sys;
68+
extern crate libmimalloc_sys as mimalloc_sys;
6969

7070
use std::env::{self, VarError};
7171
use std::io::{self, IsTerminal};
@@ -132,27 +132,29 @@ pub fn main() {
132132
use std::os::raw::{c_int, c_void};
133133

134134
#[used]
135-
static _F1: unsafe extern "C" fn(usize, usize) -> *mut c_void = jemalloc_sys::calloc;
135+
static _F1: unsafe extern "C" fn(usize, usize) -> *mut c_void = mimalloc_sys::mi_calloc;
136136
#[used]
137137
static _F2: unsafe extern "C" fn(*mut *mut c_void, usize, usize) -> c_int =
138-
jemalloc_sys::posix_memalign;
138+
mimalloc_sys::mi_posix_memalign;
139139
#[used]
140-
static _F3: unsafe extern "C" fn(usize, usize) -> *mut c_void = jemalloc_sys::aligned_alloc;
140+
static _F3: unsafe extern "C" fn(usize, usize) -> *mut c_void =
141+
mimalloc_sys::mi_aligned_alloc;
141142
#[used]
142-
static _F4: unsafe extern "C" fn(usize) -> *mut c_void = jemalloc_sys::malloc;
143+
static _F4: unsafe extern "C" fn(usize) -> *mut c_void = mimalloc_sys::mi_malloc;
143144
#[used]
144-
static _F5: unsafe extern "C" fn(*mut c_void, usize) -> *mut c_void = jemalloc_sys::realloc;
145+
static _F5: unsafe extern "C" fn(*mut c_void, usize) -> *mut c_void =
146+
mimalloc_sys::mi_realloc;
145147
#[used]
146-
static _F6: unsafe extern "C" fn(*mut c_void) = jemalloc_sys::free;
148+
static _F6: unsafe extern "C" fn(*mut c_void) = mimalloc_sys::mi_free;
147149

148150
#[cfg(target_os = "macos")]
149151
{
150152
unsafe extern "C" {
151-
fn _rjem_je_zone_register();
153+
fn _mi_macos_override_malloc();
152154
}
153155

154156
#[used]
155-
static _F7: unsafe extern "C" fn() = _rjem_je_zone_register;
157+
static _F7: unsafe extern "C" fn() = _mi_macos_override_malloc;
156158
}
157159
}
158160

0 commit comments

Comments
 (0)