Re[3]: Какая же это нахрен оптимизация?
От: Alex Fedotov США  
Дата: 11.01.02 16:46
Оценка: 2 (1)
Здравствуйте Аноним, Вы писали:

А>; 450 : double *p = tmp.pMO;


А> 0003b 8b 44 24 14 mov eax, DWORD PTR _tmp$[esp+44]


А>; 451 : register int index = 0;


А> 00047 33 c9 xor ecx, ecx

А>$L85342:

А>; 452 : do

А>; 453 : {

А>; 455 : *(p++) *= Number;


А> 00049 dd 45 10 fld QWORD PTR _Number$[ebp]

А> 0004c dc 08 fmul QWORD PTR [eax]
А> 0004e 83 c0 08 add eax, 8

А>; 456 : index++;


А> 00051 41 inc ecx

А> 00052 dd 58 f8 fstp QWORD PTR [eax-8]

А>; 457 : }

А>; 458 : while (index < Vector1.Dimension);

А> 00055 3b 4e 04 cmp ecx, DWORD PTR [esi+4]

А> 00058 7c ef jl SHORT $L85342

А>Все равно сначала add eax,8 а затем fstp c -8 Компилятор VC 6.0 херня


Молодой человек, прежде чем наезжать на компилятор, прочитайте пару руководств по оптимизации для Pentium, в частности про latency операции fmul. Тогда вы поймете, что результат fmul появляется не мгновенно, и что процессор на это время стоит занять полезными интсрукциями. Именно поэтому нужно поместить fstp подальше от fmul.
-- Alex Fedotov
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.