Conversation
|
@makachanm with this patch basic blocks should not have branches inside them. Furthermore the function return is automatically generated after the last EndOpcode, regardless where its block is moved. SingleJump block sequences are "connected" together to be a single block (easier to skip them, no need a loop). Hopefully with this patch the basic blocks are correct, and can be moved anywhere. They have m_prevInstr (the instruction before the block) / m_lastInstr (the last instruction of a block) members. I think the block order should be determined by a single algorithm, which uses branch hints (taken / not-taken). |
Thanks for working for this. I'll check it and rework from this. |
Add jumps after conditional branches if not present Add several asserts to check the instruction stream integrity Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
ec810d7 to
5a4ecc5
Compare
|
I think the patch is done. It adds a lot of small reworks, but still keep the instruction list order. |
Add jumps after conditional branches if not present
Add several asserts to check the instruction stream integrity