| //===-------------------- IncrementalSourceMgr.cpp ------------------------===// |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| //===----------------------------------------------------------------------===// |
| /// This file defines some implementations for IncrementalSourceMgr. |
| //===----------------------------------------------------------------------===// |
| #include "llvm/MCA/IncrementalSourceMgr.h" |
| #include "llvm/Support/Format.h" |
| using namespace llvm::mca; |
| void IncrementalSourceMgr::clear() { |
| void IncrementalSourceMgr::updateNext() { |
| Instruction *I = Staging.front(); |
| void IncrementalSourceMgr::printStatistic(raw_ostream &OS) { |
| unsigned MaxInstStorageSize = InstStorage.size(); |
| if (MaxInstStorageSize <= TotalCounter) { |
| auto Ratio = double(MaxInstStorageSize) / double(TotalCounter); |
| OS << "Cache ratio = " << MaxInstStorageSize << " / " << TotalCounter |
| << llvm::format(" (%.2f%%)", (1.0 - Ratio) * 100.0) << "\n"; |
| OS << "Error: Number of created instructions " |
| << "are larger than the number of issued instructions\n"; |