From: Alexander Bokovoy <ab@avilink.net>
To: mandrake-russian@altlinux.ru
Subject: Re: [mdk-re] gcc & -march
Date: Sun May 20 15:30:01 2001
Message-ID: <20010520143533.E17072@boids.avilink.net> (raw)
In-Reply-To: <20010520141953.D17072@boids.avilink.net>; from ab@avilink.net on Sun, May 20, 2001 at 02:19:55PM +0300
On Sun, May 20, 2001 at 02:19:55PM +0300, Alexander Bokovoy wrote:
> On Sun, May 20, 2001 at 02:50:38PM +0400, Yura Zotov wrote:
> > On Sun, May 20, 2001 at 01:23:46PM +0300, Alexander Bokovoy wrote:
> > > On Sun, May 20, 2001 at 01:54:07AM +0400, Баталов Григорий wrote:
> > > > On Sun, 20 May 2001 01:17:18 +0400
> > > > Yura Zotov <yznews@hotbox.ru> wrote:
> > > >
> > > > > Скажите, пожалуйста, а как gcc узнает, под какую архитектуру делать
> > > > > объектники, если не задан явно параметр -march? Под какой процессор он при
> > > > > этом генерит код?
> > > >
> > > > Неужели под ту, которая в $HOSTTYPE? :)
> > > Нет. Если не указана явно архитектура, то на ia32 генерируется код,
> > > который гарантированно будет работать с i386. Даже если Вы укажете
> > > -mcpu=i686, но не укажете -march=i686, то все равно код сгенерируется
> > > только такой, который можно выполнить на i386, хотя вызовы и распределение
> > > переменных по регистрам будут оптимизированы под i686.
> > >
> > > Аналогично и для других архитектур -- по умолчанию код генерируется так,
> > > чтобы работать на самой слабой машине в серии.
> >
> > Я тут взял и попробовал скомпилировать ОЧЕНЬ простую программу для разных
> > -march=i386|i486|i586|i686|athlon и без явного указания -march. Получилось
> > 6 *.o по ~1.3K, причем 5 из них были по размеру одинаковы и при беглом взгляде
> > внутрь тоже. Отличался от всех только полученный с -march=i386.
> > В чем прикол?
> Попробуйте приложенный тест -- это реализация алгоритма MD5, достаточно
> затратная с точки зрения вычислений. В архиве есть уже скомпилированные
> ассемблерные фрагменты и исходный md5.c. Получить ассемблерный код для
> конкретной архитектуры можно, пользуясь скриптом maketest.
>
> Обратите внимание, например, на md5-i386.s и md5-pentiumpro.s. Проще всего
> сравнить через diff -u md5-i386.s md5-pentiumpro.s
>
> Одинаковый код, кстати, не получился ни в одном из случаев.
... кроме случая i686 и pentiumpro :-) поскольку это одно и тоже
Чтобы усилить эффект, добавьте в maketest оптимизацию -O6.
--
Sincerely yours, Alexander Bokovoy
The Midgard Project | ALT Linux Team | Minsk Linux Users Group
www.midgard-project.org | www.altlinux.ru | www.minsk-lug.net
-- You won't skid if you stay in a rut.
-- Frank Hubbard
next prev parent reply other threads:[~2001-05-20 15:30 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-05-20 1:11 Yura Zotov
2001-05-20 1:47 ` Баталов Григорий
2001-05-20 2:04 ` Yura Zotov
2001-05-20 2:11 ` Баталов Григорий
2001-05-20 14:45 ` Yura Zotov
2001-05-20 15:16 ` Alexander Bokovoy
2001-05-20 15:30 ` Alexander Bokovoy [this message]
2001-05-20 15:33 ` Yura Zotov
2001-05-20 15:43 ` Alexander Bokovoy
2001-05-20 15:49 ` Alexander Bokovoy
2001-05-20 15:59 ` Yura Zotov
2001-05-20 23:27 ` Alexander Bokovoy
2001-05-20 17:00 ` Sergey S. Skulachenko
2001-05-20 20:56 ` Mikhail Zabaluev
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20010520143533.E17072@boids.avilink.net \
--to=ab@avilink.net \
--cc=mandrake-russian@altlinux.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Community general discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
public-inbox-index community
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.community
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git