LLVM 22.0.0git
IncrementalSourceMgr.cpp
Go to the documentation of this file.
1//===-------------------- IncrementalSourceMgr.cpp ------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8///
9/// \file
10/// This file defines some implementations for IncrementalSourceMgr.
11///
12//===----------------------------------------------------------------------===//
13
15#ifndef NDEBUG
16#include "llvm/Support/Format.h"
17#endif
18
19using namespace llvm;
20using namespace llvm::mca;
21
23 Staging.clear();
24 InstStorage.clear();
25 TotalCounter = 0U;
26 EOS = false;
27}
28
30 ++TotalCounter;
31 Instruction *I = Staging.front();
32 Staging.pop_front();
33 I->reset();
34
35 if (InstFreedCB)
36 InstFreedCB(I);
37}
38
39#ifndef NDEBUG
41 unsigned MaxInstStorageSize = InstStorage.size();
42 if (MaxInstStorageSize <= TotalCounter) {
43 auto Ratio = double(MaxInstStorageSize) / double(TotalCounter);
44 OS << "Cache ratio = " << MaxInstStorageSize << " / " << TotalCounter
45 << llvm::format(" (%.2f%%)", (1.0 - Ratio) * 100.0) << "\n";
46 } else {
47 OS << "Error: Number of created instructions "
48 << "are larger than the number of issued instructions\n";
49 }
50}
51#endif
This file contains IncrementalSourceMgr, an implementation of SourceMgr that allows users to add new ...
#define I(x, y, z)
Definition MD5.cpp:58
void printStatistic(raw_ostream &OS)
Print statistic about instruction recycling stats.
void updateNext() override
Advance to the next SourceRef.
An instruction propagated through the simulated instruction pipeline.
This class implements an extremely fast bulk output stream that can only output to a stream.
Definition raw_ostream.h:53
This is an optimization pass for GlobalISel generic memory operations.
format_object< Ts... > format(const char *Fmt, const Ts &... Vals)
These are helper functions used to produce formatted output.
Definition Format.h:126