summaryrefslogtreecommitdiff
path: root/ir.c
AgeCommit message (Expand)Author
2025-08-07add if statementsWormHeamer
2025-08-05more convenience macrosWormHeamer
2025-08-05cmp(a - b, b - a) -> cmp(a, b) [dubious]WormHeamer
2025-08-05add a bunch of rules to simplify comparisonsWormHeamer
2025-08-05better node_equiv for associative ops; not(cmp(a,b)) -> oppcmp(a,b)WormHeamer
2025-08-05convert divisions to right-shiftsWormHeamer
2025-08-05correction! equality is communative, but not _associative_WormHeamer
2025-08-05tragic realization: = and <> aren't communative at allWormHeamer
2025-08-05convert a + -lit -> a - lit; some add/sub inequivalence identitiesWormHeamer
2025-08-05known-not-equivalent identities: a [+/-] lit[x, x =/= 0]WormHeamer
2025-08-04actually do op(not(X), Y) -> op(Y, not(X)) to avoid loopingWormHeamer
2025-08-04shuffle communative op(not(X), Y) -> op(Y, not(X))WormHeamer
2025-08-04NODE_KEEP macroWormHeamer
2025-08-04fix bug of lhs getting culled if same node optimized out of rhsWormHeamer
2025-08-04make NodeInputs statically sized, peephole a + ~a and a ^ ~aWormHeamer
2025-08-04stuffsWormHeamer
2025-08-04fix communative peepholes trampling type boundariesWormHeamer
2025-08-04add optimizations based on only partially known valuesWormHeamer
2025-08-04use lisp acronyms to express peephole optimizationsWormHeamer
2025-08-04another communative operator peepholeWormHeamer
2025-08-04add projection nodes, fix peephole optimizationWormHeamer
2025-08-03add booleans and comparison operatorsWormHeamer
2025-08-03expand and clarify type system, fix double-free of nodesWormHeamer
2025-08-03add assignment statementsWormHeamer
2025-08-03factor out node stuff into ir.c & ir.hWormHeamer