Lines Matching full:mca

1 //===-- llvm-mca.cpp - Machine Code Analyzer -------------------*- C++ -* -===//
12 // llvm-mca [options] <file-name>
44 #include "llvm/MCA/CodeEmitter.h"
45 #include "llvm/MCA/Context.h"
46 #include "llvm/MCA/CustomBehaviour.h"
47 #include "llvm/MCA/InstrBuilder.h"
48 #include "llvm/MCA/Pipeline.h"
49 #include "llvm/MCA/Stages/EntryStage.h"
50 #include "llvm/MCA/Stages/InstructionTables.h"
51 #include "llvm/MCA/Support.h"
340 static bool runPipeline(mca::Pipeline &P) { in runPipeline()
421 // Apply overrides to llvm-mca specific options. in main()
464 // Parse the input and create CodeRegions that llvm-mca can analyze. in main()
469 mca::AsmAnalysisRegionGenerator CRG(*TheTarget, SrcMgr, ACtx, *MAI, *STI, in main()
471 Expected<const mca::AnalysisRegions &> RegionsOrErr = in main()
484 const mca::AnalysisRegions &Regions = *RegionsOrErr; in main()
495 std::unique_ptr<mca::InstrumentManager> IM; in main()
497 IM = std::unique_ptr<mca::InstrumentManager>( in main()
503 IM = std::make_unique<mca::InstrumentManager>(*STI, *MCII); in main()
506 // Parse the input and create InstrumentRegion that llvm-mca in main()
512 mca::AsmInstrumentRegionGenerator IRG(*TheTarget, SrcMgr, ICtx, *MAI, *STI, in main()
514 Expected<const mca::InstrumentRegions &> InstrumentRegionsOrErr = in main()
527 const mca::InstrumentRegions &InstrumentRegions = *InstrumentRegionsOrErr; in main()
560 std::unique_ptr<mca::InstrPostProcess> IPP; in main()
566 IPP = std::unique_ptr<mca::InstrPostProcess>( in main()
572 IPP = std::make_unique<mca::InstrPostProcess>(*STI, *MCII); in main()
576 mca::InstrBuilder IB(*STI, *MCII, *MRI, MCIA.get(), *IM, CallLatency); in main()
579 mca::Context MCA(*MRI, *STI); in main() local
581 mca::PipelineOptions PO(MicroOpQueue, DecoderThroughput, DispatchWidth, in main()
598 for (const std::unique_ptr<mca::AnalysisRegion> &Region : Regions) { in main()
605 // Lower the MCInst sequence into an mca::Instruction sequence. in main()
607 mca::CodeEmitter CE(*STI, *MAB, *MCE, Insts); in main()
611 DenseMap<const MCInst *, SmallVector<mca::Instrument *>> InstToInstruments; in main()
612 SmallVector<std::unique_ptr<mca::Instruction>> LoweredSequence; in main()
616 const SmallVector<mca::Instrument *> Instruments = in main()
619 Expected<std::unique_ptr<mca::Instruction>> Inst = in main()
624 [&IP, &STI](const mca::InstructionError<MCInst> &IE) { in main()
664 mca::CircularSourceMgr S(LoweredSequence, in main()
669 auto P = std::make_unique<mca::Pipeline>(); in main()
670 P->appendStage(std::make_unique<mca::EntryStage>(S)); in main()
671 P->appendStage(std::make_unique<mca::InstructionTables>(SM)); in main()
673 mca::PipelinePrinter Printer(*P, *Region, RegionIdx, *STI, PO); in main()
676 std::make_unique<mca::InstructionView>(*STI, *IP, Insts)); in main()
681 Printer.addView(std::make_unique<mca::InstructionInfoView>( in main()
686 std::make_unique<mca::ResourcePressureView>(*STI, *IP, Insts)); in main()
705 // mca::Instruction or any objects that can be reconstructed in main()
707 std::unique_ptr<mca::CustomBehaviour> CB; in main()
709 CB = std::unique_ptr<mca::CustomBehaviour>( in main()
714 CB = std::make_unique<mca::CustomBehaviour>(*STI, S, *MCII); in main()
717 auto P = MCA.createDefaultPipeline(PO, S, *CB); in main()
719 mca::PipelinePrinter Printer(*P, *Region, RegionIdx, *STI, PO); in main()
728 // /tools/llvm-mca/Views/ instead. in main()
730 std::vector<std::unique_ptr<mca::View>> CBViews = in main()
739 auto IV = std::make_unique<mca::InstructionView>(*STI, *IP, Insts); in main()
745 std::make_unique<mca::SummaryView>(SM, Insts, DispatchWidth)); in main()
753 Printer.addView(std::make_unique<mca::BottleneckAnalysis>( in main()
758 Printer.addView(std::make_unique<mca::InstructionInfoView>( in main()
766 std::vector<std::unique_ptr<mca::View>> CBViews = in main()
773 Printer.addView(std::make_unique<mca::DispatchStatistics>()); in main()
776 Printer.addView(std::make_unique<mca::SchedulerStatistics>(*STI)); in main()
779 Printer.addView(std::make_unique<mca::RetireControlUnitStatistics>(SM)); in main()
782 Printer.addView(std::make_unique<mca::RegisterFileStatistics>(*STI)); in main()
786 std::make_unique<mca::ResourcePressureView>(*STI, *IP, Insts)); in main()
791 Printer.addView(std::make_unique<mca::TimelineView>( in main()
800 std::vector<std::unique_ptr<mca::View>> CBViews = in main()