mod analyze;
mod branch_values;
mod branches;
mod cfg;
mod common;
mod debug;
mod goto;
mod helpers;
mod loops;
mod phi_facts;
mod regions;
mod scope;
mod short_circuit;
pub(crate) use analyze::analyze_structure_stage;
pub use cfg::{
BasicBlock, BlockKind, BlockRef, Cfg, CfgEdge, CfgGraph, CompactSet, DataflowFacts, Def, DefId,
DominatorTree, EdgeKind, EdgeRef, EffectTag, GraphFacts, InstrEffect, InstrRange,
InstrReachingDefs, InstrReachingValues, InstrUseDefs, InstrUseValues, NaturalLoop, OpenDef,
OpenDefId, OpenUseSite, PhiCandidate, PhiId, PhiIncoming, PostDominatorTree,
ReachableSuccessorShape, RegValueMap, SideEffectSummary, SsaValue, UseSite, ValueMapRef,
ValueSetRef, build_cfg_graph, compute_dataflow_facts,
};
pub use common::{
BranchCandidate, BranchKind, BranchRegionFact, BranchValueMergeArm, BranchValueMergeCandidate,
BranchValueMergeValue, GenericPhiMaterialization, GenericPhiSource, GotoReason,
GotoRequirement, LoopCandidate, LoopExitValueMergeCandidate, LoopKindHint, LoopSourceBindings,
LoopValueArm, LoopValueIncoming, LoopValueMerge, RegionFact, RegionKind, ScopeCandidate,
ScopeKind, ShortCircuitCandidate, ShortCircuitExit, ShortCircuitNode, ShortCircuitNodeRef,
ShortCircuitTarget, ShortCircuitValueIncoming, StructureFacts,
};
pub use debug::dump_structure;