pub mod builder;
mod dominance;
pub(crate) mod effects;
mod form;
mod optimize;
mod to_ir;
mod variable;
pub use builder::SsaBuilder;
pub use dominance::{compute, DominanceInfo};
pub use form::{SsaBlock, SsaExpr, SsaForm, SsaStats, SsaStmt, UseSite};
pub use optimize::optimize as optimize_ssa;
pub use to_ir::{render_ssa_form, ssa_expr_to_ir};
pub use variable::{PhiNode, SsaVariable};
#[cfg(test)]
mod tests {
use super::*;
use crate::decompiler::cfg::Cfg;
#[test]
fn test_dominance_via_cfg() {
let cfg = Cfg::new();
let dominance = compute(&cfg);
assert!(dominance.idom.is_empty());
}
}