Skip to content

Commit

Permalink
Auto merge of rust-lang#101154 - RalfJung:validation-perf, r=oli-obk
Browse files Browse the repository at this point in the history
interpret: fix unnecessary allocation in validation visitor

Should fix the perf regression introduced by rust-lang#100043.

r? `@oli-obk`
  • Loading branch information
bors committed Sep 3, 2022
2 parents 9208625 + 8b53abd commit 06b72b0
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions compiler/rustc_const_eval/src/interpret/validity.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
//! to be const-safe.

use std::convert::TryFrom;
use std::fmt::Write;
use std::fmt::{Display, Write};
use std::num::NonZeroUsize;

use rustc_ast::Mutability;
Expand Down Expand Up @@ -311,7 +311,7 @@ impl<'rt, 'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> ValidityVisitor<'rt, 'mir, '
fn read_immediate(
&self,
op: &OpTy<'tcx, M::Provenance>,
expected: &str,
expected: impl Display,
) -> InterpResult<'tcx, ImmTy<'tcx, M::Provenance>> {
Ok(try_validation!(
self.ecx.read_immediate(op),
Expand All @@ -323,7 +323,7 @@ impl<'rt, 'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> ValidityVisitor<'rt, 'mir, '
fn read_scalar(
&self,
op: &OpTy<'tcx, M::Provenance>,
expected: &str,
expected: impl Display,
) -> InterpResult<'tcx, Scalar<M::Provenance>> {
Ok(self.read_immediate(op, expected)?.to_scalar())
}
Expand Down Expand Up @@ -368,7 +368,8 @@ impl<'rt, 'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> ValidityVisitor<'rt, 'mir, '
value: &OpTy<'tcx, M::Provenance>,
kind: &str,
) -> InterpResult<'tcx> {
let place = self.ecx.ref_to_mplace(&self.read_immediate(value, &format!("a {kind}"))?)?;
let place =
self.ecx.ref_to_mplace(&self.read_immediate(value, format_args!("a {kind}"))?)?;
// Handle wide pointers.
// Check metadata early, for better diagnostics
if place.layout.is_unsized() {
Expand Down

0 comments on commit 06b72b0

Please sign in to comment.