LibreOffice 7.0 Will Prefer Building Its Rendering Code With LLVM's Clang Compiler
With the release of LibreOffice 7.0 in a few months, the open-source office suite will now prefer building at least portions of its code-base with the LLVM Clang compiler over GCC or Microsoft MSVC even if the default compiler is not Clang.
At least as far as the new Skia rendering code is concerned, LibreOffice 7.0+ will try to find and use LLVM Clang even if the default compiler is not Clang.
Collabora developer Luboš Luňák made the change to LibreOffice Git today to prefer building its Skia rendering code with Clang if possible.
Noted in the change, "Skia is optimized to be built with Clang(-cl) and in CPU-based raster mode some operations are several times slower if built with something else (e.g. fmax/fmin do not get optimized to inline assembly). It is enough to select Clang to be installed in the MSVS installer. At this point it unclear how to handle release binaries, if it should work this way and enforced, or maybe Clang could be used for building everything, or maybe some other way."
This change is about Clang offering dramatically faster performance when in its software fallback mode. Skia does support hardware rendering, including LibreOffice 7.0 supporting Vulkan acceleration. So ideally users will not be hitting the CPU-based fallback, but for those on older systems where that will be the case, building the code with Clang at least for the time being is faster than other compilers.
The change to prefer Clang stems from a bug report over slow scrolling performance in Calc. Presumably though the GCC developers will task themselves with the challenge of now trying to better tune their performance to better compete in this area. Clang doing so well with Skia is barely a surprise considering Google is using Clang as their default compiler in production for Skia, Chrome, and other software offerings across platforms.
At least as far as the new Skia rendering code is concerned, LibreOffice 7.0+ will try to find and use LLVM Clang even if the default compiler is not Clang.
Collabora developer Luboš Luňák made the change to LibreOffice Git today to prefer building its Skia rendering code with Clang if possible.
Noted in the change, "Skia is optimized to be built with Clang(-cl) and in CPU-based raster mode some operations are several times slower if built with something else (e.g. fmax/fmin do not get optimized to inline assembly). It is enough to select Clang to be installed in the MSVS installer. At this point it unclear how to handle release binaries, if it should work this way and enforced, or maybe Clang could be used for building everything, or maybe some other way."
This change is about Clang offering dramatically faster performance when in its software fallback mode. Skia does support hardware rendering, including LibreOffice 7.0 supporting Vulkan acceleration. So ideally users will not be hitting the CPU-based fallback, but for those on older systems where that will be the case, building the code with Clang at least for the time being is faster than other compilers.
The change to prefer Clang stems from a bug report over slow scrolling performance in Calc. Presumably though the GCC developers will task themselves with the challenge of now trying to better tune their performance to better compete in this area. Clang doing so well with Skia is barely a surprise considering Google is using Clang as their default compiler in production for Skia, Chrome, and other software offerings across platforms.
23 Comments