Lines Matching +full:runs +full:- +full:on
1 //===- llvm/unittest/IR/PassManager.cpp - PassManager tests ---------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
34 // Check whether the analysis or all analyses on functions have been in invalidate()
41 TestFunctionAnalysis(int &Runs) : Runs(Runs) {} in TestFunctionAnalysis() argument
45 ++Runs; in run()
48 for (BasicBlock::iterator II = BBI->begin(), IE = BBI->end(); II != IE; in run()
58 int &Runs; member in __anon1d60355b0111::TestFunctionAnalysis
70 // Check whether the analysis or all analyses on modules have been in invalidate()
77 TestModuleAnalysis(int &Runs) : Runs(Runs) {} in TestModuleAnalysis() argument
80 ++Runs; in run()
91 int &Runs; member in __anon1d60355b0111::TestModuleAnalysis
130 AnalyzedFunctionCount += TMA->FunctionCount; in run()
137 AnalyzedInstrCount += AR->InstructionCount; in run()
139 // Typical path just runs the analysis as needed. in run()
302 // Self intersection is a no-op. in TEST()
312 // Intersecting with all is a no-op. in TEST()
349 // Intersecting non-overlapping clears. in TEST()
359 // Intersecting with moves works in when there is storage on both sides. in TEST()
437 // Count the runs over a Function. in TEST_F()
457 // Count the runs over a module. in TEST_F()
461 // Count the runs over a Function in a separate manager. in TEST_F()
540 // fifth run invalidates 1 function first, but runs over 0 functions in TEST_F()
592 // after it is round-tripped through the analysis. in TEST_F()
602 EXPECT_EQ(42 * (int)M->size(), Result); in TEST_F()
625 TestIndirectFunctionAnalysis(int &Runs, ModuleAnalysisManager &MAM) in TestIndirectFunctionAnalysis()
626 : Runs(Runs), MAM(MAM) {} in TestIndirectFunctionAnalysis()
630 ++Runs; in run()
638 // pre-registered on the proxy. in run()
648 int &Runs; member
676 TestDoublyIndirectFunctionAnalysis(int &Runs) : Runs(Runs) {} in TestDoublyIndirectFunctionAnalysis()
680 ++Runs; in run()
689 int &Runs; member
740 // - both analyses for "f", in TEST_F()
741 // - just the underlying (indirect) analysis for "g", and in TEST_F()
742 // - just the direct analysis for "h". in TEST_F()
756 // Finally, use the analysis again on each function, forcing re-computation in TEST_F()
767 // Create a second function pass manager. This will cause the module-level in TEST_F()
769 // indirect function-level analysis as the module analysis it depends on gets in TEST_F()
791 // There are generally two possible runs for each of the three functions. But in TEST_F()
825 auto *F = M->getFunction("foo"); in TEST_F()
830 StandardInstrumentations SI(M->getContext(), /*DebugLogging*/ true); in TEST_F()
874 auto *F = M->getFunction("foo"); in TEST_F()
879 StandardInstrumentations SI(M->getContext(), /*DebugLogging*/ true); in TEST_F()
919 // FunctionPassManager::run() except that it runs all passes at once by calling
942 auto *F = M->getFunction("foo"); in TEST_F()
947 StandardInstrumentations SI(M->getContext(), /*DebugLogging*/ true); in TEST_F()
967 F.getEntryBlock().begin()->eraseFromParent(); in run()
983 StandardInstrumentations SI(M->getContext(), /*DebugLogging*/ false); in TEST_F()
993 auto *F = M->getFunction("foo"); in TEST_F()
1000 F.getEntryBlock().begin()->eraseFromParent(); in run()
1020 StandardInstrumentations SI(M->getContext(), /*DebugLogging*/ false); in TEST_F()
1038 F.getEntryBlock().begin()->eraseFromParent(); in run()
1058 StandardInstrumentations SI(M->getContext(), /*DebugLogging*/ false); in TEST_F()