Add comments and remove unnecessary code
This commit is contained in:
parent
f9982ea24a
commit
7618163a1c
3 changed files with 7 additions and 9 deletions
|
@ -561,11 +561,6 @@ impl<'mir, 'tcx> interpret::Machine<'mir, 'tcx> for CompileTimeInterpreter<'mir,
|
||||||
throw_unsup_format!("pointer arithmetic or comparison is not supported at compile-time");
|
throw_unsup_format!("pointer arithmetic or comparison is not supported at compile-time");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Not used here, but used by Miri (see `src/tools/miri/src/machine.rs`).
|
|
||||||
fn before_terminator(_ecx: &mut InterpCx<'mir, 'tcx, Self>) -> InterpResult<'tcx> {
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
fn increment_const_eval_counter(ecx: &mut InterpCx<'mir, 'tcx, Self>) -> InterpResult<'tcx> {
|
fn increment_const_eval_counter(ecx: &mut InterpCx<'mir, 'tcx, Self>) -> InterpResult<'tcx> {
|
||||||
// The step limit has already been hit in a previous call to `increment_const_eval_counter`.
|
// The step limit has already been hit in a previous call to `increment_const_eval_counter`.
|
||||||
if ecx.machine.steps_remaining == 0 {
|
if ecx.machine.steps_remaining == 0 {
|
||||||
|
|
|
@ -286,10 +286,7 @@ pub enum StatementKind<'tcx> {
|
||||||
/// This is permitted for both generators and ADTs. This does not necessarily write to the
|
/// This is permitted for both generators and ADTs. This does not necessarily write to the
|
||||||
/// entire place; instead, it writes to the minimum set of bytes as required by the layout for
|
/// entire place; instead, it writes to the minimum set of bytes as required by the layout for
|
||||||
/// the type.
|
/// the type.
|
||||||
SetDiscriminant {
|
SetDiscriminant { place: Box<Place<'tcx>>, variant_index: VariantIdx },
|
||||||
place: Box<Place<'tcx>>,
|
|
||||||
variant_index: VariantIdx,
|
|
||||||
},
|
|
||||||
|
|
||||||
/// Deinitializes the place.
|
/// Deinitializes the place.
|
||||||
///
|
///
|
||||||
|
@ -358,6 +355,10 @@ pub enum StatementKind<'tcx> {
|
||||||
/// This avoids adding a new block and a terminator for simple intrinsics.
|
/// This avoids adding a new block and a terminator for simple intrinsics.
|
||||||
Intrinsic(Box<NonDivergingIntrinsic<'tcx>>),
|
Intrinsic(Box<NonDivergingIntrinsic<'tcx>>),
|
||||||
|
|
||||||
|
/// Instructs the const eval interpreter to increment a counter; this counter is used to track
|
||||||
|
/// how many steps the interpreter has taken. It is used to prevent the user from writing const
|
||||||
|
/// code that runs for too long or infinitely. Other than in the const eval interpreter, this
|
||||||
|
/// is a no-op.
|
||||||
ConstEvalCounter,
|
ConstEvalCounter,
|
||||||
|
|
||||||
/// No-op. Useful for deleting instructions without affecting statement indices.
|
/// No-op. Useful for deleting instructions without affecting statement indices.
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
//! A pass that inserts the `ConstEvalCounter` instruction into any blocks that have a back edge
|
||||||
|
//! (thus indicating there is a loop in the CFG), or whose terminator is a function call.
|
||||||
use crate::MirPass;
|
use crate::MirPass;
|
||||||
|
|
||||||
use rustc_middle::mir::{
|
use rustc_middle::mir::{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue