I tested with VC7. The register keyword made no difference, either with optimisation turned on or off.
Unoptimized assembly:
Code:
; 5 : register int i;
; 6 :
; 7 : for (i = 0; i < 50; i++)
mov DWORD PTR _i$[ebp], 0
jmp SHORT $L794
$L795:
mov eax, DWORD PTR _i$[ebp]
add eax, 1
mov DWORD PTR _i$[ebp], eax
$L794:
cmp DWORD PTR _i$[ebp], 50 ; 00000032H
jge SHORT $L792
Optimized (/02) assembly:
Code:
; 5 : int i;
; 6 :
; 7 : for (i = 0; i < 50; i++)
mov esi, 50 ; 00000032H
$L864:
// Loop contents omitted.
; 5 : int i;
; 6 :
; 7 : for (i = 0; i < 50; i++)
dec esi
jne SHORT $L864