| Age | Commit message (Expand) | Author |
| 2025-10-28 | Merge branch 'dev' | WormHeamer |
| 2025-10-28 | remove Node.refs | WormHeamer |
| 2025-10-28 | speculative change to node_newv() to reduce fragmentation | WormHeamer |
| 2025-10-27 | fix a bunch of warnings | WormHeamer |
| 2025-10-27 | small size optimization on <= 1-node NodeList | WormHeamer |
| 2025-10-27 | fix node_set_in() setting always index 0 | WormHeamer |
| 2025-10-27 | begin work on nodelists | WormHeamer |
| 2025-08-30 | separate IR graph parts of Proc into a Graph struct | WormHeamer |
| 2025-08-27 | add scratch arena to Proc | WormHeamer |
| 2025-08-10 | better error reporting around uninitialized values | WormHeamer |
| 2025-08-10 | fix peephole bug (communative(phi(a,b), phi(a,b)) =/= communative(a,b)) | WormHeamer |
| 2025-08-10 | add type-specifiers to let, N_UNINIT for uninitialized values | WormHeamer |
| 2025-08-10 | separate peephole optimization out | WormHeamer |
| 2025-08-09 | add N_DEAD node type, and assert to help prevent use-after-free | WormHeamer |
| 2025-08-08 | slightly tweak node_set_in | WormHeamer |
| 2025-08-08 | attempt at optimizing regions after graph generation.... | WormHeamer |
| 2025-08-08 | rework some stuff, maybe bugfix, loosen associative typechecking | WormHeamer |
| 2025-08-07 | hopefully make multiple returns form sensible graphs | WormHeamer |
| 2025-08-07 | i thiiiink if statement peepholes work now? | WormHeamer |
| 2025-08-07 | fix region nodes being culled prematurely | WormHeamer |
| 2025-08-07 | preliminary peephole optimization of if statements | WormHeamer |
| 2025-08-07 | add if statements | WormHeamer |
| 2025-08-05 | more convenience macros | WormHeamer |
| 2025-08-05 | cmp(a - b, b - a) -> cmp(a, b) [dubious] | WormHeamer |
| 2025-08-05 | add a bunch of rules to simplify comparisons | WormHeamer |
| 2025-08-05 | better node_equiv for associative ops; not(cmp(a,b)) -> oppcmp(a,b) | WormHeamer |
| 2025-08-05 | convert divisions to right-shifts | WormHeamer |
| 2025-08-05 | correction! equality is communative, but not _associative_ | WormHeamer |
| 2025-08-05 | tragic realization: = and <> aren't communative at all | WormHeamer |
| 2025-08-05 | convert a + -lit -> a - lit; some add/sub inequivalence identities | WormHeamer |
| 2025-08-05 | known-not-equivalent identities: a [+/-] lit[x, x =/= 0] | WormHeamer |
| 2025-08-04 | actually do op(not(X), Y) -> op(Y, not(X)) to avoid looping | WormHeamer |
| 2025-08-04 | shuffle communative op(not(X), Y) -> op(Y, not(X)) | WormHeamer |
| 2025-08-04 | NODE_KEEP macro | WormHeamer |
| 2025-08-04 | fix bug of lhs getting culled if same node optimized out of rhs | WormHeamer |
| 2025-08-04 | make NodeInputs statically sized, peephole a + ~a and a ^ ~a | WormHeamer |
| 2025-08-04 | stuffs | WormHeamer |
| 2025-08-04 | fix communative peepholes trampling type boundaries | WormHeamer |
| 2025-08-04 | add optimizations based on only partially known values | WormHeamer |
| 2025-08-04 | use lisp acronyms to express peephole optimizations | WormHeamer |
| 2025-08-04 | another communative operator peephole | WormHeamer |
| 2025-08-04 | add projection nodes, fix peephole optimization | WormHeamer |
| 2025-08-03 | add booleans and comparison operators | WormHeamer |
| 2025-08-03 | expand and clarify type system, fix double-free of nodes | WormHeamer |
| 2025-08-03 | add assignment statements | WormHeamer |
| 2025-08-03 | factor out node stuff into ir.c & ir.h | WormHeamer |