-
Data: 2009-06-12 17:14:53
Temat: Re: Problem lekko OT, ale w WinAVR ;-)
Od: "T.M.F." <t...@n...mp.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]>>> Pomijając już tą nieszczęsną promocję do inta, to najbardziej w tym
>>> kodzie rozwaliło mnie wyłuskiwanie 6 bitu.
>>
>> Promocja do int wynika ze standardu C wiec trudno tu robić zarzut
>> kompilatorowi. Żeby to ominąć wystarczy explicite typecastowac.
>
> Wyraźnie napisałem, że nie promocja jest tu największym problemem.
> Zresztą rzutowanie i tak tego nie poprawia.
U mnie poprawia - najnowszy WinAVR.
>>> Łatwo policzyć, że poniżej 8 parametrów bardziej opłaca się wersja z
>>> rcall (program optymalizowany na rozmiar).
>>
>> Tu sprawa nie jest tak oczywista. Co prawda rcall są krótsze w sensie
>> długości kodu, ale zajmuja 3 takty zegara.
>
> Specjalnie napisałem, że optymalizacja była ustawiona na rozmiar, więc
> rcall powinno mieć pierwszeństwo.
Tak, tylko developerzy sa skupieni na Os - tak to bywa, kiedy zasoby sa
ograniczone.
>> To zalezy zapewne od zdefiniowanej przez ciebie funkcji tab_size(tab).
>> Kompilator za każdym obiegiem petli musi ja wywołać, żeby wilczyć
>> wynik dla danego argumentu - dlaczego? Bo ja źle zdefiniowałeś.
>
> Zapomniałem wstawić. Oto kod:
>
> #define tab_size(__a) (sizeof(__a)/sizeof(__a[0]))
>
> Jeśli według ciebie jest źle zdefiniowana, to czekam na poprawki.
To powinno w efekcie dac stala. Kiedy zastapilem wywolanie tab_size
stala problem zniknal. Wiec byc moze uzywasz starej wersji?
>> Sprawdziłem to u siebie i nic takiego się nie dzieje. Musiałem
>> zdefiniować dodatkowo dziwna funkcje Babla bo mi kompilator to
>> optymalizował i ją wywalał.
>
> Ja na potrzeby przykładu w ogóle jej nie zdefiniowałem (nie jest to
> potrzebne, disasemblację zrobiłem po kompilacji, bez linkowania).
To wtedy petla sie totalnie zoptymalizowala i wywalilo mi te wywolania w
ogole.
>>> A podobno gcc ma super optymalizator do pętli (widocznie moja wersja
>>> gdzieś go zgubiła).
>>
>> Jak ci nie pasuje gcc to zaproponuj cos lepszego...
>
> Chciałeś przykłady, to ci je pokazałem. Nie jest w tym przypadku istotne
> czy inne kompilatory zrobiłyby to lepiej (a myślę, że IAR byłby lepszy).
IAR zwykle jest lepszy bo jest dostosowany do tej platformy, niestety
uniwersalnosc gcc jest tu jego wada. Z drugiej strony wada ta jest
kompensowana problemami na ktore sie natkniesz probujac przeniesc kod z
IAR na inna platforme.
>> Jak ci nie pasuje gcc to zaproponuj cos lepszego... nie mowiac juz o
>> tym, ze masz kod źródłowy wiec możesz się wykazać dla potomności :)
>
> Dzięki, już kiedyś próbowałem (na innym porcie gcc). To nie jest robota
> na 1 dzień, a ja mam swoją pracę.
Owszem. Ale wystarczy nieco wiedzy jak kompilator generuje kod i
wszystkie pokazane problemy znikaja. Sa co prawda inne, ktorych tak
prosto wyeliminowac sie nie da, ale skoro ich nie pokazales, to pewnie
nie sa dla ciebie tak klopotliwe :)
--
Inteligentny dom - http://idom.wizzard.one.pl
http://idom.sourceforge.net/
Teraz takze forum dyskusyjne
Zobacz, wyslij uwagi, dolacz do projektu.
Następne wpisy z tego wątku
- 12.06.09 11:27 Zbych
- 12.06.09 16:46 J.F.
- 12.06.09 20:15 Grzegorz Kurczyk
- 12.06.09 20:30 J.F.
- 12.06.09 20:30 Zbych
- 13.06.09 01:35 Grzegorz Kurczyk
- 13.06.09 06:43 Grzegorz Kurczyk
- 13.06.09 07:28 Zbych
- 13.06.09 07:44 J.F.
- 13.06.09 14:35 T.M.F.
- 13.06.09 14:36 T.M.F.
- 13.06.09 14:37 T.M.F.
- 13.06.09 10:10 Grzegorz Kurczyk
- 13.06.09 10:10 Zbych
- 13.06.09 10:18 Zbych
Najnowsze wątki z tej grupy
- Żywica żółknie od UV i wody :(
- Zawory termostatyczne
- Schemat automatyki
- Teoretyczne zagadnienie - ogrzewanie budynku
- Zagadka radiowa
- Prostownik
- Nowy akumulator Donut Lab
- Pilot do zamka/bramy
- Jaka myjka ultradźwiękowa?
- Retro organizer ale współcześnie
- Skąd diody LED 1,5V?
- Apollo Comm
- PICkit3 mnie pokonał
- LEDy na choinkę zdechły
- Wtopa LED
Najnowsze wątki
- 2026-01-16 Żywica żółknie od UV i wody :(
- 2026-01-16 Weryfikacja wieku w fb
- 2026-01-16 elektryczny pozar
- 2026-01-15 Zawory termostatyczne
- 2026-01-15 Białystok => Solution Architect (Workday) - Legal Systems <=
- 2026-01-15 Proces KARNY Braunowi (KPP) POLITYCZNIE służy? [+0.7% miesięcznie 2 razy]
- 2026-01-15 Białystok => Frontend Developer React <=
- 2026-01-15 Konto na zdalnym NAS - jak zabezpieczyc pliki?
- 2026-01-15 Myślenice => Junior SAP CO Consultant <=
- 2026-01-15 Wyjaśnienie patologii opisanej w art. pt. "Przeciw bezkarności biznesu"
- 2026-01-15 Wyjaśnienie patologii opisanej w art. pt. "Przeciw bezkarności biznesu"
- 2026-01-15 "deficyt budżetowy [na 2026r. -przyp. JMJ] jest prognozowany na poziomie 271,7"Gzł, czyli 74.52G$
- 2026-01-15 Miliardy z podatków znów popłynęły do TVP
- 2026-01-14 #Motodziennik test - Jaecoo E5 - słabe auto, słaby elektryk. A ZIMĄ NAWET BARDZO
- 2026-01-14 Piaseczno cd




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]