diff options
| author | Bryan Garza <1396101+bryangarza@users.noreply.github.com> | 2023-01-06 16:39:24 +0000 |
|---|---|---|
| committer | Bryan Garza <1396101+bryangarza@users.noreply.github.com> | 2023-01-23 23:56:22 +0000 |
| commit | 7618163a1caf0d6dfa5618c8369742720c90ef6b (patch) | |
| tree | fdfa3f20af58bb9e609ad251dd1b9a6b64b665de | |
| parent | f9982ea24a55a1912198bc49578f7af090e487e9 (diff) | |
| download | rust-7618163a1caf0d6dfa5618c8369742720c90ef6b.tar.gz rust-7618163a1caf0d6dfa5618c8369742720c90ef6b.zip | |
Add comments and remove unnecessary code
| -rw-r--r-- | compiler/rustc_const_eval/src/const_eval/machine.rs | 5 | ||||
| -rw-r--r-- | compiler/rustc_middle/src/mir/syntax.rs | 9 | ||||
| -rw-r--r-- | compiler/rustc_mir_transform/src/ctfe_limit.rs | 2 |
3 files changed, 7 insertions, 9 deletions
diff --git a/compiler/rustc_const_eval/src/const_eval/machine.rs b/compiler/rustc_const_eval/src/const_eval/machine.rs index e51f52783d4..a5bc121485d 100644 --- a/compiler/rustc_const_eval/src/const_eval/machine.rs +++ b/compiler/rustc_const_eval/src/const_eval/machine.rs @@ -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"); } - // 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> { // The step limit has already been hit in a previous call to `increment_const_eval_counter`. if ecx.machine.steps_remaining == 0 { diff --git a/compiler/rustc_middle/src/mir/syntax.rs b/compiler/rustc_middle/src/mir/syntax.rs index faf903a5949..549bc65d6d7 100644 --- a/compiler/rustc_middle/src/mir/syntax.rs +++ b/compiler/rustc_middle/src/mir/syntax.rs @@ -286,10 +286,7 @@ pub enum StatementKind<'tcx> { /// 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 /// the type. - SetDiscriminant { - place: Box<Place<'tcx>>, - variant_index: VariantIdx, - }, + SetDiscriminant { place: Box<Place<'tcx>>, variant_index: VariantIdx }, /// Deinitializes the place. /// @@ -358,6 +355,10 @@ pub enum StatementKind<'tcx> { /// This avoids adding a new block and a terminator for simple intrinsics. 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, /// No-op. Useful for deleting instructions without affecting statement indices. diff --git a/compiler/rustc_mir_transform/src/ctfe_limit.rs b/compiler/rustc_mir_transform/src/ctfe_limit.rs index 1ff8b792dca..76db4a09d91 100644 --- a/compiler/rustc_mir_transform/src/ctfe_limit.rs +++ b/compiler/rustc_mir_transform/src/ctfe_limit.rs @@ -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 rustc_middle::mir::{ |
