about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbjorn3 <bjorn3@users.noreply.github.com>2021-02-21 12:48:43 +0100
committerbjorn3 <bjorn3@users.noreply.github.com>2021-02-21 12:48:43 +0100
commit74f39b64c8d6a1395c6029d59d50342f80cae04e (patch)
tree827db78d8ad23365d31b2114e45db2f4bbb38410
parentb0f870edd63c671645647c7bb9026b3e0e5f0966 (diff)
downloadrust-74f39b64c8d6a1395c6029d59d50342f80cae04e.tar.gz
rust-74f39b64c8d6a1395c6029d59d50342f80cae04e.zip
Avoid a temporary stackslot in codegen_checked_int_binop
-rw-r--r--src/num.rs15
1 files changed, 4 insertions, 11 deletions
diff --git a/src/num.rs b/src/num.rs
index 4cce853d4b0..850ff3561f7 100644
--- a/src/num.rs
+++ b/src/num.rs
@@ -328,18 +328,11 @@ pub(crate) fn codegen_checked_int_binop<'tcx>(
 
     let has_overflow = fx.bcx.ins().bint(types::I8, has_overflow);
 
-    // FIXME directly write to result place instead
-    let out_place = CPlace::new_stack_slot(
-        fx,
-        fx.layout_of(
-            fx.tcx
-                .mk_tup([in_lhs.layout().ty, fx.tcx.types.bool].iter()),
-        ),
+    let out_layout = fx.layout_of(
+        fx.tcx
+            .mk_tup([in_lhs.layout().ty, fx.tcx.types.bool].iter()),
     );
-    let out_layout = out_place.layout();
-    out_place.write_cvalue(fx, CValue::by_val_pair(res, has_overflow, out_layout));
-
-    out_place.to_cvalue(fx)
+    CValue::by_val_pair(res, has_overflow, out_layout)
 }
 
 pub(crate) fn codegen_float_binop<'tcx>(