Hi, On Mon, Jan 07, 2019 at 11:14:12AM -0500, Felipe Gohring wrote: > Now, my question is related to the generated code. When using V6.3, I had > files of about 10k. After upgrading to V8.2, the very same file has more > than 40k. Why is that? Please keep in mind that I am using exactly the same > compilation flags (*-m32 -mmfpgpr -mabi=spe -mfloat-gprs=double -nostdlib > -ffreestanding -fno-builtin -O0 -g3 -std=c11 -Wno-packed-bitfield-compat > -Wall -Werror*) and source code, the only thing changing is the compiler > version. I wouldn't mind having a memory footprint a bit bigger, but the > overhead added is beyond acceptable. If you care about code size, you want -O1 or -Os, not -O0. And why are you using -mmfpgpr? That option doesn't do anything for anything targetting SPE, but for some reason many people use it? > Further, besides the crazy sizes, some applications are breaking when using > the updated compiler version, even though I am not having any warning > neither error (*-Wall -Werror)*. How come, as the ABI should not be broken > even with a different compiler version? Use -Wall -Wextra instead... But your code may be doing many more things wrong than those warnings can detect. You could try -fno-strict-aliasing for example. Segher