Глюки IAR C for AVR 3.10C

Sergey, ты ещё здесь сидишь?

Пятница Декабрь 17 2004 12:04, Sergey A. Borshch wrote to George Shepelev:

Hе сильно. Это попросту означает, что оптимизация по быстродействию в компиляторе IAR сделана откровенно халтурно. Метод размена объёма на быстродействие известен десятки лет и никем ещё не отменён.

Георгий

Reply to
George Shepelev
Loading thread data ...

Dima, ты ещё здесь сидишь?

Пятница Декабрь 17 2004 12:34, Dima Orlov wrote to George Shepelev:

Естественно, раздувание кода ненужным обрамлением и "пустышками" скорости не добавляет ;)

DO> Что ты знал бы, если бы умел программировать на ЯВУ и делал это.

Регулярно пишу программы на Паскале, каждый раз убеждаюсь, что аналогичные вещи на ассемблере получаются меньше и быстрее. А также прекрасно знаю, как при необходимости ускорить работу критичной части кода, увеличив его размер.

А с наездами, плиз, куда-нибудь в более другое место!

Георгий

Reply to
George Shepelev

Hello, George Shepelev !

Естественно, что ты опять трепешься о том, чего не знаешь.

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

Жора, ну что ты можешь прекрано знать?

Укажи опции оптимизации используемого тобой _компилятора_, приводящие к подобному эффекту, или кончай трындеть не по делу (а лучше сразу кончай - надоело). Как оптимизировать _алгоритмы_ тут и без тебя знают, а речь идет об оптимизации кода компилятором, если до тебя еще не дошло, Жора.

Вот и вали.

С уважением, Дима Орлов.

Reply to
Dima Orlov

Hello Dima.

19 Dec 04 12:48, you wrote to George Shepelev:

DO> Укажи опции оптимизации используемого тобой _компилятора_, приводящие DO> к подобному эффекту, или кончай трындеть не по делу (а лучше сразу DO> кончай - надоело). Как оптимизировать _алгоритмы_ тут и без тебя DO> знают, а речь идет об оптимизации кода компилятором, если до тебя еще DO> не дошло, Жора.

Чего ты орешь, как больной слон ? Тривиальный Loop Unrolling, например.. Первая ссылка с гугля:

formatting link

Dmitry

Reply to
Dmitry Lyokhin

Hello, Dmitry Lyokhin !

С уважением, Дима Орлов.

Reply to
Dima Orlov

Здравствуй, Askold!

AV> Есть в IARе такие опции - "cross call optimization" и "always do cross AV> call optimization" - дык вот они однозначно делают код короче и медленнее. AV> Причем последняя опция стоит в IARе особняком и не связана с выбранным AV> типом оптимизации, поэтому многие включают ее не разобравшись, а потом AV> удивляются чего это у них такая плохая оптимизация по скорости. А делает AV> эта оптимизация вот что - выделяет одинаковые куски из разных мест AV> программы и заменяет их обращением к одной общей подпрограмме.

И еще жрет стеки. Мешает при нехватке оперативной памяти.

Успехов! До свидания. Sergey.

Reply to
Sergey Brylew

Всем привет!

Dima Orlov писал к Dmitry Lyokhin 19.12.2004:

DO> гугле искать, а потому что _опыт_ использования компиляторов для разных DO> восьмиразрядных микроконтроллеров (в том числе и IAR в том числе и для DO> AVR) показывает, что меньший сгенерированный код как правило и быстрей.

Есть в IARе такие опции - "cross call optimization" и "always do cross call optimization" - дык вот они однозначно делают код короче и медленнее. Причем последняя опция стоит в IARе особняком и не связана с выбранным типом оптимизации, поэтому многие включают ее не разобравшись, а потом удивляются чего это у них такая плохая оптимизация по скорости. А делает эта оптимизация вот что - выделяет одинаковые куски из разных мест программы и заменяет их обращением к одной общей подпрограмме.

Reply to
Askold Volkov

Mon Dec 20 2004 11:14, Sergey Brylew wrote to Askold Volkov:

AV>> Есть в IARе такие опции - "cross call optimization" и "always do cross AV>> call optimization" - дык вот они однозначно делают код короче и AV>> медленнее. SB> И еще жрет стеки. Мешает при нехватке оперативной памяти.

А кстати, можно ли в том же IAR AVR посмотреть максимальную глубину вложенности обеих стеков?

VLV

"Evil will prevail because good is dumb" (c) Dart Weider

Reply to
Vladimir Vassilevsky

Георгий! Рискую нарваться на гнев следящих за порядком,

но шел бы ты нах.. с такими ^^^^^^^^^^^^^^^^^^^ заявлениями.

Без уважения Сергей Борщ

Reply to
Sergey A. Borshch

Здравствуй, Vladimir!

VV> А кстати, можно ли в том же IAR AVR посмотреть максимальную глубину VV> вложенности обеих стеков?

Так в конце листинга (.lst) если соответствующие опции заданы. По каждой функции вместе со вложенными функциями и RSTACK и CSTACK в виде таблички. Hе указывается только использование scratch регистров. Они по документации IAR тоже как-бы стеком считаются. И тоже страдают при дурацкой оптимизации. Также, как и общее быстродействие. В общем, имхо cross-call оптимизация имеет смысл только, если памяти программ не хватает. Да, это все для IAR C 2.28. Я на другие пока не переходил.

ЗЫЖ При использовании вложенных прерываний эту табличку использования стеков лучше не смотреть ;))

Успехов! До свидания. Sergey.

Reply to
Sergey Brylew

Привет Askold!

20 Дек 04 12:33, Askold Volkov -> Dima Orlov:

AV> Есть в IARе такие опции - "cross call optimization" и "always do cross AV> call optimization" - дык вот они однозначно делают код короче и AV> медленнее. Причем последняя опция стоит в IARе особняком и не связана AV> с выбранным типом оптимизации, поэтому многие включают ее не AV> разобравшись, а потом удивляются чего это у них такая плохая AV> оптимизация по скорости. А делает эта оптимизация вот что - выделяет AV> одинаковые куски из разных мест программы и заменяет их обращением к AV> одной общей подпрограмме.

А как она работет если несколько фалов (*.с), как она тогда крос-кол делает, токо внутри каждого из файлов?

Aleksandr

... Почта - не воpобей, вылетит - не поймаешь...

Reply to
Aleksandr Popruga

Всем привет!

Aleksandr Popruga писал к Askold Volkov 23.12.2004:

AV>> оптимизация по скорости. А делает эта оптимизация вот что - выделяет AV>> одинаковые куски из разных мест программы и заменяет их обращением к AV>> одной общей подпрограмме.

AP> А как она работет если несколько фалов (*.с), как она тогда крос-кол AP> делает, токо внутри каждого из файлов?

Только в каждом отдельно.

Reply to
Askold Volkov

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.