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 2ebbc78f74
commit 19db81f6a8
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"""