On Tuesday 23 of November 2021, Michael Meeks wrote: > On 22/11/2021 16:28, Arnaud Versini wrote: > > There is no > > significant difference between both clang builds (changing lib C++ from > > libstdc++ to libc++) but gcc is slower than clang. Of course all builds > > don't use system libraries in this case to compare between lib C++, and > > builds are optimised and use LTO. > > Looks interesting. > > Lubos - what are our build defaults currently and do you have thoughts > on changing them ? it would be great to poke at Arnaud's blog / work > as/when it gets published =) That decision is not really up to me. AFAIK projects like Firefox or Chromium build exclusively using Clang. I wouldn't mind using Clang for everything, but I don't know how others would see that. > > OpenSUSE 7.2 Clang + libc++ Clang + std Gcc + std > > Run 1 50,923045275 45,456441587 45,878275287 49,487550577 Do you have more tests than this one? With the data you've provided that's good enough as an indicator that it should be investigated, but not much more, as there can be various factors that cause such results. Maybe Clang just happened to optimize better one function that's called often in this case, maybe one of the compilers is older than the older, maybe whatever else. Can you try more different tests? > > I also noticed that libengine12 is really bigger with GCC but I've not > > have that data on me now. > > That's interesting too - how much bigger? I would assume that we use > -Os to optimize for size as well as for speed: since huge binaries may > be more optimal in theory but can be much slower to load and kill your > cache in practice: but it sounds like this is some combination of bigger > & slower. We don't use -Os, at least my local optimized build doesn't. A bunch of solenv/gbuild/platform files do set it, but it doesn't get selected here. And if it's because my build uses Clang and those -Os get used only with GCC and not Clang, then incidentally that would solve the whole mystery. Checking what flags get used for both builds is certainly something that should be done. Arnaud? And according to logs those -Os come from at least 10 years ago, so if the idea is to use them, maybe it would be a good idea to re-check the effect they have. I'm personally sceptical that -Os would help on the desktop. > I wonder what the compile option difference is. Theoretically there shouldn't be any difference related to performance. There are differences in handling PCHs, some debuginfo options may be different and stuff like that, but AFAIK performance flags should be the same. Although, as said above, maybe that's not the case. > > I hope this could be an idea of improvement ! Next crazy test I would > > like to do is between MSVC and clang on windows ! But it seems harder ! Stephan Bergmann does clang-cl builds on Windows, so it should work, although I don't remember how difficult it is to set up. -- Luboš Luňák l.lunak@xxxxxxxxxxxxx