From 22c04190c607b9360d9a23548f8a54e83cf0e74a Mon Sep 17 00:00:00 2001 From: Andreas Hansson Date: Mon, 12 Oct 2015 04:07:59 -0400 Subject: misc: Remove redundant compiler-specific defines This patch moves away from using M5_ATTR_OVERRIDE and the m5::hashmap (and similar) abstractions, as these are no longer needed with gcc 4.7 and clang 3.1 as minimum compiler versions. --- src/base/compiler.hh | 29 ------------------- src/base/cp_annotate.hh | 20 ++++++------- src/base/framebuffer.hh | 4 +-- src/base/hashmap.hh | 71 ----------------------------------------------- src/base/inifile.hh | 7 ++--- src/base/pollevent.hh | 4 +-- src/base/random.hh | 4 +-- src/base/trace.hh | 4 +-- src/base/vnc/vncserver.hh | 4 +-- 9 files changed, 23 insertions(+), 124 deletions(-) delete mode 100644 src/base/hashmap.hh (limited to 'src/base') diff --git a/src/base/compiler.hh b/src/base/compiler.hh index 1a104dd87..9cad07d7a 100644 --- a/src/base/compiler.hh +++ b/src/base/compiler.hh @@ -43,37 +43,8 @@ #ifndef __BASE_COMPILER_HH__ #define __BASE_COMPILER_HH__ -// gcc C++11 status: http://gcc.gnu.org/projects/cxx0x.html -// clang C++11 status: http://clang.llvm.org/cxx_status.html // http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html -/* Support for override control (final/override) */ -#undef M5_COMP_HAS_OVERRIDE_CONTROL - -#if defined(__GNUC__) && !defined(__clang__) /* Check for gcc */ - -# define M5_GCC_VERSION(maj, min) \ - (__GNUC__ > (maj) || (__GNUC__ == (maj) && __GNUC_MINOR__ >= (min))) - -# define M5_COMP_HAS_OVERRIDE_CONTROL M5_GCC_VERSION(4, 7) - -#elif defined(__clang__) /* Check for clang */ - -# define M5_COMP_HAS_OVERRIDE_CONTROL __has_feature(cxx_override_control) - -#else -# error "Need to define compiler options in base/compiler.hh" -#endif - - -#if M5_COMP_HAS_OVERRIDE_CONTROL -# define M5_ATTR_FINAL final -# define M5_ATTR_OVERRIDE override -#else -# define M5_ATTR_FINAL -# define M5_ATTR_OVERRIDE -#endif - #if defined(__GNUC__) // clang or gcc # define M5_ATTR_NORETURN __attribute__((noreturn)) # define M5_DUMMY_RETURN diff --git a/src/base/cp_annotate.hh b/src/base/cp_annotate.hh index a57d9bc79..0a0cc34a3 100644 --- a/src/base/cp_annotate.hh +++ b/src/base/cp_annotate.hh @@ -47,10 +47,10 @@ #include #include #include +#include #include #include "base/loader/symtab.hh" -#include "base/hashmap.hh" #include "base/trace.hh" #include "base/types.hh" #include "debug/AnnotateQ.hh" @@ -127,7 +127,7 @@ class CPA /** * Provide a hash function for the CPI Id type */ -__hash_namespace_begin +namespace std { template <> struct hash > { @@ -139,7 +139,7 @@ struct hash > } }; -__hash_namespace_end +} class CPA : SimObject { @@ -202,8 +202,8 @@ class CPA : SimObject uint8_t cpu; bool dump; - void serialize(CheckpointOut &cp) const M5_ATTR_OVERRIDE; - void unserialize(CheckpointIn &cp) M5_ATTR_OVERRIDE; + void serialize(CheckpointOut &cp) const override; + void unserialize(CheckpointIn &cp) override; }; typedef std::shared_ptr AnnDataPtr; @@ -236,12 +236,12 @@ class CPA : SimObject uint64_t conId; // Convert state strings into state ids - typedef m5::hash_map SCache; + typedef std::unordered_map SCache; typedef std::vector StCache; // Convert sm and queue name,id into queue id typedef std::pair Id; - typedef m5::hash_map IdHCache; + typedef std::unordered_map IdHCache; typedef std::vector IdCache; // Hold mapping of sm and queues to output python @@ -266,7 +266,7 @@ class CPA : SimObject typedef std::map LinkMap; // SC Links - typedef m5::hash_map ScHCache; + typedef std::unordered_map ScHCache; typedef std::vector ScCache; @@ -540,8 +540,8 @@ class CPA : SimObject void dump(bool all); void dumpKey(); - void serialize(CheckpointOut &cp) const M5_ATTR_OVERRIDE; - void unserialize(CheckpointIn &cp) M5_ATTR_OVERRIDE; + void serialize(CheckpointOut &cp) const override; + void unserialize(CheckpointIn &cp) override; }; #endif // !CP_ANNOTATE diff --git a/src/base/framebuffer.hh b/src/base/framebuffer.hh index eaac25111..fbeafb467 100644 --- a/src/base/framebuffer.hh +++ b/src/base/framebuffer.hh @@ -256,8 +256,8 @@ class FrameBuffer : public Serializable virtual ~FrameBuffer(); - void serialize(CheckpointOut &cp) const M5_ATTR_OVERRIDE; - void unserialize(CheckpointIn &cp) M5_ATTR_OVERRIDE; + void serialize(CheckpointOut &cp) const override; + void unserialize(CheckpointIn &cp) override; /** * Resize the frame buffer. diff --git a/src/base/hashmap.hh b/src/base/hashmap.hh deleted file mode 100644 index b838f1e2c..000000000 --- a/src/base/hashmap.hh +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (c) 2012 ARM Limited - * All rights reserved - * - * The license below extends only to copyright in the software and shall - * not be construed as granting a license to any other intellectual - * property including but not limited to intellectual property relating - * to a hardware implementation of the functionality of the software - * licensed hereunder. You may use the software subject to the license - * terms below provided that you ensure that this notice is replicated - * unmodified and in its entirety in all distributions of the software, - * modified or unmodified, in source code or in binary form. - * - * Copyright (c) 2003-2005 The Regents of The University of Michigan - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer; - * redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution; - * neither the name of the copyright holders nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Authors: Nathan Binkert - * Andreas Hansson - */ - -#ifndef __HASHMAP_HH__ -#define __HASHMAP_HH__ - -// we stick with defines here until gcc >= 4.7 and clang >= 3.2 is -// adopted as these are the minimum versions to support variadic -// templates and template aliasing -#define hash_map unordered_map -#define hash_multimap unordered_multimap -#define hash_set unordered_set -#define hash_multiset unordered_multiset - -// gcc >= 4.4 or clang with libc++ no longer rely on the transitional -// tr1 namespace -#include -#include -#define __hash_namespace std -#define __hash_namespace_begin namespace std { -#define __hash_namespace_end } - -namespace m5 { - using ::__hash_namespace::hash_multimap; - using ::__hash_namespace::hash_multiset; - using ::__hash_namespace::hash_map; - using ::__hash_namespace::hash_set; - using ::__hash_namespace::hash; -} - -#endif // __HASHMAP_HH__ diff --git a/src/base/inifile.hh b/src/base/inifile.hh index c2d263619..b4892d60a 100644 --- a/src/base/inifile.hh +++ b/src/base/inifile.hh @@ -35,10 +35,9 @@ #include #include #include +#include #include -#include "base/hashmap.hh" - /** * @file * Declaration of IniFile object. @@ -94,7 +93,7 @@ class IniFile class Section { /// EntryTable type. Map of strings to Entry object pointers. - typedef m5::hash_map EntryTable; + typedef std::unordered_map EntryTable; EntryTable table; ///< Table of entries. mutable bool referenced; ///< Has this section been used? @@ -139,7 +138,7 @@ class IniFile }; /// SectionTable type. Map of strings to Section object pointers. - typedef m5::hash_map SectionTable; + typedef std::unordered_map SectionTable; protected: /// Hash of section names to Section object pointers. diff --git a/src/base/pollevent.hh b/src/base/pollevent.hh index 632239e08..55f3b3717 100644 --- a/src/base/pollevent.hh +++ b/src/base/pollevent.hh @@ -60,8 +60,8 @@ class PollEvent : public Serializable bool queued() { return queue != 0; } - void serialize(CheckpointOut &cp) const M5_ATTR_OVERRIDE; - void unserialize(CheckpointIn &cp) M5_ATTR_OVERRIDE; + void serialize(CheckpointOut &cp) const override; + void unserialize(CheckpointIn &cp) override; }; class PollQueue diff --git a/src/base/random.hh b/src/base/random.hh index dca956306..522ac8913 100644 --- a/src/base/random.hh +++ b/src/base/random.hh @@ -104,8 +104,8 @@ class Random : public Serializable return dist(gen); } - void serialize(CheckpointOut &cp) const M5_ATTR_OVERRIDE; - void unserialize(CheckpointIn &cp) M5_ATTR_OVERRIDE; + void serialize(CheckpointOut &cp) const override; + void unserialize(CheckpointIn &cp) override; }; extern Random random_mt; diff --git a/src/base/trace.hh b/src/base/trace.hh index 2b1d03eff..ddf936ecd 100644 --- a/src/base/trace.hh +++ b/src/base/trace.hh @@ -101,9 +101,9 @@ class OstreamLogger : public Logger { } void logMessage(Tick when, const std::string &name, - const std::string &message) M5_ATTR_OVERRIDE; + const std::string &message) override; - std::ostream &getOstream() M5_ATTR_OVERRIDE { return stream; } + std::ostream &getOstream() override { return stream; } }; /** Get the current global debug logger. This takes ownership of the given diff --git a/src/base/vnc/vncserver.hh b/src/base/vnc/vncserver.hh index 0222a7726..a52850323 100644 --- a/src/base/vnc/vncserver.hh +++ b/src/base/vnc/vncserver.hh @@ -307,8 +307,8 @@ class VncServer : public VncInput static const PixelConverter pixelConverter; public: - void setDirty() M5_ATTR_OVERRIDE; - void frameBufferResized() M5_ATTR_OVERRIDE; + void setDirty() override; + void frameBufferResized() override; }; #endif -- cgit v1.2.3