Commit Graph
7 Commits
Author SHA1 Message Date
Ryan Houdek 6dc7d2e679 Extends IR Validation to check exit to be correct
Checks to ensure the last op in a block is EndBlock.
Checks to ensure the last instruction before that one is one of the ops
that exit correctly. So ExitFunction, Jump, CondJump, or Break.
2020-03-06 07:55:45 +02:00
Ryan Houdek f8b858e7fc Removes the EndFunction IR Op 2020-03-06 07:55:45 +02:00
Ryan Houdek b199ce70e9 Changes over IRValidation to the new format.
We still can't pass this validation pass
2020-03-06 07:55:37 +02:00
Ryan Houdek c105c52d67 Changes IRValidation to use the new IR::GetArgs function. 2020-03-06 07:55:34 +02:00
Ryan Houdek 199cfd76d8 Refactor IR and other changes that are hard to split
I had to change how blocks are represented to make it easier to parse
This required a fairly substantial refactor that makes it so blocks are
represented differently and we can walk them sequentially.

This will make future analysis easier to deal with.
Had to rewrite the passes and core's parsing of the IR afterwards.

Moved RA in to a optimization pass to be shared between the JIT backends
This works because x86-64 and AArch64 RA can be identical.

Still doesn't support PHI nodes or spilling correctly, this is the first
step in the process of getting there.
2020-03-06 07:55:13 +02:00
Ryan Houdek 8c8be231d8 Cleanup some ugly usage of OrderedNode's NodeOffset
ID() gives us the clean ID, no need to calculate it manually
2020-03-06 07:50:15 +02:00
Ryan Houdek 7252050e42 Initial commit 2020-03-06 07:48:39 +02:00