The register allocator pops from the unhandled-intervals and unhandled-sync-points heaps. If two live intervals share the same start slot, then they can be popped in either order leading to differently generated code. So instead use one heap (unhandled-min-heap) and both the start and end slot as the heap key to resolve tie-breakers |
||
---|---|---|
.. | ||
cfg | ||
codegen | ||
constants | ||
crossref | ||
errors | ||
test | ||
tests | ||
threads | ||
tree | ||
utilities | ||
authors.txt | ||
compiler-docs.factor | ||
compiler.factor | ||
summary.txt | ||
tags.txt |