Hello Sergey,
Skipping unneeded code, and not even compiling it, could make tcc a bit faster. However, as test 78 indicates, any implementation of tcc that skips blocks will need some logic to detect the presence of labels.
For example, if gvtst detected a static value that would be false, it could compile the code separately. Then, during the compilation of that block, if it detected a label, it could add what it compiled the code before moving on. Otherwise (since there would be no way to get to the code), it could discard it. The problem with such an approach is that tcc will run slower (maybe only marginal, but slower nonetheless). The resulting object file will be smaller, but that's not tcc's primary aim.
If you want the feature without the compilation overhead, a flag might do it, but I don't like the global nature of that effect. An alternative is to have a pragma that can be applied and lifted locally. The Perl programmer in me much prefers the pragma approach, but others may dissent.