mezi zidli a klavesnici

Michal Gregor a2x1nptda8 na email.cz
Úterý Únor 28 11:17:35 CET 2012


> for i=0 to 5
> Soucet += Pole[i]
> Toto znamena, nastav i, vypocitaj adresu prvku, indexovo zober
> hodnotu, pricitaj k vysledku, inkrementuj i, porovnaj i na koniec...

Toto znamena secti pole a moderni prekladac by to MOHL poznat a 
optimalizovat.  Tedy v pripade ze pole neni dynamicke a je ulozeno na fixni 
adrese.
(Pro dynamicke pole je to nesmysl)

Michal Gregor

----- Original Message ----- 
From: "Andrej Jancura" <aj.hwlist na gmail.com>
To: "HW-news" <hw-list na list.hw.cz>
Sent: Tuesday, February 28, 2012 11:07 AM
Subject: Re: mezi zidli a klavesnici


Myslim, ze ste nepochopili, co sa deje v asembleri...

2012/2/28 Michal Gregor <a2x1nptda8 na email.cz>:
> Prekladace neumi pracovat poradne s pointery ve smycce. Takze v C staci se
> vybodnout na cykly a hned to bezi rychleji. Treba toto:
> for i=0 to 5
> Soucet += Pole[i]

Toto znamena, nastav i, vypocitaj adresu prvku, indexovo zober
hodnotu, pricitaj k vysledku, inkrementuj i, porovnaj i na koniec...

>
> Je lepsi zapsat
> Soucet += Pole[0]

Toto naproti tomu znamena pricitaj k vysledku hodnotu na pevnej adrese
prvku pola, co je podla mna jedna trivialna asm instrukcia...

> Soucet += Pole[1]
> Soucet += Pole[2]
> Soucet += Pole[3]
> Soucet += Pole[4]
> Soucet += Pole[5]
>
> Vypada do dlouze, ale po prelozeni je to obvykle kratsi a nekolikanasobne
> rychlejsi
>

A uz viete aj preco to tak je...

A.

>
> Michal Gregor
>
_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list 



Další informace o konferenci Hw-list