[Xorg-driver-geode] proposal: always build with -march=geode

Martin-Éric Racine martin-eric.racine at iki.fi
Wed Jun 30 07:07:12 PDT 2010

Above all, the goal with -march=geode is to optimize performance of
our platform-specific driver on our hardware. We already have limited
system resources, so every bit of extra performance that we squeeze
out is valuable.

Imposing -march=geode would not prevent distributions from adopting
default compiler flags that produce a driver that is useless on real
Geode hardware. That is an issue that must be solved with GCC and
Linux kernel developers. On this particular point, any action that
brings the kernel and GCC closer to accommodating the Geode within the
i686 family, despite a couple of missing CPU instructions, is what
needs to be done to prevent such distribution-specific issues from
killing the Geode's chances on the Linux market.

As for cross-compiling, I fully support the initiative. It has in fact
been requested by a number of occasional X.org contributors such as
Gaetan whether we could at least properly support building on x86_64,
with the underlying idea that x86_64 can be made to switch to 32-bit
context and that the GCC delivered for x86_64 usually can be made to
compile 32-bit code by standard. Ideally, we'd also support
cross-compiling on Atom, since this is also an x86 variant and many
developers these days are likely to use an Atom-based laptop for their
development work. At any rate, it's understood that the driver cannot
be utilized on non-Geode hardware, but helping developers build the
driver on any x86 variant would already be tremendously useful.


On Tue, Jun 29, 2010 at 8:47 PM, Writer, Tim <Tim.Writer at amd.com> wrote:
> In reference to the original question about `-march=geode', I'm unclear
> on the motivation. Is it to avoid generation of i686 instructions that
> are invalid on Geode, to optimize for Geode, or something else.
> Martin-Éric, can you explain?
> Tim
> On Tue, Jun 29 2010, "Huang, FrankR" <FrankR.Huang at amd.com> wrote:
>> Tim,
>>         What's your suggestion for this?
>> Thanks,
>> Frank
>> -----Original Message-----
>> From: xorg-driver-geode-bounces+frankr.huang=amd.com at lists.x.org [mailto:xorg-driver-geode-bounces+frankr.huang=amd.com at lists.x.org] On Behalf Of Martin-éric Racine
>> Sent: 2010年6月23日 3:07
>> To: Geode Mailing List; Gaetan Nadon
>> Subject: [Xorg-driver-geode] proposal: always build with -march=geode
>> Greetings,
>> Noticing Gaetan Nadon's proposed patch to prevent the building of
>> xf86-video-geode on non-x86 platforms, I was wondering if we should
>> take this approach one step further:
>> In addition to exiting gracefully with a warning at ./configure time
>> if the build host is non-x86, what if we enforced -march=geode if GCC
>>>= 4.3 is found (or -march=i586 if an older version is found)? In our
>> Geode driver's case, not only do we know which platforms to exclude,
>> we also know the target platform to always be -march=geode. In order
>> to accommodate the default compiler flags of distributions, we could
>> make the setting of our -march flags only be used if the -march option
>> is not already set.
>> Alternately, we could make ./configure also accept Atom and x86_64 as
>> suitable build hosts, in which case we'd have to enforce -march=geode
>> always.
>> Comments?
>> --
>> Martin-Éric
>> _______________________________________________
>> Xorg-driver-geode mailing list
>> Xorg-driver-geode at lists.x.org
>> http://lists.x.org/mailman/listinfo/xorg-driver-geode

More information about the Xorg-driver-geode mailing list