I wouldn't say any of the compilers runs circles around another in general
There is also a tendency for, whatever compiler you used mainly while developing your thing, it appears the best since you have been tweaking for that target the whole time.
You can also look at the flags and the different optimizations you can turn on and off.
MSVC had some issues with C++ compatibility (a long time ago) but overall it is not bad. A compiler that can compile a whole operating system probably has most of its issues ironed out.
That's still black box testing. There ~may be~ almost certainly is hidden state that could mean that the optimization you expect to be applied is not (or an optimization is misapplied) under certain circumstances, and you can't/won't discover this in advance due to those conditions.
> A compiler that can compile a whole operating system probably has most of its issues ironed out.
History has shown this to be mostly wrong, given how many critical bugs have been discovered in GCC since it was capable of compiling linux
Then I actually had to test that working on Envoy proxy. I was disappointed to get utterly incomprehensible error messages. I'm "GCC-by-default", so a coworker suggested I try switching to clang++... and sure enough, clang++ gave me decent error messages.
Competition has definitely served us well
I personally tried to convert one of them but damn is it hard. bring out all the bugs!
> Reload is the GCC equivalent of Satan. See [gccsource:reload.c], [gccsource:reload1.c], and [gccsource:reload.h] if you have a brave soul.
https://gcc.gnu.org/wiki/reload