I have been reading about compilers and it is said that doing the data flow analysis in the basic blocks is more optimal.
Sadly, quoting the exact source, would be slightly hard as it is not in English, but a quote from wikipedia can also be used:
Data-flow analysis is the process of collecting information about the way the variables are used, defined in the program. It attempts to obtain particular information at each point in a procedure. Usually, it is enough to obtain this information at the boundaries of basic blocks, since from that it is easy to compute the information at points in the basic block.
Even though, in Wikipedia it is slightly explained, why the basic blocks are the preferred way, I still do not understand the benefits and if it is not obtained from the basic blocks, then from where?