Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
f800609
refactor: rename regions to cfgs and update related tests
zhenrongliew Jul 9, 2026
aed4c23
Refactor terminology from Region to Cfg across the codebase
zhenrongliew Jul 9, 2026
1268950
Add acceptance tests for mixed language interpreter bodies
zhenrongliew Jul 13, 2026
0a27ea6
Refactor interpreter frame structure and update toy language integration
zhenrongliew Jul 15, 2026
162f06c
Merge branch 'rust' into dl/generalize-body
Roger-luo Jul 17, 2026
969914e
refactor: simplify liveness analysis by removing demand pre-pass
zhenrongliew Jul 16, 2026
31bd511
Fixed SSAInfo.uses def-use population at finalize. (#687)
zhenrongliew Jul 22, 2026
e0b99cc
refactor: generalize body handling and update topology queries
zhenrongliew Jul 30, 2026
8bc66df
Refactored the DenseBackwardInterp trait to use point_state and point…
zhenrongliew Jul 30, 2026
e6410e4
refactor: introduce AbstractDiGraphFrame for dependency-ordered graph…
zhenrongliew Jul 30, 2026
2a9e7d6
refactor: enhance body handling and interprocedural analysis in tests
zhenrongliew Jul 30, 2026
e4d50b2
refactor: update frame handling methods for clarity and consistency
zhenrongliew Jul 31, 2026
2b12a2b
refactored topology queries already answered in IR
zhenrongliew Jul 31, 2026
d1801fa
Add call body traversal policy and tests
zhenrongliew Aug 3, 2026
6ec0a31
Decoupled the monolithic trait `ForwardFrameDriver` into smaller trai…
zhenrongliew Aug 3, 2026
a61fb14
Refactor block and graph ownership semantics in IR
zhenrongliew Aug 10, 2026
3979057
Refactor liveness to store both block and statement liveness facts.
zhenrongliew Aug 11, 2026
d423569
Refactor dense backward engine to use scoped fact stores and improve …
zhenrongliew Aug 11, 2026
5d01225
Refactor block predecessor handling to use SmallVec for improved memo…
zhenrongliew Aug 12, 2026
27e901f
Changed to use SmallVec. Liveness Analysis now uses block cursor: Las…
zhenrongliew Aug 12, 2026
f6439fc
Refactor CallContext trait to accept FunctionTarget instead of indivi…
zhenrongliew Aug 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions AGENTS.md

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -115,10 +115,14 @@ kirin-bitwise = { workspace = true }
kirin-cf = { workspace = true }
kirin-cmp = { workspace = true }
kirin-constant = { workspace = true }
kirin-constprop = { workspace = true }
kirin-function = { workspace = true }
kirin-scf = { workspace = true }
kirin-interpreter = { workspace = true, features = ["derive"] }
kirin-test-languages = { workspace = true, features = [
"arith-function-language",
"graph-function-language",
"interpreter",
"bitwise-function-language",
"callable-language",
"namespaced-language",
Expand Down
13 changes: 6 additions & 7 deletions crates/kirin-constprop/src/context.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@

use std::collections::{HashMap, HashSet};

use kirin_interpreter::{CallContext, ContextInsensitive, InterpreterError, WideningStrategy};
use kirin_interpreter::{
CallContext, ContextInsensitive, FunctionTarget, InterpreterError, WideningStrategy,
};
use kirin_ir::{CompileStage, Product, SpecializedFunction};

use crate::ConstPropValue;
Expand Down Expand Up @@ -67,12 +69,9 @@ impl Default for ConstPropContext {
impl CallContext<ConstPropValue> for ConstPropContext {
type Key = (CompileStage, SpecializedFunction, CallCtx);

fn key(
&mut self,
stage: CompileStage,
function: SpecializedFunction,
args: &Product<ConstPropValue>,
) -> Self::Key {
fn key(&mut self, target: &FunctionTarget, args: &Product<ConstPropValue>) -> Self::Key {
let stage = target.stage;
let function = target.function;
let ctx = match all_const(args) {
Some(consts) => {
let admitted = self.admitted.entry((stage, function)).or_default();
Expand Down
Loading