summaryrefslogtreecommitdiff
path: root/src/base
diff options
context:
space:
mode:
authorAndreas Hansson <andreas.hansson@arm.com>2015-10-12 04:07:59 -0400
committerAndreas Hansson <andreas.hansson@arm.com>2015-10-12 04:07:59 -0400
commit22c04190c607b9360d9a23548f8a54e83cf0e74a (patch)
tree576135962e3c9c725157b461c8009b05933bba2b /src/base
parent735c4a87665119a33443cf8d191d329c66191c6e (diff)
downloadgem5-22c04190c607b9360d9a23548f8a54e83cf0e74a.tar.xz
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.
Diffstat (limited to 'src/base')
-rw-r--r--src/base/compiler.hh29
-rw-r--r--src/base/cp_annotate.hh20
-rw-r--r--src/base/framebuffer.hh4
-rw-r--r--src/base/hashmap.hh71
-rw-r--r--src/base/inifile.hh7
-rw-r--r--src/base/pollevent.hh4
-rw-r--r--src/base/random.hh4
-rw-r--r--src/base/trace.hh4
-rw-r--r--src/base/vnc/vncserver.hh4
9 files changed, 23 insertions, 124 deletions
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 <map>
#include <memory>
#include <string>
+#include <unordered_map>
#include <vector>
#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<std::pair<std::string, uint64_t> >
{
@@ -139,7 +139,7 @@ struct hash<std::pair<std::string, uint64_t> >
}
};
-__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<AnnotateData> AnnDataPtr;
@@ -236,12 +236,12 @@ class CPA : SimObject
uint64_t conId;
// Convert state strings into state ids
- typedef m5::hash_map<std::string, int> SCache;
+ typedef std::unordered_map<std::string, int> SCache;
typedef std::vector<SCache> StCache;
// Convert sm and queue name,id into queue id
typedef std::pair<std::string, uint64_t> Id;
- typedef m5::hash_map<Id, int> IdHCache;
+ typedef std::unordered_map<Id, int> IdHCache;
typedef std::vector<IdHCache> IdCache;
// Hold mapping of sm and queues to output python
@@ -266,7 +266,7 @@ class CPA : SimObject
typedef std::map<int, int> LinkMap;
// SC Links
- typedef m5::hash_map<Id, AnnDataPtr> ScHCache;
+ typedef std::unordered_map<Id, AnnDataPtr> ScHCache;
typedef std::vector<ScHCache> 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 <unordered_map>
-#include <unordered_set>
-#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 <fstream>
#include <list>
#include <string>
+#include <unordered_map>
#include <vector>
-#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<std::string, Entry *> EntryTable;
+ typedef std::unordered_map<std::string, Entry *> 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<std::string, Section *> SectionTable;
+ typedef std::unordered_map<std::string, Section *> 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