about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-06-11 20:43:39 -0700
committerbors <bors@rust-lang.org>2013-06-11 20:43:39 -0700
commit7033dfcf917ccef44fbc3e33d31814455c13b4c6 (patch)
tree0b3e10a4e47b0312cac2db2488874ce528e617dc
parent8761b1fb16c8d1e7e57a95efdb2cdcf36565477a (diff)
parentf526434197be4395709b6354d746d9954ff5471c (diff)
downloadrust-7033dfcf917ccef44fbc3e33d31814455c13b4c6.tar.gz
rust-7033dfcf917ccef44fbc3e33d31814455c13b4c6.zip
auto merge of #7069 : dotdash/rust/cast_combine, r=graydon
Shaves off a percent or so from the LLVM passes for librustc.
-rw-r--r--src/librustc/middle/trans/base.rs5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/librustc/middle/trans/base.rs b/src/librustc/middle/trans/base.rs
index 8db838c5d31..edd7069593b 100644
--- a/src/librustc/middle/trans/base.rs
+++ b/src/librustc/middle/trans/base.rs
@@ -269,9 +269,8 @@ pub fn opaque_box_body(bcx: block,
                        boxptr: ValueRef) -> ValueRef {
     let _icx = bcx.insn_ctxt("opaque_box_body");
     let ccx = bcx.ccx();
-    let boxptr = PointerCast(bcx, boxptr, T_ptr(T_box_header(ccx)));
-    let bodyptr = GEPi(bcx, boxptr, [1u]);
-    PointerCast(bcx, bodyptr, T_ptr(type_of(ccx, body_t)))
+    let boxptr = PointerCast(bcx, boxptr, T_ptr(T_box(ccx, type_of(ccx, body_t))));
+    GEPi(bcx, boxptr, [0u, abi::box_field_body])
 }
 
 // malloc_raw_dyn: allocates a box to contain a given type, but with a