LINUX.ORG.RU

Изучаем параметры GCC

 ,


0

0

Опубликован перевод статьи Getting Familiar with GCC Parameters.

В статье рассмотрены следующие параметры GCC (GNU C Complier):

  • Параметры, относящиеся к оптимизации.
  • Параметры, относящиеся к вызову функций.
  • Параметры, относящиеся к отладке.
  • Параметры, относящиеся к препроцессору.

>>> Ссылка на перевод



Проверено: Shaman007 ()

Очень радует, что сегодня уже не нужно знать русский, чтобы заниматься переводами. Прогресс идёт семимильными шагами! Скоро домохозяйки будут управлять государствами! Даёшь!

anonymous
()

А ткните мне тут в место, которое хоть где-то не описанно?

catap ★★★★★
()

делфи рулит.

anonymous
()
Ответ на: комментарий от HighwayStar

>гентушники детектед

Неправда. Некоторым это нужно для разработки.

ttnl ★★★★★
()

Я извиняюсь, но в первой же строке текста -- фактическая ошибка. GCC расшифровывается как GNU Compiler Collection -- набор компиляторов GNU.

annoynimous ★★★★★
()

Мы можем сделать программу быстрее и ловчее!!!! Проверено: Shaman007

anonymous
()

автору от всей души пожелаю никогда больше не заниматься переводами.

MaratIK
()
Ответ на: комментарий от anonymous

> Очень радует, что сегодня уже не нужно знать русский, чтобы заниматься переводами. Прогресс идёт семимильными шагами! Скоро домохозяйки будут управлять государствами! Даёшь!

Ну зачем же так... Терминологию товарищ ни разу в жизни не видел, однако в остальном старателен, насколько можно. После замены терминологии нужна некоторая стилистическая правка (перевод страдает неприемлемой дословностью), после чего будет полный ажур.

Я такого качества переводы иногда принимаю даже от профи (особенно московских), с ними возни не очень много; хуже, когда начинается фантазирование литературным языком.

Спасибо за наводящий материал для составления словаря по компиляторам. :)))

Orlusha ★★★★
()

Фчёрт, у меня ощущение, что я не в тему задаю тематический вопрос.

"А шо" (с), без -O3 или -finline-functions встраивание функций не происходит?

JackYF ★★★★
()
Ответ на: комментарий от dimmus

> еще один херов копипаст с опеннета:

> http://www.opennet.ru/opennews/art.shtml?num=14921

> GNU C COMPILER, грамотеи...

Почитали бы оригинал: GCC -- это GNU Compiler Collection, название ВСЕГО ПАКЕТА, а gcc -- это название программы, которое можно расшифровать как GNU C compiler. Так что в заголовке ОРИГИНАЛЬНОЙ статьи gcc должен был быть строчными буквами :))) Переводчик мог исправить, а мог и отнести на ошибку автора. Его право.

Orlusha (*) (24.03.2008 17:48:20)

Orlusha ★★★★
()
Ответ на: комментарий от anonymous

что такой плохой перевод? (по ссылке не ходил)

xargs ★★★
()

>gcc (GNU C Compiler) is actually a collection of frontend tools that does compilation, assembly, and linking.

мне кажется, что логическая неувязка идёт с оригинала

frame ★★★
()

Смешно. Фактически, аффтар свел всю "оптимизацию" к inline-functions.
Других оптимизаций он не знает. :-)

Может я тормоз, но:
"0x7530 is 30,000 in decimal form, so we can quickly guess the loop is simplified. This code represents the innermost loop and the outermost loop ("for(j=0;j<5000;j++) ... for(k=0;k<4;k++)") because that is literally a request to do 30,000 loops."

5000*4 (j*k) ==20000. Но никак не 30000.

"Hmm, now it is compared to 300,000,000 (10,000*5,000*6)."
А по программе:
" for(i=0;i<10000;i++)
for(j=0;j<5000;j++)
for(k=0;k<4;k++)"
То есть, 200'000 циклов.

Вывод: аффтар "ни асилил" даже язык Си. Что уж говорить про оптимизации...

Sudoer
()
Ответ на: комментарий от frame

>> gcc (GNU C Compiler) is actually a collection of frontend tools that does compilation, assembly, and linking.

> мне кажется, что логическая неувязка идёт с оригинала

Воистину so: АВТОР (а не переводчик) не знает разницы между GCC и gcc.

Orlusha ★★★★
()
Ответ на: комментарий от Orlusha

> Я такого качества переводы иногда принимаю даже от профи

Твои проблемы. Там же ошибка на ошибке.

anonymous
()

что только не придумают, лишь бы man gcc не открывать

