|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 6:17 pm
|
Страница 1 от 1
|
[ 8 мнения ] |
|
Интересна заигравка с цикъл.
| Автор |
Съобщение |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
 Интересна заигравка с цикъл.
Оптимизирам си една библиотека и рекох да приведа в по човешки вид това но ми стана интересно кво е сътворил IAR като асемблер
учудих се че на най ниското ниво на оптимизация е компилирано много правилно като проверка а не като цикъл и няма смисъл да го пипам изобщо. Някой има ли наблюдение как се компилират подобни извращения с циклите в други среди?
|
| Чет Авг 24, 2006 6:22 pm |
|
 |
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 6:52 pm Мнения: 11266 Местоположение: Добрич
|
е тука просто няма цикъл
почти всики компилатори изяждат всякакви константни изрази и проверка на константи.
Само за GCC не съм сигурен, щото на него като му изключиш оптимизациите може всичко да очакваш 
|
| Чет Авг 24, 2006 8:12 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
На големите нива на оптимизация компилатора задължително трябва да го компилира без цикъла но ми стана интересно че на най ниско на което обикновенно и се дебъгва в IAR e изключен цикъла.
|
| Чет Авг 24, 2006 8:17 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Това е интересно. Я кажи защо така дебъгваш, защото аз със IAR специално винаги съм дебъгвал на full оптимизация.
|
| Чет Авг 24, 2006 8:49 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
И как дебъгваш на full оптимизация. То кода който се генерира тогава е толкова раздробен в някой участъци е изключен даже. Как дебъгваш? Маркера за стъпките скача като побъркан от място на място
Даже за понякога изключвам изобщо оптимизацията че да имам видимост за всички локални променливи. Иначе в зависимост от конкретния случай може и да не виждаш стойноста на някоя. Най вече в случаите когато до края на функцията не се ползва. Но като трябва да видиш стойноста и след последната операция с нея е неприоятно. Изключването на оптимизацията изобщо решава проблема. Поне при AVR ската версия.
|
| Чет Авг 24, 2006 8:58 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Много рядко се е случвало при MSP430 - а го държахме на пълна оптимизация, защото се борехме за всеки байт програмна памет. Аз мислих, че някаква друга ти е идеята, но за променливите си прав.
|
| Чет Авг 24, 2006 9:04 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Ами опримизацията може да се задава отделно за всеки фаил от проекта. Даже с #pragma някаква може да се изключва оптимизацията локално за участък от кода даже. Така че не пречи за фаила с който работиш в момента да я изключиш и да си дебъгваш спокойно
|
| Чет Авг 24, 2006 9:10 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Абе човек - оставаха ни от 3 до 20-на свободни байта в програмната памет. Каквото и да изключа - все надхвърляше  . Ако трябваше да добавим нещо - преди това 3 дена оптимизирахме кода  .
|
| Чет Авг 24, 2006 9:13 pm |
|
|
|
Страница 1 от 1
|
[ 8 мнения ] |
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 1 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|