kodtabla
Fuzesi Arnold
arno at externet.hu
Tue Mar 22 15:14:42 CET 2005
Icipicit elkene vonatkoztatni.
Nem csak AVR, es IAR van a vilagon, es beagyazott alkalmazas ahol fut egy
100 soros main hurok meg 1-2 interrupt....
Be kene menni arra a BME nevu helyre ahova elvben be vagy iratkozva
informatikusnak, es korbenezni. Sok erdekes dolgot tanulhatnal.
Pl a Mesterseges intelligenciarol, ha mar szobahoztad.
Mitobb latnal is sok olyan dolgot amit meg nem lattal.
Pl a VLIW (nem LIW, VLIW!!!) DSP procikra keszitett C forditok. Szerintem
elsirnad magad, es heteket toltenel azzal, hogy az altaluk generalt kodot
felfogd egyaltalan (kb lehetetlen). De reprodukalni akkor sem fogod tudni.
Egyszeruen azert mert nem fogod tudni atlatni a 8 utasitas szeles
utasitasszot, es azok egymasrahatasat. Tudom, nem hiszel ebben, mar parszor
megvitattuk.
De ez nem hit kerdese. Digitalis Jelfeldolgozo processzorok
alkalmazastechnikaja c. targybol szepen elmagyaraztak egy peldan keresztul
par eve. Kozismereti, nyugodtan felveheted magad is.
A sakkozo szgephez tudnam hasolitani ezeknek a forditoknak a mukodeset.
Leko Peti lehet hogy megveri oket, de csak mert erre tette fel az eletet.
De halando ember szinte kizart. Mert nem tudja ugy atlatni a sakktablat, es
a kovetkezo eshetosegeket.
Mellesleg az IAR doksiban szepen megemlitik, mitobb a feluleten is az
optimalizacional:
none - (Best debug support). Pont az IAR nem jo pelda. Eleg durvan tud
optimalizalni, annyira hogy a debug macerassa valik.
Erdemes elolvasni a doksijat!!!
Pl a cross call, common subexpress optimalizacio melysege lehet siman 5 is.
(meg vegtelen, de azt a stack miatt cikis)
Cross call, common subexpress optimalizacio meg pont az amit itt valaki
emlitett. Megkeresi a kozos reszeket a programban, es subrutionkat csinal
belole, vagy keresztul kasul ugral. Alig lesz lassabb viszont irto modon
lecsokken a kodmeret.
Lassunk egy peldat:
~20e soros C program, es meglevo alkalmazas, eleg vegyes feladatok
tomkelege. Komm, GUI, Matek, logolas stb.
56500 byte atmega128-on, full optimalizacional meretre.
57846 byte atmega128-on, full optimalizacioval sebessegre
78518 byte atmega128-on, optimalizacio nelkul.
Asszem ez eleg utos eredmeny akar melyiket is nezem.
Ilyen jellegu a program kb egesze (veletlenszeruen kiolloztam belole egy
reszt):
else if(menu_status==menuitems_flash[MIN_MENU-1+4].submenu+4) {
if(!m_read.status) {
float average,meas_little,meas_big;
prev_menu_status=MIN_MENU-1+4;
calc_alien(&d_main,(d_main.dstart + d_main.day * 86400),( d_main.dstart
+ (d_main.day+1) * 86400) );
if(d_main.merleg[1].meas_no) {
average=(float)(d_main.merleg[1].meas_sum)/(float)(d_main.merleg[1].meas_no)
;
meas_little=(float)d_main.merleg[1].meas_little*100/(float)d_main.merleg[1].
meas_no;
meas_big=(float)d_main.merleg[1].meas_big*100/(float)d_main.merleg[1].meas_n
o;
}
else{
average=0;
meas_little=0;
meas_big=0;
}
if(d_main.merleg[1].meas_min==MAX_UVAL(d_main.merleg[1].meas_min))
d_main.merleg[1].meas_min=0;
mysprintf_P((&menuitems[0].mstring[1
Ha ezt valaki atkonvertalja nekem atlag kevesebb mint 3 asm utasitas/sorra,
akkor megeszem a kalapom.
Ha netan meg is teszi, akkor:
-Idotlen idokig fog tartani.
-2 het mulva nem fogja tudni nyomonkovetni, ha bele kell nyulni (marpedig
bele kell...), mert a sok kezzel betett cross-call/common subexpress
optimalizaciot kb lehetetlen.
Arnold
----- Original Message -----
From: <ide.ne.irj at freemail.hu>
To: <elektro at tesla.hu>
Sent: Monday, March 21, 2005 3:28 PM
Subject: Re: kodtabla
> 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.
> Ellenkezo esetben nem mukodhetne sokak kedvence, az AVR JTAG 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