AVX transition penalties and OS support

55 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

I verified my 32-bit version of a function that uses RDTSC intrinsic funtion ( for MinGW compiler ) and generated assembler codes are as follows:
...
__Z8HrtClockv:
.stabs "../../Include/DevHrtAL.h",132,0,0,Ltext35
Ltext35:
.stabn 68,0,356,LM3141-__Z8HrtClockv
LM3141:
pushl %ebp
movl %esp, %ebp
subl $8, %esp
LBB551:
LBB552:
.stabn 68,0,365,LM3142-__Z8HrtClockv
LM3142:
/APP
rdtsc;
/NO_APP
movl %eax, -8(%ebp)
movl %edx, -4(%ebp)
.stabn 68,0,367,LM3143-__Z8HrtClockv
LM3143:
movl -8(%ebp), %eax
movl -4(%ebp), %edx
LBE552:
LBE551:
.stabn 68,0,368,LM3144-__Z8HrtClockv
LM3144:
leave
ret
.stabs "uiValue:(110,22)",128,0,361,-8
.stabn 192,0,0,LBB552-__Z8HrtClockv
.stabn 224,0,0,LBE552-__Z8HrtClockv
...

Quite interessting, I will check to code.

As to your question, no currently I am not using gcc under Linux, at least not in combination with SSE/AVX.

__Z8HrtClockv what is this function?It looks like some (by judging its name) RTC handler routine.

>>Quite interessting, I will check to code.
>>
>>As to your question, no currently I am not using gcc under Linux, at least not in combination with SSE/AVX.

For a long time I'm using MinGW C++ compiler v3.4.2 ( 32-bit version / supports SSE, SSE2 and SSE3 / No support for SSSE3, AVX, and AVX2 ) and I really like it because of its compatibility with GCC. You could consider it as a 99.99% GCC-compatible compiler on Windows platform and it means that up to some point I don't need a Linux and it reduces development overheads related to C/C++ codes compatibility. An upgrade to a newer version 4.x.x ( 32-bit & 64-bit with support for latest Intel instruction sets ) is scheduled some time this year. Anyway, this is a really good C/C++ compiler for free (!).

Pages

Leave a Comment

Please sign in to add a comment. Not a member? Join today