2 bug fixes in rega
commitce0ab53ed73fb24f9537cab762467efad56f2664
authorQuentin Carbonneaux <quentin@c9x.me>
Wed, 6 Feb 2019 07:34:51 +0000 (6 08:34 +0100)
committerQuentin Carbonneaux <quentin@c9x.me>
Wed, 6 Feb 2019 08:02:25 +0000 (6 09:02 +0100)
treef8fb8d9da412938e1d66d7fc2b7a7f98f7a64f19
parent834b5cb08bbf0f4fbc1992a72327dfc2c0a31796
2 bug fixes in rega

The worst one was that "part 3" of rega()
could break the critical invariant that
two interferring temporaries get assigned
different registers.  This is fixed by
being careful when changing the register
of a temporary based on predecessor
blocks.

Thanks to Michael Forney for reporting
these bugs and helping with the analysis.
rega.c
test/rega1.ssa [new file with mode: 0644]