Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: About compiler optimizations

Author: Eugene Nalimov

Date: 10:42:25 12/23/02

Go up one level in this thread


Returning to the original question: do you agree that your definition of
single-pass vs. multi-pass compiler was wrong, be it now, 1969, or 1959?

And do you still insist that I am f***ing idiot?

Thanks,
Eugene

On December 23, 2002 at 13:14:30, Vincent Diepeveen wrote:

>On December 23, 2002 at 12:06:58, Eugene Nalimov wrote:
>
>Crafty has more influences by Diepeveen than DIEP by Hyatt.
>Let's be clear about it.
>
>The only thing i have from crafty in DIEP is the assembly lock()
>function.
>
>it is typical that that contained a bug too :)
>
>I was referring to 1991 statements with regards to compiler passes.
>
>But the influences in crafty by statemetns of me are *big*.
>
>wac 002 is a good example of it. I said for years that crafty
>solved it for the wrong reason. Then some years later bob fixes it.
>
>I am posting now regurarly that doing 4 probes within 1 cache line
>is faster than doing a 2 table probes which eats 2 cache lines.
>
>Will be probably take another 2 years then bob puts it in crafty.
>
>I remember another 10 algorithmic things and ideas i contributed which
>are all worked out in crafty.
>
>I remember a very dubious last ply pruning which crafty was doing and
>hurting its performance. After extensive testing i concluded it to not
>work for DIEP. i told bob and also why it hurted crafty. He took it out.
>
>That was done silently.
>
>There is another dozens of things.
>
>But obviously i never focussed too much upon implementation details
>like the hashtable implementation of crafty is now.
>
>This where you contributed probably that much by now to crafty that
>you should get co-authored :)
>
>There is another thing that should get taken out of crafty by the way
>which will probably be done pretty soon.
>
>In not a single top program history tables work. Only exception is
>crafty. Matter of time before it's taken out. I just posted it 10
>times here so that might not be enough. i didn't check though whether
>it's already taken out of crafty :)
>
>But to be clear, crafty is doing so little last few plies before the
>qsearch that with 1 afternoon of work i would be capable of losslessly
>search 1 ply deeper with it and also get a better speedup than it
>currently gets (of course bob and i are disagreeing about his
>actual speedup at 4 processors. 30 testpositions from GCP indicated
>it was 2.8 and 3.0 when without nullmove). His own positions
>indicated something else. But i would get it better with just an
>afternoon of toying.
>
>Yet i would have done those changes already years ago if such versions
>would not get publicly posted with source code.
>
>That's the main reason why crafty is still in the 80s with regards to
>algorithms.
>
>>I'd recommend you to read something before saying that it agrees with you. The
>>web page which URL you posted contains
>
>>"In the case of the example multiple-pass compiler,
>>
>>Pass 1: The compiler driver calls the syntactic analyzer (which in turn makes
>>use of the lexical analyzer) which reads the original source program, parses it,
>>and constructs an abstract syntax tree (AST).
>>Pass 2: The compiler driver then calls the semantic analyzer which traverses the
>>AST, checks it for errors, and annotates it.
>>Pass 3: The compiler driver then calls the code generator which traverses the
>>annotated AST and generates the code"
>>
>>As you see, syntax analyzer is called exactly once, for the first pass. All
>>other passes work on the ASTs.
>>
>>The definition of "single-pass" and "multi-pass" compiler had not changed for a
>>long time. I just checked 1959 paper I have at home, and it is exactly the same.
>>
>>I have my own opinion about yours and Bob's algorithmic computer chess
>>knowledge. For example, I thought that Bob teached you and helped you the last
>>two years, not vice verse, am I right?
>>
>>Thanks,
>>Eugene ("f***ing idiot")
>>
>>On December 23, 2002 at 09:28:30, Vincent Diepeveen wrote:
>>
>>>On December 21, 2002 at 22:54:05, Eugene Nalimov wrote:
>>>
>>>>Wrong.
>>>>
>>>>In all compiler textbooks number of passes means "how much times compiler goes
>>>>through the program code" regardless of the program's representation -- be it
>>>>source or some intermediate form (quads, tuples, triades, ASTs, etc.).
>>>>
>>>>Thanks,
>>>>Eugene
>>>
>>>That's a different form of passes which have more to do with the difficulty
>>>of optimizing high level languages.
>>>
>>>Note i just quoted a statement from some researchers in the field
>>>of compiler optimizations.
>>>
>>>Of course that was from a few years ago. Let's be clear there. My knowledge
>>>is of course very limited with regards to todays compilers, like Bob's
>>>algorithmic computerchess knowledge is too.
>>>
>>>>On December 21, 2002 at 21:20:26, Vincent Diepeveen wrote:
>>>>
>>>>>On December 21, 2002 at 17:45:43, Matt Taylor wrote:
>>>>>
>>>>>>On December 21, 2002 at 17:29:11, Vincent Diepeveen wrote:
>>>>>>
>>>>>>>On December 21, 2002 at 14:32:18, Matt Taylor wrote:
>>>>>>>
>>>>>>>checkout the compiler faq at :
>>>>>>>
>>>>>>>http://www.cs.strath.ac.uk/~hl/classes/52.358/FAQ/passes.html
>>>>>>>
>>>>>>>[off topic nonsense removed]
>>>>>>
>>>>>>Ok, the FAQ explains to me principles which were self-evident. When you read the
>>>>>>FAQ, you realize that an optimizing single-pass C compiler is not possible.
>>>>>>
>>>>>>"Optimization: Only really possible with a multi-pass compiler"
>>>>>>
>>>>>>It also reaffirms what I'd already stated -- multi-pass compilers are EASIER to
>>>>>>write because the code is more modular and has less coupling. Just about the
>>>>>>only data structure that you're going to rely on to go between stages is the
>>>>>>AST, and that's not that difficult.
>>>>>>
>>>>>>This is quite familiar for me as I've been working on a compiler implementation
>>>>>>for a C-like language. (Actually it's more like C++, but it lacks multiple
>>>>>>inheritance and templates.)
>>>>>>
>>>>>>-Matt
>>>>>
>>>>>If you have 'so much' experience with compilers, whereas i consider myself
>>>>>a layman; i just wrote a few very very primitif compilers (and no assembly
>>>>>output of them even); i wonder why you do not know what 'single pass
>>>>>compiler' means. It has to do with how many times a compiler reads
>>>>>the source code. Not so much how many high level optimizations
>>>>>you apply to it.
>>>>>
>>>>>So now you learned again something.
>>>>>
>>>>>Best regards,
>>>>>Vincent.



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.