[U-Boot] [PATCH] powerpc/mpc85xx:Add GCC flag -fno-delete-null-pointer-checks

Kushwaha Prabhakar prabhakar at freescale.com
Tue Jun 30 06:18:25 CEST 2015


Hi Simon, Tom,

-fdelete-null-pointer-checks flag controls global dataflow analyses and  eliminate useless checks for null pointers; It assume that if a pointer is  checked after it has already been dereferenced, it cannot be null.  This flag is enabled by default.
 gcc v4.9 has more optimizations added to this option. Hence it is very  aggressive with GCC v4.9 series. It is also well documented in the GCC v4.9 release notes:
https://gcc.gnu.org/gcc-4.9/porting_to.html

There is possibility after moving to gcc-4.9 some platform may/may not work properly. 
I tested this patch for freescale powerpc platforms. 
But It may needs be taken care by all architecture like ARM, powerpc. If this is the case; this flag should be in top level Makefile (not sure) 

Regards,
Prabhakar

> -----Original Message-----
> From: Wood Scott-B07421
> Sent: Wednesday, May 20, 2015 11:04 PM
> To: Sun York-R58495
> Cc: Kushwaha Prabhakar-B32579; u-boot at lists.denx.de; Dharmakan Rohit-
> B30502
> Subject: Re: [PATCH] powerpc/mpc85xx:Add GCC flag -fno-delete-null-
> pointer-checks
> 
> On Wed, 2015-05-20 at 10:10 -0700, York Sun wrote:
> > Scott,
> >
> > Please comment on this patch.
> >
> > York
> 
> I think this should be set treewide (as Linux does), not just for mpc85xx.  But
> use cc-option to make sure that the compiler supports the option.
> 
> -Scott
> 
> >
> > On 05/06/2015 11:07 PM, Prabhakar Kushwaha wrote:
> > >  -fdelete-null-pointer-checks flag controls global dataflow analyses
> > > and  eliminate useless checks for null pointers; It assume that if a
> > > pointer is  checked after it has already been dereferenced, it cannot be
> null.
> > >  This flag is enabled by default.
> > >
> > >  gcc v4.9 has more optimizations added to this option. Hence it is
> > > very  aggressive with GCC v4.9 series. Add
> > > -fno-delete-null-pointer-checks to  disable the optimization
> > >
> > > Signed-off-by: Rohit Dharmakan <rohitarulraj at freescale.com>
> > > Signed-off-by: Prabhakar Kushwaha <prabhakar at freescale.com>
> > > ---
> > >  arch/powerpc/cpu/mpc85xx/config.mk | 3 ++-
> > >  1 file changed, 2 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/arch/powerpc/cpu/mpc85xx/config.mk
> > > b/arch/powerpc/cpu/mpc85xx/config.mk
> > > index 72c964c..2aedd24 100644
> > > --- a/arch/powerpc/cpu/mpc85xx/config.mk
> > > +++ b/arch/powerpc/cpu/mpc85xx/config.mk
> > > @@ -5,7 +5,8 @@
> > >  # SPDX-License-Identifier:	GPL-2.0+
> > >  #
> > >
> > > -PLATFORM_CPPFLAGS += -Wa,-me500 -msoft-float -mno-string
> > > +PLATFORM_CPPFLAGS += -Wa,-me500 -msoft-float -mno-string \
> > > +					-fno-delete-null-pointer-checks
> > >
> > >  # -mspe=yes is needed to have -mno-spe accepted by a buggy GCC;  #
> > > see "[PATCH,rs6000] make -mno-spe work as expected" on
> > >
> 



More information about the U-Boot mailing list