From 66904b9584e09a9b6b6cb382ba208ec9a527edbe Mon Sep 17 00:00:00 2001 From: Andreas Hansson Date: Wed, 13 Aug 2014 06:57:21 -0400 Subject: cpu: Modernise the branch predictor (STL and C++11) This patch does some minor house keeping of the branch predictor by adopting STL containers, and shifting some iterator to use range-based for loops. The predictor history is also changed from a list to a deque as we never to insertion/deletion other than at the front and back. --- src/cpu/pred/bpred_unit.hh | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src/cpu/pred/bpred_unit.hh') diff --git a/src/cpu/pred/bpred_unit.hh b/src/cpu/pred/bpred_unit.hh index 0bc0d1569..61b375f9b 100644 --- a/src/cpu/pred/bpred_unit.hh +++ b/src/cpu/pred/bpred_unit.hh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2012 ARM Limited + * Copyright (c) 2011-2012, 2014 ARM Limited * Copyright (c) 2010 The University of Edinburgh * All rights reserved * @@ -47,7 +47,7 @@ #ifndef __CPU_PRED_BPRED_UNIT_HH__ #define __CPU_PRED_BPRED_UNIT_HH__ -#include +#include #include "base/statistics.hh" #include "base/types.hh" @@ -244,8 +244,7 @@ class BPredUnit : public SimObject bool wasReturn; }; - typedef std::list History; - typedef History::iterator HistoryIt; + typedef std::deque History; /** Number of the threads for which the branch history is maintained. */ uint32_t numThreads; @@ -255,13 +254,13 @@ class BPredUnit : public SimObject * as instructions are committed, or restore it to the proper state after * a squash. */ - History *predHist; + std::vector predHist; /** The BTB. */ DefaultBTB BTB; /** The per-thread return address stack. */ - ReturnAddrStack *RAS; + std::vector RAS; /** Stat for number of BP lookups. */ Stats::Scalar lookups; -- cgit v1.2.3