Usenet.com

www.Usenet.com

Group Index

Comp Thread Archive from Usenet.com

<-- __Chronological__ --> <-- __Thread__ -->

Re: Intel compilers performance over itanium 2 (madison)



Eugene Nalimov wrote:

And here is output of 64-bit Visual C:

Much better!


(I've stripped away the recovery code and bundle information)

 ld4.s r31=[r32]        //7.R cc:0
 cmp4.gtu.unc p0,p6=1, r33       //7. cc:0
 mov r8=r0;;         //7.R cc:0
  (p6) chk.s.m  r31, func$2#        //7.I cc:1
  (p6) cmp4.gtu.unc p0,p7=r33, r31;;       //7.I cc:1
  (p7) mov r8=1         //7.I cc:2
 br.ret.sptk.many b0;;        //8  cc:2

It is really interesting to note that the Intel compiler didn't even try to generate IA-64 style code, while the MS compiler goes all out, including an early load of the mVar limit, before the first check has finished.


As an asm programmer, we would probably know that this is _always_ OK, since the self pointer cannot be NULL at this point, but doing it this way doesn't cost any speed, and maintains the C logic.

If the linker is intelligent enough to keep all of the low-probability recovery instructions away from the mainline code, it should run very well.

Terje

--
- <[EMAIL PROTECTED]>
"almost all programming can be viewed as an exercise in caching"




<-- __Chronological__ --> <-- __Thread__ -->


Usenet.com



Please check out one of the premium Usenet Newsgroup Service Providers below for access to Usenet.