Currently, we split the entry block of a function to be sure to have at least one edge. In fact it's useless since we can add this edge in gcno/gcda without creating it.
There are several pros to do that:
- slightly reduce gcno/gcda size (close to nothing...).
- fix a crash when there are several CU attached to a module (the entry block was splitted several times)
- when using -femit-coverage-data the entry was not splitted since it's currently done when emitting coverage notes, so no instrumentation added when there was only on block.
Nit: I'd keep this the other way around, to have a smaller diff