The rules currently specify that the only non-default switch that is allowed is "enable optimizations" and if such switch doesn't exist, use "optimize for size". I wrote it that way to avoid getting into grey areas and it's closest to what is canonical (what an average developer will get).
It avoids any grey areas, but on the other hand, compilers that only expose options to optimize for size (MSVC and Zig come to mind) get essentially an unfair advantage in the scoreboard.
I'm thinking to loosen the restriction to say "if optimize for size master switch exists, you can enable it".
The theory is that optimize for size should not be making functional compromises, only throughput compromises and it is what a developer in the language would do first if they care about size, without losing much of what the language/runtime library advertises.
Another alternative is to change the rule to say "on a compiler that doesn't have a master optimize switch, you need to optimize for runtime throughput" (essentially penalize those compilers that don't have blended optimization modes instead of giving them an advantage).
Another alternative is to do nothing and leave everything as is.
The rules currently specify that the only non-default switch that is allowed is "enable optimizations" and if such switch doesn't exist, use "optimize for size". I wrote it that way to avoid getting into grey areas and it's closest to what is canonical (what an average developer will get).
It avoids any grey areas, but on the other hand, compilers that only expose options to optimize for size (MSVC and Zig come to mind) get essentially an unfair advantage in the scoreboard.
I'm thinking to loosen the restriction to say "if optimize for size master switch exists, you can enable it".
The theory is that optimize for size should not be making functional compromises, only throughput compromises and it is what a developer in the language would do first if they care about size, without losing much of what the language/runtime library advertises.
Another alternative is to change the rule to say "on a compiler that doesn't have a master optimize switch, you need to optimize for runtime throughput" (essentially penalize those compilers that don't have blended optimization modes instead of giving them an advantage).
Another alternative is to do nothing and leave everything as is.