Prefetch earlier in qsearch()
authorsnicolet <cassio@free.fr>
Sat, 17 Jun 2017 02:52:38 +0000 (19:52 -0700)
committerJoona Kiiski <joona@zoox.com>
Sat, 17 Jun 2017 02:52:38 +0000 (19:52 -0700)
Closes #1139

src/search.cpp

index 51d3ae8cba3910b48301adab0507316e09acb850..aafe82a91b942240ee95f6facc1d96295bff3415 100644 (file)
@@ -1256,6 +1256,9 @@ moves_loop: // When in check search starts from here
     {
       assert(is_ok(move));
 
+      // Speculative prefetch as early as possible
+      prefetch(TT.first_entry(pos.key_after(move)));
+
       givesCheck =  type_of(move) == NORMAL && !pos.discovered_check_candidates()
                   ? pos.check_squares(type_of(pos.piece_on(from_sq(move)))) & to_sq(move)
                   : pos.gives_check(move);
@@ -1297,9 +1300,6 @@ moves_loop: // When in check search starts from here
           &&  !pos.see_ge(move))
           continue;
 
-      // Speculative prefetch as early as possible
-      prefetch(TT.first_entry(pos.key_after(move)));
-
       // Check for legality just before making the move
       if (!pos.legal(move))
       {