about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBjörn Steinbrink <B.Steinbrink@gmx.de>2013-05-04 18:21:27 +0200
committerBjörn Steinbrink <B.Steinbrink@gmx.de>2013-05-04 18:21:27 +0200
commite5ca35d567e7d243c81d8c41fa0e7268ae8df58f (patch)
tree5e803b63ca550aa9492399f8e64988eb5686f708
parent1f65e4a1d54417cebaed30816c75ae1cb0334566 (diff)
downloadrust-e5ca35d567e7d243c81d8c41fa0e7268ae8df58f.tar.gz
rust-e5ca35d567e7d243c81d8c41fa0e7268ae8df58f.zip
Reduce code bloat from managed allocations
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
-rw-r--r--src/libcore/unstable/lang.rs2
1 files changed, 0 insertions, 2 deletions
diff --git a/src/libcore/unstable/lang.rs b/src/libcore/unstable/lang.rs
index 7cd218639c0..460285bfcfd 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() {