Iteratively split EBB arguments.

When the legalizer splits a value into halves, it would previously stop
if the value was an EBB argument. With this change, we also split EBB
arguments and iteratively split arguments on branches to the EBB.

The iterative splitting stops when we hit the entry block arguments or
an instruction that isn't one of the concatenation instructions.
This commit is contained in:
Jakob Stoklund Olesen
2017-03-21 14:38:42 -07:00
parent d32c19c81d
commit 272df6489c
4 changed files with 187 additions and 10 deletions

View File

@@ -44,7 +44,7 @@ jump = Instruction(
EBB arguments. The number and types of arguments must match the
destination EBB.
""",
ins=(EBB, args), is_terminator=True)
ins=(EBB, args), is_branch=True, is_terminator=True)
brz = Instruction(
'brz', r"""