Studying the Solidity optimizer, I found that the assembly code is divided into tags and the optimizer doesn't work between them:
It splits the sequence of instructions into basic blocks at JUMPs and JUMPDESTs.
After reading all the documentation, what I can gather is that the tags are those blocks, but I can't get a clear idea on the following:
- Why the optimisation fails between tags only for storage and memory OP? - Is there some example of an operation optimisation between the tags?
Thanks in advance!