|
Как отключить оптимизацию switch() ? |
|
|
|
Jan 29 2012, 07:40
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Перепробовал все прагмы типа #pragma optimize=high/medium/low size/balanced/speed no_cse no_unroll no_tbaa no_inline no_code_motion Всё равно switch() оптимизирует и тратит из-за этого DPL,DPH & B в прерывании MCS-51. Мне надо чтобы switch из четырёх элементов сделался как через if () ... Ну неужели придётся делать ручками через if
Эскизы прикрепленных изображений
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
 |
Ответов
|
Feb 11 2012, 08:06
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Оптимизация у меня максимальная по размеру. Причём галку "Common subexpression elimination" даже выключил, без неё ещё компактней. Смотреть код это такая же болезнь как смотреться в зеркало. Вы, как представительница женского пола, не болеете?  Перестать смотреть не желаете? Залазя на новый компилятор просто нужно смотреть код. Это привычка старого профессионала. Лет 5 сидел на EWARM 4.20 и смотрел код тщательно первые несколько месяцев. Потом уже узнаёшь его как свои 5 пальцев  Кроме того, это помогает быстро искать ошибки в скомпиленном коде. Кто бы ещё быстренько подсказал - какой компилер лучше генерит код ИАР 8.10 или какой-нить последний Кейл или ещё какой.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Feb 11 2012, 08:21
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(GetSmart @ Feb 11 2012, 12:06)  Кто бы ещё быстренько подсказал - какой компилер лучше генерит код ИАР 8.10 или какой-нить последний Кейл или ещё какой. Этот вопрос широко рассматривался вот в этой теме - " Какой компилятор выбрать IAR или Keil?, а может GCC?", но с тех пор много воды утекло (появились новые версии компиляторов). Было бы целесообразно реанимировать ту тему (в смысле продолжить), а то в теме про switch этот вопрос вряд ли найдет широкий отклик. Цитата(GetSmart @ Feb 11 2012, 12:06)  Лет 5 сидел на EWARM 4.20 и смотрел код тщательно первые несколько месяцев. Потом уже узнаёшь его как свои 5 пальцев  Кроме того, это помогает быстро искать ошибки в скомпиленном коде. Вот вы бы этим лично и занялись, как лицо заинтересованное и квалифицированное. Тем более что с IAR вы до конца разобрались. Сравнить, на мой взгляд, стоит только с Keil и GCC, остальные не конкуренты.
|
|
|
|
Сообщений в этой теме
GetSmart Как отключить оптимизацию switch() ? Jan 29 2012, 07:40 Xenia Цитата(GetSmart @ Jan 29 2012, 11:40) Мне... Jan 29 2012, 08:03 Палыч Цитата(Xenia @ Jan 29 2012, 12:03) ...хот... Jan 29 2012, 08:18 _Pasha Цитата(Xenia @ Jan 29 2012, 11:03) Впервы... Jan 29 2012, 11:55  GetSmart Цитата(_Pasha @ Jan 29 2012, 16:55) Может... Jan 29 2012, 12:00 _Pasha Вот ещё что:
Цитата(Xenia @ Jan 29 2012, 11... Jan 29 2012, 13:16 GetSmart Цитата(Xenia @ Jan 29 2012, 13:03) Впервы... Feb 11 2012, 00:40 sonycman Да и тот же IAR для ARM.
Switch из 15 case компили... Jan 29 2012, 08:24 GetSmart Неужели в самом деле родители ИАРа решили, что их ... Jan 29 2012, 08:40 GetSmart Нда.
Переделал на if-ы.
Стало на 11 байт короче са... Jan 29 2012, 10:15 _Pasha Кейл огорчил. Jan 29 2012, 12:09 GetSmart Давно хотел спросить. Xenia, куда замылили ветку с... Jan 29 2012, 13:23 Xenia Цитата(GetSmart @ Jan 29 2012, 17:23) Дав... Jan 29 2012, 20:21 arttab iar #pragma optimize=none Jan 30 2012, 01:09 GetSmart Цитата(arttab @ Jan 30 2012, 06:09) iar #... Jan 30 2012, 01:48  _Pasha Цитата(GetSmart @ Jan 30 2012, 05:48) Тих... Jan 30 2012, 07:15  xemul Цитата(GetSmart @ Jan 30 2012, 05:48) Дел... Jan 30 2012, 14:40   GetSmart Цитата(xemul @ Jan 30 2012, 19:40) За что... Jan 30 2012, 15:01 Dikoy Цитата(arttab @ Jan 30 2012, 04:09) iar #... Mar 5 2012, 20:27  _Артём_ Цитата(Dikoy @ Mar 5 2012, 22:27) А как н... Mar 5 2012, 22:56 scifi Ну не знаю... Опускаться до таких извращений, чтоб... Jan 30 2012, 13:05 GetSmart Цитата(scifi @ Jan 30 2012, 18:05) Ну не ... Jan 30 2012, 13:47 GetSmart Ужжасс.
7.60.1 ещё и глючный.
По адресу 072C надо ... Feb 10 2012, 07:27 GetSmart А 8.10.4 тоже какие-то приколисты писали. Вобщем в... Feb 11 2012, 03:29 Xenia Цитата(GetSmart @ Feb 11 2012, 07:29) А 8... Feb 11 2012, 07:26 Dikoy Всё, разобрался. Mar 5 2012, 22:54
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|