benchmarking confusion
   
    Stephen Weeks
     
    MLton@sourcelight.com
       
    Thu, 19 Jul 2001 15:54:03 -0700
    
    
  
> What is the actual difference (if any) in the generated code?  It would be
> enough to look at the spy output.
Here is -local-flatten false.
0x8049267:	mov    0x3c(%edi),%esp
0x804926a:	mov    0x34(%edi),%ebp
0x804926d:	cmp    %ebp,%esp
0x804926f:	je     0x80494dc
0x8049275:	dec    %ebp
0x8049276:	jo     0x8049504
0x804927c:	sub    %esp,%ebp
0x804927e:	jo     0x8049510
0x8049284:	mov    0x30(%edi),%edx
0x8049287:	cmp    0xfffffff8(%edx),%ebp
0x804928a:	jae    0x804951c
0x8049290:	mov    0x38(%edi),%ecx
0x8049293:	mov    %esp,%ebx
0x8049295:	mov    (%edx,%ebp,4),%esp
0x8049298:	mov    %esp,(%ecx,%ebx,4)
0x804929b:	inc    %ebx
0x804929c:	jo     0x8049528
0x80492a2:	mov    %ebx,0x3c(%edi)
0x80492a5:	jmp    0x8049267
Here is -local-flatten true.
0x804916f:	mov    0x2c(%edi),%esp
0x8049172:	mov    0x24(%edi),%ebp
0x8049175:	cmp    %ebp,%esp
0x8049177:	je     0x80493dc
0x804917d:	dec    %ebp
0x804917e:	jo     0x804940c
0x8049184:	sub    %esp,%ebp
0x8049186:	jo     0x8049418
0x804918c:	mov    0x1c(%edi),%edx
0x804918f:	cmp    0xfffffff8(%edx),%ebp
0x8049192:	jae    0x8049424
0x8049198:	mov    0x28(%edi),%ecx
0x804919b:	mov    %esp,%ebx
0x804919d:	mov    (%edx,%ebp,4),%esp
0x80491a0:	mov    %esp,(%ecx,%ebx,4)
0x80491a3:	inc    %ebx
0x80491a4:	jo     0x8049430
0x80491aa:	mov    %ebx,0x2c(%edi)
0x80491ad:	jmp    0x804916f
Looks the same to me.
> I don't know if it is worth a reboot, but you
> might give it a shot.
Not worth it for now.