anonymous
()

Дурацкая "статья" - инфы ноль. Чем отличается Os от O3 и так все знают, кому приходилось что-либо собирать.

madcore ★★★★★
()

за перевод-уважение.

Оригинальная Статья-ПОЛНЫЙ НОЛЬ.

Slackware_user ★★★★★
()

пусть будет

anonymous
()
Ответ на: комментарий от soko1

Мне статья не очень понравилась (я про оригинальную английскую, перевод даже не читал).

Описаны и так хорошо известные вещи, а тонкие моменты компиляции, например, почему лучше отключать -finline-functions и использовать -O2 -funswitch-loops -fpredictive-commoning -fgcse-after-reload вместо -O3, не объясняется.

Кроме того, вообще ни слова о -mfpmath=sse, на машинах, sse поддерживающих. (В идеале, конечно, -mfpmath=sse,387 , но gcc не может пока что грамотно оптимизировать быстродействие такого кода.)

Bircoph
()
Ответ на: комментарий от JackYF

> "А шо" (с), без -O3 или -finline-functions встраивание функций не происходит?

Ну, для этого и просто -O1 уже хватает. Если же оптимизации не включать вообще, то разумеется не происходит, ибо это 1) оптимизация, которая 2) будет мешать отладке.

ikm ★★
()

А как отключить оптимизацию только для одной (нескольких) функций из файла.

anonymous
()
Ответ на: комментарий от anonymous

Такой перевод всё же лучше, для человека незнающего инглиш.

ceeqwer
()

"Спасибо, мил человек!" (с) к/ф Место встречи...

lixoman
()
Ответ на: комментарий от Xroft

> Когда GDC прикрутят в качестве пронтэнда?

Подозреваю, что никогда. У фронтэнда DMD лицензия открытая, но чем-то столлману неугодила. Остаётся надеяться на dil. Ну или llvmdc.

naryl ★★★★★
()

По поводу проделанной работы, молодец, конечно. Однако, нужно отметить, что статья, всё же, малоинформативна.

MiracleMan ★★★★★
()
Ответ на: комментарий от HP

> А GCC до сих пор не научился выводить парамтры при запуске без параметров?

При запуске без параметров gcc читает из stdin, чтоб в пайпах можно было использовать.

Bircoph
()
Ответ на: комментарий от naryl

>> Когда GDC прикрутят в качестве пронтэнда?

> Подозреваю, что никогда. У фронтэнда DMD лицензия открытая, но чем-то столлману неугодила

Однако в Debian Lenny & Ubuntu GDC frontend уже в наличии, причем для 4.1 & 4.2.

И libphobos в наличии.

AlexLorovitch
()
Ответ на: комментарий от AlexLorovitch

Я не знаю, чем они руководствовались при выборе версии пакета, но на оф. сайте последняя версия gdc - 0.24.

naryl ★★★★★
()
Ответ на: комментарий от Bircoph

>Кроме того, вообще ни слова о -mfpmath=sse, на машинах, sse поддерживающих.

А так же про -ftree-vectorize

madcore ★★★★★
()
Ответ на: комментарий от ikm

>> "А шо" (с), без -O3 или -finline-functions встраивание функций не происходит?

> Ну, для этого и просто -O1 уже хватает. Если же оптимизации не включать вообще, то разумеется не происходит, ибо это 1) оптимизация, которая 2) будет мешать отладке.

Быдлокодер детектед!

Как оптимизация может мешать отладке? Вы что, делаете это в пошаговом отладчике?!

anonymous
()
Ответ на: комментарий от anonymous

>Как оптимизация может мешать отладке? Вы что, делаете это в пошаговом отладчике?!

Оптимизация может помешать поиску утечек памяти с помощью, например, valgrind.

Demon37 ★★★★
()
Ответ на: комментарий от anonymous

>Как оптимизация может мешать отладке? Вы что, делаете это в пошаговом отладчике?!

Это типа шутка,да ? Ладно, сделаю вид что купился. Оптимизация в GCC настолько агрессивна, что в итоге от вашего любимого кода может не остаться и камня на камне. Самый примитивный пример - значение переменной, параметра функции в GDB не узнать никак так как оптимизатор ее вообще выкинул.

Кстати , -O0 тоже не гарантия успеха отладки, некоторые проходы не отключаются.

anonymous
()
Ответ на: комментарий от Khades

>день срача по поводу оптимизации сборки программ?

Где срач? Я высказался исключительно конструктивно.

Demon37 ★★★★
()
Ответ на: комментарий от mannequin

>Это для тех кто не читает маны?

Это для тех, кто не звездит на лоре, что он якобы всё учит по манам. ;)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.