Skip to main content

Module dataflow_const_prop

Module dataflow_const_prop 

Source
Expand description

A constant propagation optimization pass based on dataflow analysis.

Currently, this pass only propagates scalar values.

Re-exportsยง

use std::assert_matches; ๐Ÿ”’
use std::fmt::Formatter; ๐Ÿ”’
use rustc_abi::BackendRepr; ๐Ÿ”’
use rustc_abi::FIRST_VARIANT; ๐Ÿ”’
use rustc_abi::FieldIdx; ๐Ÿ”’
use rustc_abi::Size; ๐Ÿ”’
use rustc_abi::VariantIdx; ๐Ÿ”’
use rustc_const_eval::const_eval::DummyMachine; ๐Ÿ”’
use rustc_const_eval::const_eval::throw_machine_stop_str; ๐Ÿ”’
use rustc_const_eval::interpret::ImmTy; ๐Ÿ”’
use rustc_const_eval::interpret::Immediate; ๐Ÿ”’
use rustc_const_eval::interpret::InterpCx; ๐Ÿ”’
use rustc_const_eval::interpret::OpTy; ๐Ÿ”’
use rustc_const_eval::interpret::PlaceTy; ๐Ÿ”’
use rustc_const_eval::interpret::Projectable; ๐Ÿ”’
use rustc_const_eval::interpret::interp_ok; ๐Ÿ”’
use rustc_data_structures::fx::FxHashMap; ๐Ÿ”’
use rustc_hir::def::DefKind; ๐Ÿ”’
use rustc_middle::mir::interpret::InterpResult; ๐Ÿ”’
use rustc_middle::mir::interpret::Scalar; ๐Ÿ”’
use rustc_middle::mir::visit::MutVisitor; ๐Ÿ”’
use rustc_middle::mir::visit::PlaceContext; ๐Ÿ”’
use rustc_middle::mir::visit::Visitor; ๐Ÿ”’
use rustc_middle::ty; ๐Ÿ”’
use rustc_middle::ty::Ty; ๐Ÿ”’
use rustc_middle::ty::TyCtxt; ๐Ÿ”’
use rustc_mir_dataflow::fmt::DebugWithContext; ๐Ÿ”’
use rustc_mir_dataflow::lattice::FlatSet; ๐Ÿ”’
use rustc_mir_dataflow::lattice::HasBottom; ๐Ÿ”’
use rustc_mir_dataflow::value_analysis::Map; ๐Ÿ”’
use rustc_mir_dataflow::value_analysis::PlaceCollectionMode; ๐Ÿ”’
use rustc_mir_dataflow::value_analysis::PlaceIndex; ๐Ÿ”’
use rustc_mir_dataflow::value_analysis::State; ๐Ÿ”’
use rustc_mir_dataflow::value_analysis::TrackElem; ๐Ÿ”’
use rustc_mir_dataflow::value_analysis::ValueOrPlace; ๐Ÿ”’
use rustc_mir_dataflow::value_analysis::debug_with_context; ๐Ÿ”’
use rustc_mir_dataflow::Analysis; ๐Ÿ”’
use rustc_mir_dataflow::ResultsVisitor; ๐Ÿ”’
use rustc_mir_dataflow::visit_results; ๐Ÿ”’
use rustc_span::DUMMY_SP; ๐Ÿ”’
use rustc_span::bug; ๐Ÿ”’
use tracing::debug; ๐Ÿ”’
use tracing::debug_span; ๐Ÿ”’
use tracing::instrument; ๐Ÿ”’
use tracing::instrument; ๐Ÿ”’
use crate::PassPolicy; ๐Ÿ”’
use rustc_middle::mir::*; ๐Ÿ”’

Structsยง

Collector ๐Ÿ”’
ConstAnalysis ๐Ÿ”’
DataflowConstProp ๐Ÿ”’
OperandCollector ๐Ÿ”’
Patch ๐Ÿ”’

Constantsยง

BLOCK_LIMIT ๐Ÿ”’
PLACE_LIMIT ๐Ÿ”’

Functionsยง

propagatable_scalar ๐Ÿ”’
try_write_constant ๐Ÿ”’