Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: New C compiler, tried on Crafty

Author: Robert Hyatt

Date: 13:12:07 04/25/00

Go up one level in this thread


On April 25, 2000 at 03:50:24, Jeremiah Penery wrote:

>On April 25, 2000 at 02:44:26, Dann Corbit wrote:
>
>>On April 25, 2000 at 02:22:07, Jeremiah Penery wrote:
>>
>>>On April 24, 2000 at 17:56:28, Dan Andersson wrote:
>>>
>>>>http://www.codeplay.com/
>>>>VectorC, might be something?
>>>
>>>It's interesting that on their benchmark page, they DON'T compare it with MSVC.
>>>:P
>>>
>>>It looks interesting, however.  I'm going to try it with Crafty.
>>
>>If you actually get it to compile stuff, I'd like to know what you did.
>>It can't even seem to find a local include file in my tests.
>
>Try doing this:
>
>In MSVC, go to Tools->Options->Directories.  Then for each type in the "Show
>Directories For:", add the path where you put the VectorC files.  Then in MSVC
>you can put "vectorc /vc" in place of "cl" for the compiler (CC = vectorc /vc).
>You can also add some special VectorC options to this, as in:  "vectorc /target
>IA/PII /optimize 10 /vc"
>
>The problem I'm having now is that it's not wanting to compile properly.  When I
>tell it to compile for the PII architecture, I get the following error:
>
>x1.c(419) : error: INTERNAL ERROR: MMX and floating point unit used in same
>block
>Statement: Temp#:8 := -1 >> Temp#:8: u64   ; line: 419
>
>The relevant code is:
>
>BITBOARD Mask(int arg1) {
>  register BITBOARD i;
>  i=(BITBOARD) -1;
>  if (arg1 == 128)
>    return(0);
>  else if (arg1 > 64)
>    return(i>>(arg1-64));  //This is where the problem occurs
>  else
>    return(i<<(64-arg1));
>}
>
>If I don't tell it to compile specifically for the PII, I get:
>
>x1.c(8780) : error: Constant expected
>x1.c(8783) : error: Constant expected
>x1.c(8786) : error: Constant expected
>x1.c(8789) : error: Constant expected
>
>And the relevant lines are:
>
>  switch (check_direction) {
>    case +1:
>      target=plus1dir[king_square-1] ^ plus1dir[checking_square];
>      break;
>    case +7:   // Here's the first error.  The rest occur on the following
>               // 3 "case +x" statements.
>      target=plus7dir[king_square-7] ^ plus7dir[checking_square];
>      break;
>    case +8:
>      target=plus8dir[king_square-8] ^ plus8dir[checking_square];
>      break;
>    case +9:
>      target=plus9dir[king_square-9] ^ plus9dir[checking_square];
>      break;
>    case -1:
>      target=minus1dir[king_square+1] ^ minus1dir[checking_square];
>      break;
>    case -7:
>      target=minus7dir[king_square+7] ^ minus7dir[checking_square];
>      break;
>    case -8:
>      target=minus8dir[king_square+8] ^ minus8dir[checking_square];
>      break;
>    case -9:
>      target=minus9dir[king_square+9] ^ minus9dir[checking_square];
>      break;
>    default:
>      target=0;
>      break;
>  }
>
>
>Can anyone offer suggestions?
>
>Thanks,
>Jeremiah


Crafty's bitboards have broken older versions of GCC, current versions of
SUN CC, HP CC, and others.  It is not surprising that this compiler is going
belly-up.  Best bet is to send the stuff to the compiler guys there and let
them take a look.  MMX stuff might make a real difference if the compiler bugs
are worked out.



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.