1
0
Fork 0
mirror of https://github.com/imjasonh/nescript synced 2026-07-10 09:42:37 +00:00

M2: Add call graph analysis, recursion detection, and optimizer

Analyzer extensions:
- Call graph construction from function bodies and state handlers
- DFS-based recursion detection (direct and mutual) with E0402 errors
- Max call depth computation per entry point with E0401 enforcement
- Function declarations registered as symbols (E0503 for undefined calls)
- Collects calls from all statement/expression types recursively

Optimizer (new module):
- Constant folding: evaluate known-constant arithmetic at compile time
- Dead code elimination: remove ops with unused destination temps
- Both operate per-basic-block in a single pass

171 tests total (22 new: 6 analyzer + 11 IR lowering + 5 optimizer)

https://claude.ai/code/session_01W6eQFStA66EuMKHUFo2rx3
This commit is contained in:
Claude 2026-04-11 23:32:12 +00:00
parent 664ccc05db
commit 192d9c5c3d
No known key found for this signature in database
9 changed files with 914 additions and 23 deletions

View file

@ -2,8 +2,10 @@ pub mod analyzer;
pub mod asm;
pub mod codegen;
pub mod errors;
pub mod ir;
pub mod lexer;
pub mod linker;
pub mod optimizer;
pub mod parser;
pub mod rom;
pub mod runtime;