From e5ca35d567e7d243c81d8c41fa0e7268ae8df58f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Steinbrink?= Date: Sat, 4 May 2013 18:21:27 +0200 Subject: [PATCH] Reduce code bloat from managed allocations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In commit d7f5e43 "core::rt: Add the local heap to newsched tasks", local_malloc and local_free have become rather big and their forced inlining causes quite a bit of code bloat. Compile times for crates affected by the bloat (e.g. rustc) improve, while others (e.g. libstd) seem to be unaffected, so I guess the inlining doesn't gain us much. Sizes: | librustc | libsytax ---------------|–-----------|------------ with inlining | 18,547,824 | 7,110,848 w/o inlining | 15,092,040 | 5,518,608 --- src/libcore/unstable/lang.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/libcore/unstable/lang.rs b/src/libcore/unstable/lang.rs index 7cd218639c0a6..460285bfcfda0 100644 --- a/src/libcore/unstable/lang.rs +++ b/src/libcore/unstable/lang.rs @@ -98,7 +98,6 @@ pub unsafe fn local_malloc(td: *c_char, size: uintptr_t) -> *c_char { } #[lang="malloc"] -#[inline(always)] #[cfg(not(stage0))] pub unsafe fn local_malloc(td: *c_char, size: uintptr_t) -> *c_char { match context() { @@ -129,7 +128,6 @@ pub unsafe fn local_free(ptr: *c_char) { // inside a landing pad may corrupt the state of the exception handler. If a // problem occurs, call exit instead. #[lang="free"] -#[inline(always)] #[cfg(not(stage0))] pub unsafe fn local_free(ptr: *c_char) { match context() {