pub enum HExpr {
Var(VarId),
Opaque {
op: &'static str,
args: Vec<VarId>,
},
}Expand description
HLIR is a higher-level intermediate representation intended to be “decompile-friendly”.
In this initial implementation, HLIR is deliberately conservative:
- It preserves basic blocks, φ-nodes, and explicit side-effects.
- It does not attempt structured control-flow reconstruction.
- It only folds a subset of simple unary/binary register operations.
The goal is to provide a stable foundation for later passes (SSA cleanup, DCE, type info, control-flow structuring, and finally TJS pretty-printing).
Variants§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for HExpr
impl RefUnwindSafe for HExpr
impl Send for HExpr
impl Sync for HExpr
impl Unpin for HExpr
impl UnwindSafe for HExpr
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more