Skip to content

Commit 1b28ff3

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

File tree

4 files changed

+36
-21
lines changed

4 files changed

+36
-21
lines changed

Cargo.lock

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2152,6 +2152,16 @@ version = "0.2.15"
21522152
source = "registry+https://github.com/rust-lang/crates.io-index"
21532153
checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de"
21542154

2155+
[[package]]
2156+
name = "libmimalloc-sys"
2157+
version = "0.1.44"
2158+
source = "registry+https://github.com/rust-lang/crates.io-index"
2159+
checksum = "667f4fec20f29dfc6bc7357c582d91796c169ad7e2fce709468aefeb2c099870"
2160+
dependencies = [
2161+
"cc",
2162+
"libc",
2163+
]
2164+
21552165
[[package]]
21562166
name = "libredox"
21572167
version = "0.1.9"
@@ -3287,6 +3297,7 @@ checksum = "e4ee29da77c5a54f42697493cd4c9b9f31b74df666a6c04dfc4fde77abe0438b"
32873297
name = "rustc-main"
32883298
version = "0.0.0"
32893299
dependencies = [
3300+
"libmimalloc-sys",
32903301
"rustc_codegen_ssa",
32913302
"rustc_driver",
32923303
"rustc_driver_impl",

compiler/rustc/Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ 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

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)