kodtabla
Rancz Lajos
csigaelektro at freemail.hu
Mon Mar 21 17:23:27 CET 2005
Halihó!
>>>> Szóval teszem azt, nagyon sok hasonló vizsgálat van egy
>>>> forrásban (if (vmi rendkívül bonyolult) {} else {}) na, itt
>>>> a fordító észreveszi, hogy közös - hasonló a feltétel és
>>>> kiteszi egy szubrutinba. Ezt assemblyben k*rvanehéz
>>>> megcsinálni, mert nem vezsed éeszre triviálisan a logikai
>>>> hasonlóságokat. Ezek sokat lehet nyerni.
>>>>
>
> 1. En eszreveszem, es ha lehet/erdemes optimalizalok
> 2. A fordito nem veszi eszre. Bar ez nem lenne teljesen
> megoldhatatlan (de nehez), megsem csinalnak ilyet a forditok. Ha
> nem szubrutin, akkor nem is fog szubrutint csinalni soha, ha igen,
> akkor is csak az -o3 megadasa eseten tunteti el a szubrutint a
> fordito.
>
> A forditok jelenleg csak sorrol sorra optimalizalgatnak. Nem tudom
> hogy mennyi ezen tulmeno intelligencia van bennuk, de hogy a sorok
> sorrendjet nem valtoztatjak meg, az tuti.
Nyilván!!! Az lenne még a para, nem mindegy, hogy
a = b*c;
b += a;
vagy
b += a;
a = b*c;!!!!
Ehhez nagyon el kell gondolkodni!!
> Ellenkezo esetben nem mukodhetne sokak kedvence, az AVR JTAG
Nana! Ha bekapcsolod az optimalizációt, akkor nem is mûködik :-)
Kicsit szemezgettem az IAR optimalizációs eszköztárából:
Common subexpression elimination
Function inlining
Code motion
Type-based alias analysis
Clustering of variables
Cross call
Nyilván mindenki észre tudja venni a fentieket, csak nem _akarja_, és ez elég, megcsinálja a fordító. 1 perc alatt úgysem tudsz jobbat csinálni, ha meg baj van, akkor nagyobb memória/gyorsabb architektúra. Ez igaz a méretre. A sebességgel kapcsolatban nem nagyon tud mit kezdeni a fordító, ott már csak maga az algoritmus megfogalmazásával leeht eredményt elérni.
Üdv,
Lajs
> debugger sem. Forditaskor valamelyik listfajlba belekerul az
> assembly sorok ele, hogy melyik fajlnak melyik sorabol lett az az
> assembly utasitas, ez alapjan talalja meg az aktalis forras-sort.
More information about the Elektro
mailing list