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-10-21
cleanup
WormHeamer
2025-10-21
scratch arena reset has to happen in parse_proc, not parse_block
WormHeamer
2025-10-21
almost there...
WormHeamer
2025-09-02
begin work on tracking scope changes instead of merging
WormHeamer
2025-08-31
thoughts about arenas
WormHeamer
2025-08-30
separate IR graph parts of Proc into a Graph struct
WormHeamer
2025-08-30
fix clang unsequenced warning
WormHeamer
2025-08-30
old, new -> oldsz, newsz
WormHeamer
2025-08-30
add xar.h
WormHeamer
2025-08-27
add scratch arena to Proc
WormHeamer
2025-08-22
bitshift zero peepholes, recognize known (a = b) <> (a <> b) etc
WormHeamer
2025-08-11
replace separate type checks with non-NULL parse_expr twant
WormHeamer
2025-08-10
it's commutative, not communative
WormHeamer
2025-08-10
add idempotent optimizations
WormHeamer
2025-08-10
idempotent operation (& and |) peepholes
WormHeamer
2025-08-10
remove some debug printfs
WormHeamer
2025-08-10
add peephole op(op(X,Y) | op(Y,X), X) -> op(op(X, X), Y)
WormHeamer
2025-08-10
allow func foo T {}
WormHeamer
2025-08-10
specify that < and > are incompatible with =
WormHeamer
2025-08-10
reenable region peepholes
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
thinking about known-relations
WormHeamer
2025-08-10
remove some commented out code, unused var
WormHeamer
2025-08-10
convert node_op_* to just NodeMask #defines
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-08
some comments &c
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
no_opt = 0
WormHeamer
2025-08-07
add if statements
WormHeamer
2025-08-05
more goals
WormHeamer
2025-08-05
write some stuff about language goals
WormHeamer
2025-08-05
more convenience macros
WormHeamer
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!
[next]