summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-mca/include/SourceMgr.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/llvm-mca/include/SourceMgr.h')
-rw-r--r--llvm/tools/llvm-mca/include/SourceMgr.h20
1 files changed, 10 insertions, 10 deletions
diff --git a/llvm/tools/llvm-mca/include/SourceMgr.h b/llvm/tools/llvm-mca/include/SourceMgr.h
index 12713588246..54b1a2c31ce 100644
--- a/llvm/tools/llvm-mca/include/SourceMgr.h
+++ b/llvm/tools/llvm-mca/include/SourceMgr.h
@@ -17,35 +17,35 @@
#define LLVM_TOOLS_LLVM_MCA_SOURCEMGR_H
#include "llvm/ADT/ArrayRef.h"
-#include "llvm/MC/MCInst.h"
-#include <vector>
namespace mca {
-typedef std::pair<unsigned, const llvm::MCInst &> SourceRef;
+class Instruction;
+
+typedef std::pair<unsigned, const Instruction &> SourceRef;
class SourceMgr {
- llvm::ArrayRef<llvm::MCInst> Sequence;
+ using UniqueInst = std::unique_ptr<Instruction>;
+ llvm::ArrayRef<UniqueInst> Sequence;
unsigned Current;
const unsigned Iterations;
static const unsigned DefaultIterations = 100;
public:
- SourceMgr(llvm::ArrayRef<llvm::MCInst> MCInstSequence, unsigned NumIterations)
- : Sequence(MCInstSequence), Current(0),
- Iterations(NumIterations ? NumIterations : DefaultIterations) {}
+ SourceMgr(llvm::ArrayRef<UniqueInst> S, unsigned Iter)
+ : Sequence(S), Current(0), Iterations(Iter ? Iter : DefaultIterations) {}
unsigned getNumIterations() const { return Iterations; }
unsigned size() const { return Sequence.size(); }
bool hasNext() const { return Current < (Iterations * Sequence.size()); }
void updateNext() { ++Current; }
- const SourceRef peekNext() const {
+ SourceRef peekNext() const {
assert(hasNext() && "Already at end of sequence!");
- return SourceRef(Current, Sequence[Current % Sequence.size()]);
+ return SourceRef(Current, *Sequence[Current % Sequence.size()]);
}
- using const_iterator = llvm::ArrayRef<llvm::MCInst>::const_iterator;
+ using const_iterator = llvm::ArrayRef<UniqueInst>::const_iterator;
const_iterator begin() const { return Sequence.begin(); }
const_iterator end() const { return Sequence.end(); }
};
OpenPOWER on IntegriCloud