index
:
~wrmr/lang
master
Unnamed repository; edit this file 'description' to name the repository.
Worm Heamer
summary
refs
log
tree
commit
diff
log msg
author
committer
range
Age
Commit message (
Collapse
)
Author
2025-08-05
fix params being pushed in reverse order
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
test up
WormHeamer
2025-08-05
add N_NONE
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
so constants can still be shuffled from left to right, not(X) from right to left, but the regrouping optimizations don't apply
2025-08-05
tragic realization: = and <> aren't communative at all
WormHeamer
i assumed they were because it kinda makes sense to write something like "a = b = c", but "a = (b = c)" and "(a = b) = c" are very very different expressions. whoops!
2025-08-05
allow `proc main(a, b, c i64)` and such
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
color nodes by modulo of ID
WormHeamer
2025-08-04
another communative operator peephole
WormHeamer
2025-08-04
add projection nodes, fix peephole optimization
WormHeamer
2025-08-03
comment out some debug printfs
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
2025-08-03
shift operators, deduplicate integer constant nodes
WormHeamer
2025-08-03
add shift and comparison operators
WormHeamer
2025-08-03
add comparison operators, single-line comments
WormHeamer
2025-08-02
better error reporting
WormHeamer
2025-08-02
preliminary let bindings
WormHeamer
2025-08-02
some junk
WormHeamer
2025-08-02
bunch of stuff to make error messages look more like gcc lol
WormHeamer
2025-08-02
more peepholing
WormHeamer
2025-08-02
highly speculative peephole stuff
WormHeamer
2025-08-02
dot graph visualization when running
WormHeamer
2025-08-02
whole bunch of graph stuff, fixing up, basic arithmetic peepholes...
WormHeamer
2025-08-01
begin working on graph IR
WormHeamer
2025-08-01
add comments
WormHeamer
2025-07-31
initial commit
WormHeamer