[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Minios-devel] [UNIKRAFT PATCHv4 11/43] arch/arm64: Add processor optimization GCC flags for arm64



Hi Julien,

> -----Original Message-----
> From: Julien Grall <julien.grall@xxxxxxx>
> Sent: 2018年7月8日 5:59
> To: Wei Chen <Wei.Chen@xxxxxxx>; minios-devel@xxxxxxxxxxxxxxxxxxxx;
> simon.kuenzer@xxxxxxxxx
> Cc: Kaly Xin <Kaly.Xin@xxxxxxx>; nd <nd@xxxxxxx>
> Subject: Re: [Minios-devel] [UNIKRAFT PATCHv4 11/43] arch/arm64: Add processor
> optimization GCC flags for arm64
> 
> Hi Wei,
> 
> On 07/06/2018 10:03 AM, Wei Chen wrote:
> > We added serval arm64 CPU models in support list. In this patch,
> 
> s/serval/several/
> 

Oh, thanks again!

> Cheers,
> 
> > we check the GCC version and add optimization GCC flags for
> > selected processor.
> >
> > Current supported arm64 CPU models:
> > native, generic, cortex-a53, cortex-a57, cortex-a72, cortex-a73,
> > cortex-a55 and cortex-a75.
> >
> > Signed-off-by: Wei Chen <Wei.Chen@xxxxxxx>
> > ---
> >   arch/arm/arm64/Compiler.uk |  6 ++++++
> >   arch/arm/arm64/Makefile.uk | 43 ++++++++++++++++++++++++++++++++++++++
> >   2 files changed, 49 insertions(+)
> >   create mode 100644 arch/arm/arm64/Compiler.uk
> >   create mode 100644 arch/arm/arm64/Makefile.uk
> >
> > diff --git a/arch/arm/arm64/Compiler.uk b/arch/arm/arm64/Compiler.uk
> > new file mode 100644
> > index 0000000..4572013
> > --- /dev/null
> > +++ b/arch/arm/arm64/Compiler.uk
> > @@ -0,0 +1,6 @@
> > +# set cross compile
> > +ifeq ($(CONFIG_CROSS_COMPILE),)
> > +ifneq ($(CONFIG_UK_ARCH),$(HOSTARCH))
> > +   CONFIG_CROSS_COMPILE := aarch64-linux-gnu-
> > +endif
> > +endif
> > diff --git a/arch/arm/arm64/Makefile.uk b/arch/arm/arm64/Makefile.uk
> > new file mode 100644
> > index 0000000..f6aeeac
> > --- /dev/null
> > +++ b/arch/arm/arm64/Makefile.uk
> > @@ -0,0 +1,43 @@
> > +ASFLAGS  += -D__ARM_64__
> > +CFLAGS   += -D__ARM_64__ -fms-extensions
> > +CXXFLAGS += -D__ARM_64__ -fms-extensions
> 
> I would rather avoid to define yet another macro and re-use __aarch64__
> defined by the aarch64 compiler.

It does make sense. But I am not sure if we keep __ARM_64__ here can improve
the compatibility for other libraries. Because for internal libraries we can
__aarch64__ uniformly. But for external libraries, we change them to __aarch64__
Easily.

@Simon Kuenzer (simon.kuenzer@xxxxxxxxx) will external libraries use
The flags that are defined here?

> 
> > +
> > +# GCC support -mcpu=native for arm64 from 6.0
> > +ifeq ($(CONFIG_MARCH_ARM64_NATIVE),y)
> > +$(eval $(call set_flags_if_gcc_version_ge,6,0,-mcpu=native))
> > +endif
> > +
> > +# GCC support -mcpu=generic for arm64 from 4.8
> > +ifeq ($(CONFIG_MARCH_ARM64_GENERIC),y)
> > +$(eval $(call set_flags_if_gcc_version_ge,4,8,-march=armv8-a -mcpu=generic
> -mtune=generic))
> > +endif
> > +
> > +# GCC support -mcpu=cortex-a53 for arm64 from 4.9
> > +ifeq ($(CONFIG_MARCH_ARM64_CORTEXA53),y)
> > +$(eval $(call set_flags_if_gcc_version_ge,4,9,-march=armv8-a -mcpu=cortex-
> a53 -mtune=cortex-a53))
> > +endif
> > +
> > +# GCC support -mcpu=cortex-a57 for arm64 from 4.9
> > +ifeq ($(CONFIG_MARCH_ARM64_CORTEXA57),y)
> > +$(eval $(call set_flags_if_gcc_version_ge,4,9,-march=armv8-a -mcpu=cortex-
> a57 -mtune=cortex-a57))
> > +endif
> > +
> > +# GCC support -mcpu=cortex-a72 for arm64 from 5.0
> > +ifeq ($(CONFIG_MARCH_ARM64_CORTEXA72),y)
> > +$(eval $(call set_flags_if_gcc_version_ge,5,0,-march=armv8-a -mcpu=cortex-
> a72 -mtune=cortex-a72))
> > +endif
> > +
> > +# GCC support -mcpu=cortex-a73 for arm64 from 7.0
> > +ifeq ($(CONFIG_MARCH_ARM64_CORTEXA73),y)
> > +$(eval $(call set_flags_if_gcc_version_ge,7,0,-march=armv8-a -mcpu=cortex-
> a73 -mtune=cortex-a73))
> > +endif
> > +
> > +# GCC support -mcpu=cortex-a55 for arm64 from 8.0
> > +ifeq ($(CONFIG_MARCH_ARM64_CORTEXA55),y)
> > +$(eval $(call set_flags_if_gcc_version_ge,8,0,-march=armv8.2-a -
> mcpu=cortex-a55 -mtune=cortex-a55))
> > +endif
> > +
> > +# GCC support -mcpu=cortex-a75 for arm64 from 8.0
> > +ifeq ($(CONFIG_MARCH_ARM64_CORTEXA75),y)
> > +$(eval $(call set_flags_if_gcc_version_ge,8,0,-march=armv8.2-a -
> mcpu=cortex-a75 -mtune=cortex-a75))
> > +endif
> >
> 
> Cheers,
> 
> --
> Julien Grall
> 
> --
> Julien Grall
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.