Skip to main content

portal_pc_waffle_passes_shared/
lib.rs

1//! Shared optimization passes for WAFFLE (used by both backend and passes crates).
2#![no_std]
3#![forbid(unsafe_code)]
4#![allow(dead_code)]
5
6#[macro_use]
7extern crate alloc;
8
9// Re-export dependencies
10pub use waffle_entity as entity;
11pub use waffle_ir as ir;
12pub use waffle_ir::*;
13pub use waffle_ir::cfg::CFGInfo;
14
15pub mod maxssa;
16pub mod resolve_aliases;
17
18pub use maxssa::*;
19pub use resolve_aliases::*;
20
21pub fn value_is_pure(value: Value, body: &FunctionBody) -> bool {
22    match body.values[value] {
23        ValueDef::Operator(op, ..) if op.is_pure() => true,
24        _ => false,
25    }
26}