//===---------------------------- Context.cpp -------------------*- C++ -*-===// // // 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 // //===----------------------------------------------------------------------===// /// \file /// /// This file defines a class for holding ownership of various simulated /// hardware units. A Context also provides a utility routine for constructing /// a default out-of-order pipeline with fetch, dispatch, execute, and retire /// stages. /// //===----------------------------------------------------------------------===// #include "llvm/MCA/Context.h" #include "llvm/MCA/HardwareUnits/RegisterFile.h" #include "llvm/MCA/HardwareUnits/RetireControlUnit.h" #include "llvm/MCA/HardwareUnits/Scheduler.h" #include "llvm/MCA/Stages/DispatchStage.h" #include "llvm/MCA/Stages/EntryStage.h" #include "llvm/MCA/Stages/ExecuteStage.h" #include "llvm/MCA/Stages/InOrderIssueStage.h" #include "llvm/MCA/Stages/MicroOpQueueStage.h" #include "llvm/MCA/Stages/RetireStage.h" namespace llvm { namespace mca { std::unique_ptr<Pipeline> Context::createDefaultPipeline(const PipelineOptions &Opts, SourceMgr &SrcMgr, CustomBehaviour &CB) { … } std::unique_ptr<Pipeline> Context::createInOrderPipeline(const PipelineOptions &Opts, SourceMgr &SrcMgr, CustomBehaviour &CB) { … } } // namespace mca } // namespace llvm