Finally I add registers tracking in my perl sass disasm
Now I can do some full-featured analysis of sass - like find candidates pairs of instruction to swap/run them in so called "dual" mode - and all of this in barely 1200 LoC of perl code
Let's think what must mean for couple of instructions to be fully independent:
- they should belong to the same block - like in case of
IADD R8, -R3, RZinstructions should be treated as located in different blocks
.L_x_14:
FMUL R11, R3.reuse, R3 - they should not depend from the same barriers
- they should not update registers used by each other
So I implemented building of code-flow graph, barriers & registers tracking