[ NrmMyth @ 20.09.2006. 15:20 ] @
| Zanima me dali koji kompajler vrsi sljedece optimizacije:
1.
Code: void func()
{
int x = 1
int& y = x; // int* y = &x;
return x + y; // return x + *y;
};
U ovo...
Code: void func()
{
int x = 1
return x + x;
};
Ako bolje pogledamo &y (*y) stvarno nije potreban.
2.
Code: int x = 3 + 4*7 + y + 2*y;
U ovo...
Code: int x = 31 + 3*y;
Ovo je nesto kao matematicki pretprocesor.
Hvala na bilo kakvoj informaciji. |
[ kiklop74 @ 20.09.2006. 15:49 ] @
Na to niko ne moze da ti odgovori osim samog kompajlera.
Dakle iskompajliraj taj kod u asembler i vidi kakvi su rezultati u zavisnosti od stepena optimizacije koji si izabrao.
[ NrmMyth @ 20.09.2006. 19:18 ] @
Slab sam s assemblerom, zato i pitam ako netko mozda zna.
[ DjoleReject @ 22.09.2006. 00:58 ] @
Sad nisam siguran bas po pojedinacnim primerima, ali cini mi se da sam na nekom predavanju cuo da svi noviji kompajleri rade ovakve shortkate sami sebi. Kad se pravi .obj fajl, ide se iz nekoliko puta, gde kompajler automatski skonta ove redove koji su uvek isti, pa i zameni promenljive svojim (pametnijim i brzim) kodom. Tako da ti je moj (neproveren) odgovor - Svi.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.