On Tue, May 19, 2020 at 11:40 PM H.J. Lu <hjl.to...@gmail.com> wrote:

> > > > > > > > I will take a look to see if we share the same CPU detection 
> > > > > > > > code between
> > > > > > > > libgcc and config/i386/driver-i386.c.
> > > > > > >
> > > > > > > I don't think it will bring any benefit, this is mainly one huge
> > > > > > > switch statement that maps to different stuff in libgcc and
> > > > > > > driver-i386.
> > > > > >
> > > > > > libgcc and config/i386/driver-i386.c differ even before my patch.
> > > > > > I think we can do better.
> > > > > >
> > > > >
> > > > > Move cpuinfo.h from libgcc to common/config/i386 so that get_intel_cpu
> > > > > can be shared by libgcc, GCC driver, gcc.target/i386/builtin_target.c
> > > > > and libgfortran to detect the specific type of Intel CPU.  Update
> > > > > libgfortran to use has_cpu_feature to detect x86 CPU features.
> > > > >
> > > > > Tested on Linux/x86 and Linux/x86-64.  OK for master?
> > > >
> > > > Handling only Intel targets and not others is a sure way for patch to
> > > > be ignored.
> > > >
> > >
> > > Here is the updated patch to cover AMD CPU.  It also fixes:
> > >
> > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95212
> > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95220
> > >
> > > OK for master?
> >
> > Huh... I didn't think the solution will be this messy... I have to
> > rethink the approach a bit.
>
> That is what will happen when we have the same info in more than one place
> There should only one place for CPU info.

Looking at the patch, it is clear that cpuinfo.c and driver-i386.c
should stay apart. They are two different things, and they are
orthogonal to each other; one can be updated without affecting the
other one. driver-i386.c handles way more targets than cpuinfo.c and
your patch only handles a subset of them. The unification does not
bring any benefit, it even complicates things more.

I think that unifying libgcc and i386-builtins.c is the way to go.
libgfortran should benefit from this unification, too.

Uros.

Reply via email to