1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//! Built-in SSA optimization passes for the analyssa deobfuscation framework.
//!
//! Each pass exposes a free function, typically named `run`, that takes
//! `&mut SsaFunction<T>` plus an event sink and mutates the IR in place.
//! Hosts can call those functions directly or use the pass wrappers re-exported
//! by this module with [`crate::scheduling::PassScheduler`].
//!
//! # Pass Categories
//!
//! - **Normalization**: [`deadcode`], [`copying`], [`gvn`], [`blockmerge`] —
//! clean up the IR after structural transformations. Run between every
//! pipeline layer's fixpoint iterations.
//! - **Structural**: [`controlflow`], [`threading`], [`loopcanon`], [`blockmerge`] —
//! simplify and canonicalize the control-flow graph.
//! - **Value-level**: [`algebraic`], [`strength`], [`reassociate`], [`ranges`],
//! [`predicates`], [`licm`] — replace expensive or redundant computations
//! with cheaper or constant equivalents.
//!
//! # Scheduling
//!
//! The `scheduling` sub-module wraps each pass body in an
//! [`SsaPass`](crate::scheduling::SsaPass) trait impl so the
//! [`PassScheduler`](crate::scheduling::PassScheduler) can orchestrate them
//! with capability-based ordering, fixpoint iteration, and parallel dispatch.
pub use PredicateResult;
pub use ;