Implemented several branching instructions, added some optimizations to the BTrue and BFalse roots, and added some unit tests for these optimizations.
Unfortunately, when testing this I discovered that while the optimizations do work, they don't actually appear in the generated IL. This is because the IL is not doing this:
So none of the optimizations I've written actually do anything at the moment 😅
Changing the optimization function to remove the unnecessary pushes and pops from the stack is a bit more invasive, so I might work on that in another PR.
Let me know if there's anything I should change or work on!
Implemented several branching instructions, added some optimizations to the BTrue and BFalse roots, and added some unit tests for these optimizations.
Unfortunately, when testing this I discovered that while the optimizations do work, they don't actually appear in the generated IL. This is because the IL is not doing this:
Instead it's doing this:
So none of the optimizations I've written actually do anything at the moment 😅
Changing the optimization function to remove the unnecessary pushes and pops from the stack is a bit more invasive, so I might work on that in another PR.
Let me know if there's anything I should change or work on!
Resolves #44
Resolves #43