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

 
 
> Странности при оптимизации
DenisIV
сообщение Dec 23 2008, 12:40
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 68
Регистрация: 11-12-08
Из: Республика Беларусь, г.Минск
Пользователь №: 42 380



Кстати, раз уж о глюках:

У меня при включенной оптимизации компилятор думает, что раз тела у while нет, то можно и зациклить сам на себя БЕЗ проверки условия, т.е.

MojBit=1;

while(MojBit==1) { };

в асме выглядит так:

Addr: rjmp Addr

Если в тело хотя бы вставить _NOP(); т.е. while(MojBit==1) {_NOP();};

картина меняется - добавляется загрузка вита в 1 и проверка в теле while. Вопрос знатокам: Почему? Компилятор умнее пользователя?

Модератор.
Тема выделена как отдельная из другого топика.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_Pasha
сообщение Dec 28 2008, 08:44
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Думаю, что пишу в тему. История такая (WinAVR):
Все знают, что манипуляции с main() - дело неприличное. В общем, заметил я глупости, которые делает последний WinAVR - лишние сохранения/восстановления регистров, после чего стал везде писать
Код
int main (void) __attribute__((naked));
int main(void)
{
//итд итп
}

Худеет где-то на 24 и более байта.
Т.е. компилер не понимат, что с main() не надо так обращаться, как со всеми прочими функциями...sad.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Dec 28 2008, 09:00
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(_Pasha @ Dec 28 2008, 11:44) *
Т.е. компилер не понимат, что с main() не надо так обращаться, как со всеми прочими функциями...sad.gif

