From: Alexander Bokovoy <ab@avilink.net>
To: mandrake-russian@altlinux.ru
Subject: Re: [mdk-re] gcc & -march
Date: Sun May 20 15:16:01 2001
Message-ID: <20010520141953.D17072@boids.avilink.net> (raw)
In-Reply-To: <20010520145038.A22467@vezyolka.dgap.mipt.ru>; from yznews@hotbox.ru on Sun, May 20, 2001 at 02:50:38PM +0400
[-- Attachment #1: Type: text/plain, Size: 2037 bytes --]
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
Одинаковый код, кстати, не получился ни в одном из случаев.
--
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
[-- Attachment #2: test-arch.tar.bz2 --]
[-- Type: application/octet-stream, Size: 8009 bytes --]
next prev parent reply other threads:[~2001-05-20 15:16 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 [this message]
2001-05-20 15:30 ` Alexander Bokovoy
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=20010520141953.D17072@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