-
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
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- Propagation velocity v/c dla kabli RF
- Jakie natynkowe podwójne gniazdo z bolcem (2P+PE)
- Czujnik nacisku
- Protoków komunikacyjny do urządzenia pomiarowego
- Hiszpania bez pradu
- amperomierz w plusie
- 3G-nadal działa
- Historia pewnego miernika kalibratora
- Ustym 4k Pro i wyświetlacz
- Czemu rozwaliło celę?
- Wojna w portfelu
- Jaki trojfazowy licznik tuya lub podobny?
- Problem z dekoderem adresów
- Intel się wyprzedaje: po 10latach pchnęli pakiet kontrolny Altery za 1/4 kwoty zakupu
Najnowsze wątki
- 2025-05-21 gdzie kupujecie OC
- 2025-05-21 Budowa II linii metra w Warszawie. Tunele na Bemowie gotowe
- 2025-05-21 Kiepska prognoza dla Niemiec: zerowy wzrost - powód: biurokracja, cła Trumpa i wysokie koszty energii
- 2025-05-21 Śmieciowy koszmar Alaksandra Łukaszenki
- 2025-05-21 Poseł Ciecióra oświadczył, że jest pijany, ale nie był badany.
- 2025-05-21 Aktor Jacek Kopczyński zatrzymany przez policję
- 2025-05-21 Jak włączyć dźwięk startu Asystenta?
- 2025-05-21 Alternatywni dostawcy prądu
- 2025-05-21 Ryga => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i Kad
- 2025-05-21 Poznań => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-05-21 Czujniki czadu, dymu w domach, nie wykrywaj?��������������� gazu
- 2025-05-21 Chrzanów => Spedytor Międzynarodowy (handel ładunkami/prowadzenie f
- 2025-05-21 Rzeszów => Spedytor Międzynarodowy <=
- 2025-05-21 Białystok => Programista Delphi <=
- 2025-05-21 B. ksiądz nie nazwał wysokich funkcjonariuszy publicznych idiotami, idiota [wyrok w zawiasach]