//===- PassTiming.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 // //===----------------------------------------------------------------------===// #include "PassDetail.h" #include "mlir/Pass/PassManager.h" #include "llvm/ADT/SmallVector.h" #include "llvm/Support/Threading.h" #include <chrono> #include <optional> usingnamespacemlir; usingnamespacemlir::detail; //===----------------------------------------------------------------------===// // PassTiming //===----------------------------------------------------------------------===// namespace { struct PassTiming : public PassInstrumentation { … }; } // namespace //===----------------------------------------------------------------------===// // PassManager //===----------------------------------------------------------------------===// /// Add an instrumentation to time the execution of passes and the computation /// of analyses. void PassManager::enableTiming(TimingScope &timingScope) { … } /// Add an instrumentation to time the execution of passes and the computation /// of analyses. void PassManager::enableTiming(std::unique_ptr<TimingManager> tm) { … } /// Add an instrumentation to time the execution of passes and the computation /// of analyses. void PassManager::enableTiming() { … }