Weirdo gcc 4.3.x behaviour

Will Deacon will.deacon at arm.com
Mon Nov 22 08:12:35 EST 2010


Hi Russell,

> Has anyone else seen weird behaviour from the gcc 4.3 branch?
> 
> I've tried gcc-4.3.2 + patch and also gcc-4.3.5, both of which behave
> differently with this change in the kernel:
> 
> (asm-generic/pgtable-nopud.h)
> static inline int pgd_none(pgd_t pgd)           { return 0; }
> static inline int pgd_bad(pgd_t pgd)            { return 0; }
> static inline int pgd_present(pgd_t pgd)        { return 1; }
> 
> and subsequently adding:
> +#define pgd_none(pgd)          0
> +#define pgd_bad(pgd)           0
> +#define pgd_present(pgd)       1
> 
> This causes completely unrelated functions to be optimized differently,
> as can be seen via the bloat-o-meter:

[...]

If you mail me the smallest diff to the kernel which causes this to
happen along with the .s/.i files (gcc --save-temps) for the file that
is changing then I'll pass the information on to the compiler guys at
ARM.

Thanks,

Will






More information about the linux-arm-kernel mailing list