inst_queue.hh (5336:c7e21f4e5a2e) inst_queue.hh (5529:9ae69b9cd7fd)
1/*
2 * Copyright (c) 2004-2006 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 27 unchanged lines hidden (view full) ---

36#include <queue>
37#include <vector>
38
39#include "base/statistics.hh"
40#include "base/timebuf.hh"
41#include "cpu/inst_seq.hh"
42#include "cpu/o3/dep_graph.hh"
43#include "cpu/op_class.hh"
1/*
2 * Copyright (c) 2004-2006 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 27 unchanged lines hidden (view full) ---

36#include <queue>
37#include <vector>
38
39#include "base/statistics.hh"
40#include "base/timebuf.hh"
41#include "cpu/inst_seq.hh"
42#include "cpu/o3/dep_graph.hh"
43#include "cpu/op_class.hh"
44#include "sim/eventq.hh"
44#include "sim/host.hh"
45
45#include "sim/host.hh"
46
47class DerivO3CPUParams;
46class FUPool;
47class MemInterface;
48
49/**
50 * A standard instruction queue class. It holds ready instructions, in
51 * order, in seperate priority queues to facilitate the scheduling of
52 * instructions. The IQ uses a separate linked list to track dependencies.
53 * Similar to the rename map and the free list, it expects that

--- 11 unchanged lines hidden (view full) ---

65 */
66template <class Impl>
67class InstructionQueue
68{
69 public:
70 //Typedefs from the Impl.
71 typedef typename Impl::O3CPU O3CPU;
72 typedef typename Impl::DynInstPtr DynInstPtr;
48class FUPool;
49class MemInterface;
50
51/**
52 * A standard instruction queue class. It holds ready instructions, in
53 * order, in seperate priority queues to facilitate the scheduling of
54 * instructions. The IQ uses a separate linked list to track dependencies.
55 * Similar to the rename map and the free list, it expects that

--- 11 unchanged lines hidden (view full) ---

67 */
68template <class Impl>
69class InstructionQueue
70{
71 public:
72 //Typedefs from the Impl.
73 typedef typename Impl::O3CPU O3CPU;
74 typedef typename Impl::DynInstPtr DynInstPtr;
73 typedef typename Impl::Params Params;
74
75 typedef typename Impl::CPUPol::IEW IEW;
76 typedef typename Impl::CPUPol::MemDepUnit MemDepUnit;
77 typedef typename Impl::CPUPol::IssueStruct IssueStruct;
78 typedef typename Impl::CPUPol::TimeStruct TimeStruct;
79
80 // Typedef of iterator through the list of instructions.
81 typedef typename std::list<DynInstPtr>::iterator ListIt;

--- 23 unchanged lines hidden (view full) ---

105 InstructionQueue<Impl> *iq_ptr);
106
107 virtual void process();
108 virtual const char *description() const;
109 void setFreeFU() { freeFU = true; }
110 };
111
112 /** Constructs an IQ. */
75
76 typedef typename Impl::CPUPol::IEW IEW;
77 typedef typename Impl::CPUPol::MemDepUnit MemDepUnit;
78 typedef typename Impl::CPUPol::IssueStruct IssueStruct;
79 typedef typename Impl::CPUPol::TimeStruct TimeStruct;
80
81 // Typedef of iterator through the list of instructions.
82 typedef typename std::list<DynInstPtr>::iterator ListIt;

--- 23 unchanged lines hidden (view full) ---

106 InstructionQueue<Impl> *iq_ptr);
107
108 virtual void process();
109 virtual const char *description() const;
110 void setFreeFU() { freeFU = true; }
111 };
112
113 /** Constructs an IQ. */
113 InstructionQueue(O3CPU *cpu_ptr, IEW *iew_ptr, Params *params);
114 InstructionQueue(O3CPU *cpu_ptr, IEW *iew_ptr, DerivO3CPUParams *params);
114
115 /** Destructs the IQ. */
116 ~InstructionQueue();
117
118 /** Returns the name of the IQ. */
119 std::string name() const;
120
121 /** Registers statistics. */

--- 380 unchanged lines hidden ---
115
116 /** Destructs the IQ. */
117 ~InstructionQueue();
118
119 /** Returns the name of the IQ. */
120 std::string name() const;
121
122 /** Registers statistics. */

--- 380 unchanged lines hidden ---