From 97c593a1ced524bf5182a1821946b7a528442da0 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Tue, 29 Jan 2013 21:14:09 -0800 Subject: [PATCH] librustc: Stop zeroing out allocas so much. Cuts 300K off librustc. --- src/librustc/middle/trans/base.rs | 6 +----- src/librustc/middle/trans/closure.rs | 2 +- src/librustc/middle/trans/glue.rs | 2 +- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/librustc/middle/trans/base.rs b/src/librustc/middle/trans/base.rs index f4814b4657b..e980cc9c16b 100644 --- a/src/librustc/middle/trans/base.rs +++ b/src/librustc/middle/trans/base.rs @@ -305,7 +305,7 @@ fn malloc_raw_dyn(bcx: block, // Allocate space: let tydesc = PointerCast(bcx, static_ti.tydesc, T_ptr(T_i8())); - let rval = alloca_zeroed(bcx, T_ptr(T_i8())); + let rval = alloca(bcx, T_ptr(T_i8())); let bcx = callee::trans_rtcall_or_lang_call( bcx, langcall, @@ -1504,10 +1504,6 @@ fn alloca(cx: block, t: TypeRef) -> ValueRef { alloca_maybe_zeroed(cx, t, false) } -fn alloca_zeroed(cx: block, t: TypeRef) -> ValueRef { - alloca_maybe_zeroed(cx, t, true) -} - fn alloca_maybe_zeroed(cx: block, t: TypeRef, zero: bool) -> ValueRef { let _icx = cx.insn_ctxt("alloca"); if cx.unreachable { diff --git a/src/librustc/middle/trans/closure.rs b/src/librustc/middle/trans/closure.rs index a3f07431bc8..d37f25ba2c8 100644 --- a/src/librustc/middle/trans/closure.rs +++ b/src/librustc/middle/trans/closure.rs @@ -525,7 +525,7 @@ fn make_opaque_cbox_take_glue( // Allocate memory, update original ptr, and copy existing data let opaque_tydesc = PointerCast(bcx, tydesc, T_ptr(T_i8())); - let rval = alloca_zeroed(bcx, T_ptr(T_i8())); + let rval = alloca(bcx, T_ptr(T_i8())); let bcx = callee::trans_rtcall_or_lang_call( bcx, bcx.tcx().lang_items.exchange_malloc_fn(), diff --git a/src/librustc/middle/trans/glue.rs b/src/librustc/middle/trans/glue.rs index 090de8508b6..4e557082e61 100644 --- a/src/librustc/middle/trans/glue.rs +++ b/src/librustc/middle/trans/glue.rs @@ -134,7 +134,7 @@ pub fn free_ty_immediate(bcx: block, v: ValueRef, t: ty::t) -> block { ty::ty_evec(_, ty::vstore_box) | ty::ty_estr(ty::vstore_box) | ty::ty_opaque_closure_ptr(_) => { - let vp = alloca_zeroed(bcx, type_of(bcx.ccx(), t)); + let vp = alloca(bcx, type_of(bcx.ccx(), t)); Store(bcx, v, vp); free_ty(bcx, vp, t) }