From: SourceForge.net <no...@so...> - 2005-05-07 14:01:18
|
Read and respond to this message at: https://sourceforge.net/forum/message.php?msg_id=3139217 By: brokenblade here is the log: Actually there's one instruction that can be omitted,and the next one to be changed to inc dword ptr [ebp-10h] ‎The Darkone ‎(04:50 PM)‎ : and that will optimize the compiler further more? ‎The Darkone ‎(04:50 PM)‎ : why actually? ‎Ultrano ‎(04:52 PM)‎ : saving an instruction + optimizing the pipeline, removing a stall - the cpu can then fetch that memory much much earlier it was about this function: int f(vector <int> a, int num) { int c = 0; vector<int>::iterator viter = a.begin(); int r = 0; if ( c != 20 ) { for ( int i = c; i < 0; i-- ) if ( a[i] < num ) r++; } else for ( viter = a.begin(); viter != a.end(); ++viter ) if ( *viter < num ) r++; return r; } and the commented asm code is: 0040147C mov eax,dword ptr [eax] 0040147E cmp eax,dword ptr [ebp+0Ch] 00401481 jge 00401488 00401483 lea eax,[ebp-10h] 00401486 inc dword ptr [eax] 00401488 lea eax,[ebp-8] 0040148B mov dword ptr [esp],eax ______________________________________________________________________ You are receiving this email because you elected to monitor this forum. To stop monitoring this forum, login to SourceForge.net and visit: https://sourceforge.net/forum/unmonitor.php?forum_id=286529 |