Open mgaudet opened 6 years ago
(If we removed tstart
's use of branch, does that eliminate its usefulness entirely? Should branch
also be removed as part of this?)
(If we removed tstart's use of branch, does that eliminate its usefulness entirely? Should branch also be removed as part of this?)
I believe TR::branch is only used by our transactional memory support, so yes would be my vote.
The
tstart
opcode is used to represent the start of a transaction in ILIt takes the shape of a node with three branch children today:
However, the implementation of tstart can be best described in pseudo C code as:
(there is no default branch here, and note, I may have gotten branch order incorrect)
While investigating another issue (#1565) it has become clear that in terms of semantics, it may be best to covert
tstart
to useCase
children, which are already used intable
andlookup
IL switch opcodes. The Branch opcode has a bit of a murky history, and it seems things have changed since it was first implemented.This change should be testable with Tril