Build results: qbe
[OK] 425a2ed09c08222e1254d93dba24c7a50e7a08b9
do not account for interferences in phi classes Before this commit, I tried to make sure that two interfering temporaries never ended up in the same phi class. This was to make sure that their register hints were not counterproductively stepping on each other's toes. The idea is fine, but: * the implementation is clumsy because it mixes the orthogonal concepts of (i) interference and (ii) phi classes; * the hinting process in the register allocator is hard to understand because the disjoint-set data structure used for phi classes is cut in arbitrary places. After this commit, the phi classes *really* are phi classes represented with a proper disjoint-set data structure.
OK: build: make
STDOUT
cc main.c
cc util.c
cc parse.c
cc cfg.c
cc mem.c
cc ssa.c
cc alias.c
cc load.c
cc copy.c
cc fold.c
cc live.c
cc spill.c
cc rega.c
cc gas.c
cc amd64/targ.c
cc amd64/sysv.c
cc amd64/isel.c
cc amd64/emit.c
cc arm64/targ.c
cc arm64/abi.c
cc arm64/isel.c
cc arm64/emit.c
ld obj/qbe
STDERR
OK: test: make check
STDOUT
tools/test.sh all
abi1.ssa... [ok]
abi2.ssa... [ok]
abi3.ssa... [ok]
abi4.ssa... [ok]
abi5.ssa... [ok]
abi6.ssa... [ok]
align.ssa... [ok]
collatz.ssa... [ok]
cprime.ssa... [ok]
cup.ssa... [ok]
dark.ssa... [ok]
double.ssa... [ok]
echo.ssa... [ok]
eucl.ssa... [ok]
euclc.ssa... [ok]
fixarg.ssa... [ok]
fpcnv.ssa... [ok]
ldbits.ssa... [ok]
ldhoist.ssa... [ok]
loop.ssa... [ok]
mandel.ssa... [ok]
max.ssa... [ok]
philv.ssa... [ok]
prime.ssa... [ok]
puts10.ssa... [ok]
queen.ssa... [ok]
strcmp.ssa... [ok]
strspn.ssa... [ok]
sum.ssa... [ok]
vararg1.ssa... [ok]
vararg2.ssa... [ok]
All is fine!
STDERR
OK: clean: make clean
STDOUT
rm -fr obj
STDERR