Важная информация

User Tag List

Страница 5 из 10 ПерваяПервая 123456789 ... ПоследняяПоследняя
Показано с 41 по 50 из 100

Тема: Кодогенерация SDCC: пожелания об улучшении компилятора

  1. #41

    Регистрация
    27.01.2005
    Сообщений
    924
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    193
    Поблагодарили
    154 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vinxru Посмотреть сообщение
    А зачем?
    Затем, что делать мега программы, которые умеют всё и сразу, но плохо - это хуже, чем делать программы, которые умеют делать что-то одно, но хорошо

  2. #42

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,716
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    Пожелания по кодогенерации. Желаю, чтобы секция .DATA вела себя как .DATA
    А чего с ней не так?

    ---------- Post added at 22:23 ---------- Previous post was at 22:16 ----------

    Цитата Сообщение от alone Посмотреть сообщение
    Любой сишный компилятор многоэтапный. Но больше никакой так не тормозит.
    Под гибридностью SDCC я имел ввиду то, что не каждый сишный компилятор вызывает внешний препроцессор, внешний ассемблер и т.д. Обмен промежуточными данными между звеньями организован через файлы, которые пишутся на диск и потом читаются с него. Это потери скорости. Плюс оптимальная кодогенерация SDCC, не имеющая аналогов. Есть некоторый потенциал увеличить скорость оптимизацией работы алгоритмов эвристики кодогенератора, о чём упомянул Филипп Краузе, но положение в целом изменить можно только пересмотром архитектуры компилятора и убиранием звеньев.

    А сравнивать скорость SDCC и других компиляторов для Z80 смысла нет — последние не дают такого качества кода.

  3. #43

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    173
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    А чего с ней не так?
    ну какой-нибудь (даже глобальный)
    char* hello = "Hello, world!"
    порождает код в духе
    Код:
    ld hl, #_hello
    ld (hl), 'H'
    inc hl
    ld (hl), 'e'
    inc hl
    ld (hl), 'l'
    итд
    Так обычно секция .bss себя ведет. А в .data сразу должны лежать проинициализированные данные.

    ---------- Post added at 02:15 ---------- Previous post was at 01:32 ----------

    А еще я в последнее время часто натыкаюсь на вот такие извраты
    Код:
    ; char variable = 0;
    ; ...
    ld iy, #_variable
    ld a, (iy + 0)
    Почему нельзя сделать ld a, (#_variable) - непонятно. Значение, загруженное в iy нигде больше не используется, так что тут не в оптимизации какой-нибудь дело.
    С HL же подобное вообще сплошь и рядом
    Код:
    ld hl, #_variable
    ld (hl), a
    любая запись нового значения в переменную порождает такой код, даже если переменная в следующий раз используется только через 50 строк. LD (NN), A не у дел совершенно.
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  4. #44

    Регистрация
    27.01.2005
    Сообщений
    924
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    193
    Поблагодарили
    154 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    А чего с ней не так?

    А то с ней не так, что когда я пишу глобальную или статическую переменную - то она должна сразу инициализировться в секции _DATA

    Вместо этого - генерится огромный код, который инитит эту переменную. Дикость и глупость.


    Код:
    char a=2;
    В ассемблере генерит


    Код:
    .area _DATA
    _a::
            .ds 1
    
    .area _GSINIT
    ;cls.c:4: char a=2;
            ld      iy,#_a
            ld      0 (iy),#0x02
    Чо - руки отвалятся написать сразу

    Код:
    .area _DATA
    _a::
            .db 2
    Экономия - время инициализации и куча памяти. Руки бы пооборвал...

    ---------- Post added at 06:41 ---------- Previous post was at 06:38 ----------

    Цитата Сообщение от Eltaron Посмотреть сообщение
    Так обычно секция .bss себя ведет.
    Не. В секцию .bss помещаются неинициализированные данные. Которые по стандарту С забиваются нулём.

    Но то, что вместо констант в секции .data генерится код - согласен - идиотизм...

  5. #45

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,716
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    Дикость и глупость.
    Цитата Сообщение от SfS Посмотреть сообщение
    Чо - руки отвалятся написать сразу
    Цитата Сообщение от SfS Посмотреть сообщение
    Руки бы пооборвал...
    Цитата Сообщение от SfS Посмотреть сообщение
    идиотизм...
    Но-но, потише, лошадки. Филипп Краузе — такой же энтузиаст, как и мы. Ему не платят за разработку кодогенератора Z80 для SDCC.

    Мне стыдно будет показать Филиппу эту ветку, насколько неблагодарно некоторые... гм... оценивают его труд. Обвиняя во всех смертных грехах. А Вы не думали о том, что может он просто ещё не добрался до этого направления работы?

    Так что поменьше эмоций. Вам никто ничего не должен хорошо и безплатно делать. Мы здесь все никому ничего не должны. А Вы не принимаете промежуточные черновые варианты поведения кодогенератора за эталон?

  6. #46

    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Oleg N. Cher Посмотреть сообщение
    Вам никто ничего не должен хорошо и безплатно делать.
    а мнение человек высказать может? может. адекватный человек адекватно воспримет критику, если хрень имеет место быть. бросаться сразу же исправлять или забить на нее вообще - другой вопрос, личное дело разработчика. факт же (с хренью) останется фактом.

  7. #46
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #47

    Регистрация
    21.12.2005
    Адрес
    Kyiv/Ukraine
    Сообщений
    415
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SfS Посмотреть сообщение
    Руки бы пооборвал...
    О, милости просим в репозиторий sdcc !
    Сверкните там своей эрудицией и закомитте хотя бы один патч, решающий указанную вами проблему.
    V6Z80P - Back for Good

  9. #48

    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Valen Посмотреть сообщение
    О, милости просим в репозиторий sdcc !
    http://lurkmore.to/%D0%A1%D0%BF%D0%B...B9%D1%81%D1%8F ?

  10. #49

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от psb Посмотреть сообщение
    а мнение человек высказать может? может. адекватный человек адекватно воспримет критику, если хрень имеет место быть. бросаться сразу же исправлять или забить на нее вообще - другой вопрос, личное дело разработчика. факт же (с хренью) останется фактом.
    Что интересно, в этом мнении фраза "я бы сделал лучше" предусмотрительно отсутствует.

    И таки да, между критикой и наездом есть разнциа.

  11. #50

    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    я бы не сделал лучше, но тоже мог бы на это накатить, если бы меня это сильно заботило, но факта с "косяком" это не отменяет. а уж наезд или просто сгоряча высказал что думал... каждый сам решит.

Страница 5 из 10 ПерваяПервая 123456789 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. SDCC - Small Device C Compiler
    от Valen в разделе Программирование
    Ответов: 52
    Последнее: 06.04.2012, 20:44
  2. Конструктор для компилятора с Си
    от Raydac в разделе Программирование
    Ответов: 0
    Последнее: 21.12.2009, 23:14
  3. Пожелания ваще
    от svofski в разделе Эмуляторы отечественных компьютеров
    Ответов: 7
    Последнее: 01.09.2009, 18:27
  4. SDCC вокруг да около
    от andrews в разделе Программирование
    Ответов: 8
    Последнее: 26.03.2008, 08:16
  5. Пожелания по сервисам форума
    от andrews в разделе Форум
    Ответов: 10
    Последнее: 14.08.2006, 13:47

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •