The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

24.03.2008 13:45

Опубликован перевод статьи "Getting Familiar with GCC Parameters", в которой рассмотрены следующие параметры GCC (GNU C Compiler):

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


  1. Главная ссылка к новости (http://netsago.org/ru/docs/1/9...)
Автор новости: n0xi0uzz
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/14921-gcc
Ключевые слова: gcc, tune
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (15) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, guest (??), 15:54, 24/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    лучше бы толковую доку по кросс-компиляции запостили...
     

  • 1.3, Dimmus (??), 16:18, 24/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    *GNU C CompILER
     
     
  • 2.10, cepera (?), 11:42, 25/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    > GNU C CompILER

    GCC расшифровывается как GNU Compiler Collection (http://gcc.gnu.org)

     
     
  • 3.11, Andrey Mitrofanov (?), 12:20, 25/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >> GNU C CompILER
    >
    >GCC расшифровывается как GNU Compiler Collection (http://gcc.gnu.org)

    а /usr/bin/gcc, ключи которого мы тут узучаем типа, -- натурально-таки GNU C compiler

     

  • 1.4, DeNIS (?), 16:22, 24/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Артут Грифитс "GCC в подлинике".
    Ищи на кпнемо.ру, ищи на 2бакса.нет, ищи на алл-ебукс.ком.
    Я книгу читал с листа, и электронная верия тоже ... е ...
    И про кроскомпиляцию там все как на ладони.
     
  • 1.5, pavlinux (ok), 16:29, 24/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    пример 1.

    --- test.c      2008-03-24 16:27:48.830464281 +0300
    +++ test.c      2008-03-24 16:27:36.002552794 +0300
    @@ -1,7 +1,7 @@
    #include<stdio.h>
        int main(int argc, char *argv[])
        {
    -   int i,j,k;
    +   int i,j,k
        unsigned long acc=0;
        for(i=0;i<10000;i++)
             for(j=0;j<5000;j++)

     
     
  • 2.6, pavlinux (ok), 16:30, 24/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Упс, наоборот ....

    -   int i,j,k
    +   int i,j,k;

     

  • 1.7, gcc (??), 23:54, 24/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а толку
    вот скажите как принудительно GCC заставить параметры через стек push/pop пихать а не через mov как он это делает
    я уже все перепробовал - все опции которые как то могли влиять
     
     
  • 2.8, Wulf (??), 01:12, 25/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    под NIX-ами это автоматом должно случится. под виндами, вероятно, надо при объявлении функций __attribute__((__cdecl__)) добавлять
     
  • 2.9, DeNIS (?), 09:02, 25/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Ну дык все зависит от ситуации. Если у тебя в проце регистров меньше чем параметров - то уж извини тока церез стек (и лучше использоать указатели), если больше - то при оптимизации это будет автоматом. И не забывай волшебное ключевое слово registred (или) что то в этом роде. А в опциях, я такого не припомню.
    Будь здоров.
     

  • 1.12, gcc (??), 12:28, 25/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    что то ты вы говорите но не в тему
    причем тут автоматически не автоматически
    register тут вообще не причем

    есть параметер в gcc который тупо говорит пихать параметры функций через
    push
    objdump смотрите что в итоге получаеться
    а он это оптимизирует и постояно пихает это через тот же стек токо mov

     
     
  • 2.13, Cub (?), 00:10, 29/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    > он это оптимизирует и постояно пихает это через тот же стек токо mov

    Вероятно, на Вашем проце такая последовательность команд в каком-то смысле выгоднее.
    В каком именно - вероятно, зависит от ключей оптимизации.
    Попробуйте полностью отключить оптимизацию и проверьте.

     
     
  • 3.15, gcc (??), 00:19, 09/04/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >> он это оптимизирует и постояно пихает это через тот же стек токо mov
    >
    >Вероятно, на Вашем проце такая последовательность команд в каком-то смысле выгоднее.
    >В каком именно - вероятно, зависит от ключей оптимизации.
    >Попробуйте полностью отключить оптимизацию и проверьте.

    там вообще оптимизации нет
    если есть желание и есть unix предлагаю попробовать и поискать варианты самому)

     

  • 1.14, Vital (??), 15:35, 30/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Еще удивляет, что не используются команды ENTER и LEAVE для создания/удаления кадра стека
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру