![]() The previous implementation of time tracing in NewPassManager is direct but messive. The key codes are like the demo below: ``` /// Runs the function pass across every function in the module. PreservedAnalyses run(LazyCallGraph::SCC &C, CGSCCAnalysisManager &AM, LazyCallGraph &CG, CGSCCUpdateResult &UR) { /// ... PreservedAnalyses PassPA; { TimeTraceScope TimeScope(Pass.name()); PassPA = Pass.run(F, FAM); } /// ... } ``` It can be bothered to judge where should we add the tracing codes by hands. With the PassInstrumentation framework, we can easily add `Before/After` callback functions to add time tracing codes. Differential Revision: https://reviews.llvm.org/D131960 |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
OptimizationLevel.cpp | ||
PassBuilder.cpp | ||
PassBuilderBindings.cpp | ||
PassBuilderPipelines.cpp | ||
PassPlugin.cpp | ||
PassRegistry.def | ||
StandardInstrumentations.cpp |