I have not seen a compiler that incidentally ICEs (crashes) more than IAR does (experience from c. 5 yrs ago.) Early-days rustc may come close, but experience is likely skewed by my perspective as a rustc contributor too. And then we were always using IAR in a way that disabled all and every optimization; if enabling them did not lead to a compiler imploding, the compiler would produce invalid machine code even for t…
Practical comparison of ARM compilers
11–17 of 17 posts
Re: Practical comparison of ARM compilers
#12I've been using GCC & friends for a few years now, building mostly for the Cortex-M23. GDB has been a godsend, with a J-Link you basically have as much runtime debugging support as you would on a hosted system. This is especially helpful in cases where logging would slow down the operation of the system too much. We're also very successfully using CMake as our build system, as opposed to Make itself. It lets you orga…
Re: Practical comparison of ARM compilers
#13I've been using GCC & friends for a few years now, building mostly for the Cortex-M23. GDB has been a godsend, with a J-Link you basically have as much runtime debugging support as you would on a hosted system. This is especially helpful in cases where logging would slow down the operation of the system too much. We're also very successfully using CMake as our build system, as opposed to Make itself. It lets you orga…
Re: Practical comparison of ARM compilers
#14Re: Practical comparison of ARM compilers
#15For Armv8.M and MVE, I expect that Clang and Arm Compiler for Embedded, which is Clang/LLVM based, generates much better code than GCC or IAR. Regarding code size: the common pitfall is -Os for GCC and -Oz for Clang based compilers to optimise for minimum code size.
Does the Arm Compiler for Embedded have significant changes to upstream clang? I'm somewhat concerned that clang not being GPL may eventually become unfortunate for embedded...
For example any improvements that may reveal NDA stuff from their consoles never gets upstream.
Re: Practical comparison of ARM compilers
#16Earlier quoted context omitted.
Does the Arm Compiler for Embedded have significant changes to upstream clang? I'm somewhat concerned that clang not being GPL may eventually become unfortunate for embedded...
It isn't as if Sony and Nintendo are contributing all their changes to upstream. For example any improvements that may reveal NDA stuff from their consoles never gets upstream.
Re: Practical comparison of ARM compilers
#17Earlier quoted context omitted.
It isn't as if Sony and Nintendo are contributing all their changes to upstream. For example any improvements that may reveal NDA stuff from their consoles never gets upstream.
For games, most performance critical code probably does not run on the CPU but on the GPU. I believe they use pretty standard open source CPU compilers and Sony e.g. do contribute to LLVM.
How do you think shader code gets compiled into GPGPU machine code?