Ничего не мешает, если сие необходимо сделать из main() return и вернувшись в startup заняться другими делами, например, выполнением supermain().... Посему в качестве "навязчивого сервиса" делать main() особой совершенно не верно. Ручками - ручками пожалуйста.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- DenisIV   Странности при оптимизации   Dec 23 2008, 12:40
- - Палыч   Цитата(DenisIV @ Dec 23 2008, 15:40) Вопр...   Dec 23 2008, 12:52
|- - DenisIV   Цитата(Палыч @ Dec 23 2008, 15:52) Почему...   Dec 23 2008, 18:37
|- - Nemo2000   Цитата(DenisIV @ Dec 23 2008, 21:37) Вы з...   Dec 23 2008, 19:16
- - scifi   Цитата(DenisIV @ Dec 23 2008, 15:40) Вопр...   Dec 23 2008, 14:35
- - sergeeff   Просто не устаю поражаться. На нашем форуме про vo...   Dec 23 2008, 22:38
|- - DenisIV   Цитата(sergeeff @ Dec 24 2008, 01:38) Про...   Dec 23 2008, 23:21
|- - rezident   Цитата(DenisIV @ Dec 24 2008, 04:21) И ес...   Dec 23 2008, 23:43
|- - sergeeff   Цитата(DenisIV @ Dec 24 2008, 03:21) Прош...   Dec 24 2008, 01:12
- - DenisIV   2rezident: со static (и не тоько) разобрался, спас...   Dec 24 2008, 02:56
- - sergeeff   Я все не пойму, что за проблемы "с этой оптим...   Dec 24 2008, 12:41
|- - DenisIV   Цитата(sergeeff @ Dec 24 2008, 15:41) Я в...   Dec 24 2008, 12:55
|- - XVR   Цитата(DenisIV @ Dec 24 2008, 15:55) Кажд...   Dec 24 2008, 14:13
|- - DenisIV   Цитата(XVR @ Dec 24 2008, 17:13) Нет. Ком...   Dec 24 2008, 15:47
|- - defunct   Цитата(DenisIV @ Dec 24 2008, 17:47) А ес...   Dec 24 2008, 17:09
|- - DenisIV   Цитата(defunct @ Dec 24 2008, 20:09) #pra...   Dec 25 2008, 13:17
|- - Сергей Борщ   Цитата(DenisIV @ Dec 25 2008, 15:17) Спас...   Dec 25 2008, 13:24
|- - DenisIV   Цитата(Сергей Борщ @ Dec 25 2008, 16:24) ...   Dec 25 2008, 13:36
- - sergeeff   Уважаемый DenisIV! Если вы хотите быть ...   Dec 24 2008, 16:26
|- - zltigo   Цитата(sergeeff @ Dec 24 2008, 19:26) Я у...   Dec 24 2008, 17:35
|- - sergeeff   Цитата(zltigo @ Dec 24 2008, 21:35) Про ...   Dec 24 2008, 22:09
|- - zltigo   Цитата(sergeeff @ Dec 25 2008, 01:09) К п...   Dec 24 2008, 23:00
- - sergeeff   Я не являюсь разрабочиком компиляторов и линкеров....   Dec 25 2008, 01:16
|- - XVR   Цитата(sergeeff @ Dec 25 2008, 04:16) Я н...   Dec 25 2008, 07:17
|- - Сергей Борщ   Цитата(XVR @ Dec 25 2008, 09:17) Вне зави...   Dec 25 2008, 10:24
|- - XVR   Цитата(Сергей Борщ @ Dec 25 2008, 13:24) ...   Dec 26 2008, 08:53
|- - HARMHARM   Цитата(XVR @ Dec 26 2008, 10:53) ... Опти...   Dec 26 2008, 23:34
|- - XVR   Цитата(HARMHARM @ Dec 27 2008, 02:34) Это...   Dec 27 2008, 08:33
- - DenisIV   Ещё вопросик: Например, компилятор HiTech предупре...   Dec 25 2008, 21:19
|- - Сергей Борщ   Цитата(DenisIV @ Dec 25 2008, 23:19) типа...   Dec 25 2008, 22:26
|- - zltigo   Цитата(Сергей Борщ @ Dec 26 2008, 01:26) ...   Dec 25 2008, 22:50
|- - Сергей Борщ   Цитата(zltigo @ Dec 26 2008, 00:50) Угу, ...   Dec 25 2008, 23:15
||- - zltigo   Цитата(Сергей Борщ @ Dec 26 2008, 02:15) ...   Dec 26 2008, 08:07
|- - DenisIV   Цитата(zltigo @ Dec 26 2008, 01:50) Вобще...   Dec 26 2008, 12:42
|- - zltigo   Цитата(DenisIV @ Dec 26 2008, 15:42) А ес...   Dec 26 2008, 13:39
|- - DenisIV   Цитата(zltigo @ Dec 26 2008, 16:39) Разум...   Dec 26 2008, 16:26
|- - zltigo   Цитата(DenisIV @ Dec 26 2008, 19:26) Что ...   Dec 26 2008, 16:41
- - rezident   DenisIV, а такой вариант объявления Код__no_init ...   Dec 25 2008, 21:38
|- - DenisIV   Цитата(rezident @ Dec 26 2008, 00:38) Den...   Dec 25 2008, 22:14
- - sergeeff   Бьярн Страустрап, 1995 г. Введение в язык С++. Гл...   Dec 26 2008, 14:29
- - sergeeff   Уважаемый гуру! 1 - она и в Африке 1. А что та...   Dec 26 2008, 20:02
|- - zltigo   Цитата(sergeeff @ Dec 26 2008, 23:02) Как...   Dec 26 2008, 23:10
- - rezident   А не пора ли уже прекратить "религиозные...   Dec 26 2008, 23:34
|- - zltigo   Цитата(rezident @ Dec 27 2008, 02:34) А н...   Dec 26 2008, 23:51
|- - rezident   Цитата(zltigo @ Dec 27 2008, 04:51) в слу...   Dec 27 2008, 22:18
|- - zltigo   Цитата(rezident @ Dec 28 2008, 01:18) В п...   Dec 27 2008, 22:38
|- - rezident   Цитата(zltigo @ Dec 28 2008, 03:38) После...   Dec 27 2008, 23:16
|- - zltigo   Цитата(rezident @ Dec 28 2008, 02:16) Про...   Dec 28 2008, 00:09
|- - rezident   Цитата(zltigo @ Dec 28 2008, 05:09) Значи...   Dec 28 2008, 01:23
|- - dch   Цитата(rezident @ Dec 28 2008, 04:23) ни ...   Dec 28 2008, 01:42
|- - zltigo   Цитата(rezident @ Dec 28 2008, 04:23) Спе...   Dec 28 2008, 08:37
|- - AHTOXA   Цитата(zltigo @ Dec 28 2008, 13:37) Если ...   Dec 28 2008, 08:55
- - sergeeff   Да надо плюнуть на все эти глупости, написать: Ко...   Dec 28 2008, 01:49
|- - Сергей Борщ   Цитата(_Pasha @ Dec 28 2008, 10:44) после...   Dec 28 2008, 11:56
|- - _Pasha   Цитата(Сергей Борщ @ Dec 28 2008, 15:56) ...   Dec 29 2008, 12:33
- - SysRq   Если main() вызывается единожды и до разрешения пр...   Dec 29 2008, 11:12
- - DenisIV   Подскажите ещё плиз: У меня на асме для оптимизаци...   Dec 30 2008, 20:19
- - DenisIV   Народ, это действительно засада или лыжи не едут.....   Jan 18 2009, 10:28
- - ARV   по идее в стандартной библиотеке Си предусмотрен м...   Jan 18 2009, 16:54


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

 


RSS Текстовая версия Сейчас: 29th June 2025 - 12:06
Рейтинг@Mail.ru


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