Not yet, there are still something need to be done recently, stay tuned, ☺
From: spring_wind [mailto:[email protected]] Sent: Friday, December 26, 2014 8:55 PM To: Guo, Yejun Cc: [email protected] Subject: Re:[Beignet] [PATCH] replace hash_map with map Great, is it enough to let me build beignet on CentOS 6.5? At 2014-12-24 16:17:46, "Guo Yejun" <[email protected]<mailto:[email protected]>> wrote: >there is no strong evidence to show hash_map makes better performance >for beignet, since hash_map requires std::hash which is not supported >in some g++ old versions, so replace hash_map with map. > >Signed-off-by: Guo Yejun <[email protected]<mailto:[email protected]>> >--- > backend/src/CMakeLists.txt | 1 - > backend/src/backend/program.hpp | 3 +- > backend/src/ir/unit.hpp | 5 +-- > backend/src/llvm/llvm_gen_backend.hpp | 5 +-- > backend/src/sys/hash_map.hpp | 82 ----------------------------------- > 5 files changed, 5 insertions(+), 91 deletions(-) > delete mode 100644 backend/src/sys/hash_map.hpp > >diff --git a/backend/src/CMakeLists.txt b/backend/src/CMakeLists.txt >index deba230..bec0d2a 100644 >--- a/backend/src/CMakeLists.txt >+++ b/backend/src/CMakeLists.txt >@@ -21,7 +21,6 @@ add_dependencies(beignet_bitcode libocl) > set (GBE_SRC > ${ocl_blob_file} > sys/vector.hpp >- sys/hash_map.hpp > sys/map.hpp > sys/set.hpp > sys/intrusive_list.hpp >diff --git a/backend/src/backend/program.hpp b/backend/src/backend/program.hpp >index 4e6b275..446c521 100644 >--- a/backend/src/backend/program.hpp >+++ b/backend/src/backend/program.hpp >@@ -32,7 +32,6 @@ > #include "ir/function.hpp" > #include "ir/printf.hpp" > #include "ir/sampler.hpp" >-#include "sys/hash_map.hpp" > #include "sys/vector.hpp" > #include <string> > >@@ -307,7 +306,7 @@ namespace gbe { > /*! Allocate an empty kernel. */ > virtual Kernel *allocateKernel(const std::string &name) = 0; > /*! Kernels sorted by their name */ >- hash_map<std::string, Kernel*> kernels; >+ map<std::string, Kernel*> kernels; > /*! Global (constants) outside any kernel */ > ir::ConstantSet *constantSet; > /*! Use custom allocators */ >diff --git a/backend/src/ir/unit.hpp b/backend/src/ir/unit.hpp >index b5b0fa9..e2ccbe8 100644 >--- a/backend/src/ir/unit.hpp >+++ b/backend/src/ir/unit.hpp >@@ -26,7 +26,6 @@ > > #include "ir/constant.hpp" > #include "ir/register.hpp" >-#include "sys/hash_map.hpp" > #include "sys/map.hpp" > > namespace gbe { >@@ -41,7 +40,7 @@ namespace ir { > class Unit : public NonCopyable > { > public: >- typedef hash_map<std::string, Function*> FunctionSet; >+ typedef map<std::string, Function*> FunctionSet; > /*! Create an empty unit */ > Unit(PointerSize pointerSize = POINTER_32_BITS); > /*! Release everything (*including* the function pointers) */ >@@ -76,7 +75,7 @@ namespace ir { > bool getValid() { return valid; } > private: > friend class ContextInterface; //!< Can free modify the unit >- hash_map<std::string, Function*> functions; //!< All the defined functions >+ FunctionSet functions; //!< All the defined functions > ConstantSet constantSet; //!< All the constants defined in the unit > PointerSize pointerSize; //!< Size shared by all pointers > GBE_CLASS(Unit); >diff --git a/backend/src/llvm/llvm_gen_backend.hpp >b/backend/src/llvm/llvm_gen_backend.hpp >index 966a06c..e127996 100644 >--- a/backend/src/llvm/llvm_gen_backend.hpp >+++ b/backend/src/llvm/llvm_gen_backend.hpp >@@ -37,7 +37,6 @@ > #endif > #include "sys/platform.hpp" > #include "sys/map.hpp" >-#include "sys/hash_map.hpp" > #include <algorithm> > > // LLVM Type >@@ -57,7 +56,7 @@ namespace gbe > > /*! Build the hash map for OCL functions on Gen */ > struct OCLIntrinsicMap { >- /*! Build the intrinsic hash map */ >+ /*! Build the intrinsic map */ > OCLIntrinsicMap(void) { > #define DECL_LLVM_GEN_FUNCTION(ID, NAME) \ > map.insert(std::make_pair(#NAME, GEN_OCL_##ID)); >@@ -65,7 +64,7 @@ namespace gbe > #undef DECL_LLVM_GEN_FUNCTION > } > /*! Sort intrinsics with their names */ >- hash_map<std::string, OCLInstrinsic> map; >+ gbe::map<std::string, OCLInstrinsic> map; > OCLInstrinsic find(const std::string symbol) const { > auto it = map.find(symbol); > >diff --git a/backend/src/sys/hash_map.hpp b/backend/src/sys/hash_map.hpp >deleted file mode 100644 >index e153cf3..0000000 >--- a/backend/src/sys/hash_map.hpp >+++ /dev/null >@@ -1,82 +0,0 @@ >-/* >- * Copyright © 2012 Intel Corporation >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Lesser General Public >- * License as published by the Free Software Foundation; either >- * version 2.1 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Lesser General Public License for more details. >- * >- * You should have received a copy of the GNU Lesser General Public >- * License along with this library. If not, see ><http://www.gnu.org/licenses/>. >- * >- * Author: Benjamin Segovia ><[email protected]<mailto:[email protected]>> >- */ >- >-/** >- * \file hash_map.hpp >- * >- * \author Benjamin Segovia ><[email protected]<mailto:[email protected]>> >- */ >- >-#ifndef __GBE_HASH_MAP_HPP__ >-#define __GBE_HASH_MAP_HPP__ >- >-#include "sys/platform.hpp" >- >-#ifdef __MSVC__ >-#include <unordered_map> >-#else >-#include <tr1/unordered_map> >-#endif /* __MSVC__ */ >- >-namespace gbe >-{ >- /*! Add specific allocator to the hash map */ >- template <class Key, >- class T, >- class Hash = std::hash<Key>, >- class Pred = std::equal_to<Key>> >- class hash_map : public >std::tr1::unordered_map<Key,T,Hash,Pred,Allocator<std::pair<const Key,T>>>, >- public NonCopyable >- { >- public: >- // Typedefs >- typedef std::pair<const Key, T> value_type; >- typedef Allocator<value_type> allocator_type; >- typedef std::tr1::unordered_map<Key,T,Hash,Pred,allocator_type> >parent_type; >- typedef typename allocator_type::size_type size_type; >- typedef Key key_type; >- typedef T mapped_type; >- typedef Hash hasher; >- typedef Pred key_equal; >- >- /*! Default constructor */ >- INLINE explicit hash_map(size_type n = 3, >- const hasher& hf = hasher(), >- const key_equal& eql = key_equal(), >- const allocator_type& a = allocator_type()) : >- parent_type(n, hf, eql, a) {} >- /*! Iteration constructor */ >- template <class InputIterator> >- INLINE hash_map(InputIterator first, >- InputIterator last, >- size_type n = 3, >- const hasher& hf = hasher(), >- const key_equal& eql = key_equal(), >- const allocator_type& a = allocator_type()) : >- parent_type(first,last,n,hf,eql,a) {} >-#if 0 >- /*! Copy constructor */ >- INLINE hash_map(const hash_map &other) : parent_type(other) {} >-#endif >- GBE_CLASS(hash_map); >- }; >-} /* namespace gbe */ >- >-#endif /* __GBE_HASH_MAP_HPP__ */ >- >-- >1.9.1 > >_______________________________________________ >Beignet mailing list >[email protected]<mailto:[email protected]> >http://lists.freedesktop.org/mailman/listinfo/beignet 来自网易手机号码邮箱了解更多<http://shouji.163.com>
_______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
