Export of internal Abseil changes.
-- a2adbf75201f6b7feba929f77dfc4f87f9c1110b by Abseil Team <absl-team@google.com>: This change allows for capturing the address of the mutex from which a call to `Block(...)` could be introducing latency. The attribute is a no-op if the application is not being built with XRay instrumentation. See http://llvm.org/docs/XRay.html for more information about XRay. PiperOrigin-RevId: 225752598 -- 6bc7f25573ddc6711f484dfacab9459f45e0bf42 by Abseil Team <absl-team@google.com>: Update absl/utility/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 225651883 -- 4acde5e72032f31a26a1ffa53a28f35dbb0bd7d3 by Abseil Team <absl-team@google.com>: Update absl/types/CMakeLists.txt to use new functions i.e. absl_cc_(library|test) PiperOrigin-RevId: 225584788 -- fe2c740d64b17cece25eee4e5d2196a7c059d3e9 by Abseil Team <absl-team@google.com>: Update auto-generated build options files. PiperOrigin-RevId: 225557283 -- cd779dddceeee191ee82deb6b9030c4db288e758 by Jon Cohen <cohenjon@google.com>: Internal change. PiperOrigin-RevId: 225556657 -- 3d56dd132d845930c3fb520a39ee77ecb2430bd2 by Matt Kulukundis <kfm@google.com>: Internal cleanup PiperOrigin-RevId: 225488946 GitOrigin-RevId: a2adbf75201f6b7feba929f77dfc4f87f9c1110b Change-Id: I1b2178e053bdebc8cf3dcb017b0e247619b81a0c
This commit is contained in:
parent
389ec3f906
commit
111ca7060a
13 changed files with 381 additions and 258 deletions
|
@ -17,9 +17,9 @@
|
|||
load(
|
||||
"//absl:copts/configure_copts.bzl",
|
||||
"ABSL_DEFAULT_COPTS",
|
||||
"ABSL_TEST_COPTS",
|
||||
"ABSL_EXCEPTIONS_FLAG",
|
||||
"ABSL_EXCEPTIONS_FLAG_LINKOPTS",
|
||||
"ABSL_TEST_COPTS",
|
||||
)
|
||||
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
@ -463,6 +463,12 @@ cc_library(
|
|||
],
|
||||
)
|
||||
|
||||
cc_library(
|
||||
name = "have_sse",
|
||||
hdrs = ["internal/have_sse.h"],
|
||||
copts = ABSL_DEFAULT_COPTS,
|
||||
)
|
||||
|
||||
cc_library(
|
||||
name = "raw_hash_set",
|
||||
srcs = ["internal/raw_hash_set.cc"],
|
||||
|
@ -473,6 +479,7 @@ cc_library(
|
|||
":container_memory",
|
||||
":hash_policy_traits",
|
||||
":hashtable_debug_hooks",
|
||||
":have_sse",
|
||||
":layout",
|
||||
"//absl/base:bits",
|
||||
"//absl/base:config",
|
||||
|
|
|
@ -452,6 +452,16 @@ absl_cc_library(
|
|||
PUBLIC
|
||||
)
|
||||
|
||||
absl_cc_library(
|
||||
NAME
|
||||
have_sse
|
||||
HDRS
|
||||
"internal/have_sse.h"
|
||||
COPTS
|
||||
${ABSL_DEFAULT_COPTS}
|
||||
PUBLIC
|
||||
)
|
||||
|
||||
absl_cc_library(
|
||||
NAME
|
||||
node_hash_policy
|
||||
|
@ -496,15 +506,16 @@ absl_cc_library(
|
|||
COPTS
|
||||
${ABSL_DEFAULT_COPTS}
|
||||
DEPS
|
||||
absl::compressed_tuple
|
||||
absl::container_memory
|
||||
absl::hash_policy_traits
|
||||
absl::hashtable_debug_hooks
|
||||
absl::layout
|
||||
absl::bits
|
||||
absl::compressed_tuple
|
||||
absl::config
|
||||
absl::container_memory
|
||||
absl::core_headers
|
||||
absl::endian
|
||||
absl::hash_policy_traits
|
||||
absl::hashtable_debug_hooks
|
||||
absl::have_sse
|
||||
absl::layout
|
||||
absl::memory
|
||||
absl::meta
|
||||
absl::optional
|
||||
|
|
49
absl/container/internal/have_sse.h
Normal file
49
absl/container/internal/have_sse.h
Normal file
|
@ -0,0 +1,49 @@
|
|||
// Copyright 2018 The Abseil Authors.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
// Shared config probing for SSE instructions used in Swiss tables.
|
||||
#ifndef ABSL_CONTAINER_INTERNAL_HAVE_SSE_H_
|
||||
#define ABSL_CONTAINER_INTERNAL_HAVE_SSE_H_
|
||||
|
||||
#ifndef SWISSTABLE_HAVE_SSE2
|
||||
#if defined(__SSE2__) || \
|
||||
(defined(_MSC_VER) && \
|
||||
(defined(_M_X64) || (defined(_M_IX86) && _M_IX86_FP >= 2)))
|
||||
#define SWISSTABLE_HAVE_SSE2 1
|
||||
#else
|
||||
#define SWISSTABLE_HAVE_SSE2 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef SWISSTABLE_HAVE_SSSE3
|
||||
#ifdef __SSSE3__
|
||||
#define SWISSTABLE_HAVE_SSSE3 1
|
||||
#else
|
||||
#define SWISSTABLE_HAVE_SSSE3 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if SWISSTABLE_HAVE_SSSE3 && !SWISSTABLE_HAVE_SSE2
|
||||
#error "Bad configuration!"
|
||||
#endif
|
||||
|
||||
#if SWISSTABLE_HAVE_SSE2
|
||||
#include <emmintrin.h>
|
||||
#endif
|
||||
|
||||
#if SWISSTABLE_HAVE_SSSE3
|
||||
#include <tmmintrin.h>
|
||||
#endif
|
||||
|
||||
#endif // ABSL_CONTAINER_INTERNAL_HAVE_SSE_H_
|
|
@ -91,36 +91,6 @@
|
|||
#ifndef ABSL_CONTAINER_INTERNAL_RAW_HASH_SET_H_
|
||||
#define ABSL_CONTAINER_INTERNAL_RAW_HASH_SET_H_
|
||||
|
||||
#ifndef SWISSTABLE_HAVE_SSE2
|
||||
#if defined(__SSE2__) || \
|
||||
(defined(_MSC_VER) && \
|
||||
(defined(_M_X64) || (defined(_M_IX86) && _M_IX86_FP >= 2)))
|
||||
#define SWISSTABLE_HAVE_SSE2 1
|
||||
#else
|
||||
#define SWISSTABLE_HAVE_SSE2 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef SWISSTABLE_HAVE_SSSE3
|
||||
#ifdef __SSSE3__
|
||||
#define SWISSTABLE_HAVE_SSSE3 1
|
||||
#else
|
||||
#define SWISSTABLE_HAVE_SSSE3 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if SWISSTABLE_HAVE_SSSE3 && !SWISSTABLE_HAVE_SSE2
|
||||
#error "Bad configuration!"
|
||||
#endif
|
||||
|
||||
#if SWISSTABLE_HAVE_SSE2
|
||||
#include <emmintrin.h>
|
||||
#endif
|
||||
|
||||
#if SWISSTABLE_HAVE_SSSE3
|
||||
#include <tmmintrin.h>
|
||||
#endif
|
||||
|
||||
#include <algorithm>
|
||||
#include <cmath>
|
||||
#include <cstdint>
|
||||
|
@ -139,6 +109,7 @@
|
|||
#include "absl/container/internal/container_memory.h"
|
||||
#include "absl/container/internal/hash_policy_traits.h"
|
||||
#include "absl/container/internal/hashtable_debug_hooks.h"
|
||||
#include "absl/container/internal/have_sse.h"
|
||||
#include "absl/container/internal/layout.h"
|
||||
#include "absl/memory/memory.h"
|
||||
#include "absl/meta/type_traits.h"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue