реклама на сайте
подробности

 
 
> Кривой оптимизатор IAR? (IAR V6.21.1.52794/W32 for ARM)
jcxz
сообщение Aug 20 2012, 06:47
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Имеем (Cortex-M3):
Код
s32 c;  //signed int
if ((u32)c < 100000) {   //проверка как unsigned int
  ...
} else {
  if (c >= 0) i += 1;      //проверка как signed int
  i += 1;
}

После компиляции с полной оптимизацией получаем бред:
Код
;if ((u32)c < 100000) {
              LDR.W    R0,??DataTable21_14;; 0x186a0
              CMP      R5,R0
              BCS.N    ??isrTIMER1_13
              ...
              B.N      ??isrTIMER1_14
;} else {
;  if (c >= 0) i += 1;
  ??isrTIMER1_13:
              ADDS     R0,R4,#+1;почему безусловно??? Где IT???
              ...
;  i += 1;
              ADDS     R4,R0,#+1
;}
  ??isrTIMER1_14:
              ...

Куда делось условное исполнение: if (c >= 0) i += 1; ????

Если поставить оптимизацию "Low", то всё нормально - эта строка выполняется по условию (с помощью команд перехода).
При компиляции V5.50.0.51878/W32 for ARM тоже всё ок - строка выполняется условно (с помощью команды IT).
IAR-цы добавили новый баг в оптимизатор?
У кого есть IAR более новый - можете проверить - исправлено это или ещё нет?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- jcxz   Кривой оптимизатор IAR? (IAR V6.21.1.52794/W32 for ARM)   Aug 20 2012, 06:47
- - scifi   Попробовал такой код: Кодint test(int c, int i...   Aug 20 2012, 07:11
|- - jcxz   RE: Кривой оптимизатор IAR? (IAR V6.21.1.52794/W32 for ARM)   Aug 20 2012, 08:10
|- - scifi   Цитата(jcxz @ Aug 20 2012, 12:10) Можете ...   Aug 20 2012, 08:17
|- - jcxz   Создал пустой проект, скомпилил, цепляю сюда аттач...   Aug 20 2012, 08:56
- - ArtemKAD   ЦитатаКуда делось условное исполнение: if (c >=...   Aug 20 2012, 08:51
- - ArtemKAD   ЦитатаВо-первых: используется, смотрите внимательн...   Aug 20 2012, 09:04
|- - jcxz   Видно: Код 561 stateTIM = i; ...   Aug 20 2012, 09:30
- - scifi   Семён Семёныч! У вас прямо перед сравнением пе...   Aug 20 2012, 12:36
|- - jcxz   Цитата(scifi @ Aug 20 2012, 18:36) Семён ...   Aug 20 2012, 14:39
|- - scifi   RE: Кривой оптимизатор IAR? (IAR V6.21.1.52794/W32 for ARM)   Aug 20 2012, 14:56
|- - jcxz   Цитата(scifi @ Aug 20 2012, 20:56) Нет си...   Aug 20 2012, 15:28
- - Андрей190   Кодs32 c; //signed int if ((u32)c ...   Aug 21 2012, 07:43
|- - jcxz   Как раз специально для Вас я написал комменты Обр...   Aug 21 2012, 07:52
- - scifi   Ну да, похоже на баг. Хорошо бы написать баг-репор...   Aug 21 2012, 07:59
- - jcxz   Чем дальше в лес, тем больше дров.... Ещё один баг...   Aug 23 2012, 08:46


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 13th August 2025 - 17:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.01366 секунд с 7
ELECTRONIX ©2004-2016