File tree Expand file tree Collapse file tree 3 files changed +14
-0
lines changed
SILOptimizer/UtilityPasses Expand file tree Collapse file tree 3 files changed +14
-0
lines changed Original file line number Diff line number Diff line change @@ -108,6 +108,7 @@ class SILFunctionTransform;
108108class SILPassManager ;
109109class DominanceAnalysis ;
110110class DominanceInfo ;
111+ class DeadEndBlocks ;
111112
112113namespace test {
113114
@@ -162,6 +163,9 @@ class FunctionTest final {
162163 // / Computes and returns the function's dominance tree.
163164 DominanceInfo *getDominanceInfo ();
164165
166+ // / The function's dead-end blocks.
167+ DeadEndBlocks *getDeadEndBlocks ();
168+
165169 // / Returns the active pass manager.
166170 SILPassManager *getPassManager ();
167171
@@ -254,6 +258,7 @@ class FunctionTest final {
254258 // / are visible: TestRunner::FunctionTestDependenciesImpl.
255259 struct Dependencies {
256260 virtual DominanceInfo *getDominanceInfo () = 0;
261+ virtual DeadEndBlocks *getDeadEndBlocks () = 0;
257262 virtual SILPassManager *getPassManager () = 0;
258263 virtual SwiftPassInvocation *getSwiftPassInvocation () = 0;
259264 virtual ~Dependencies (){};
Original file line number Diff line number Diff line change @@ -117,6 +117,10 @@ DominanceInfo *FunctionTest::getDominanceInfo() {
117117 return dependencies->getDominanceInfo ();
118118}
119119
120+ DeadEndBlocks *FunctionTest::getDeadEndBlocks () {
121+ return dependencies->getDeadEndBlocks ();
122+ }
123+
120124SILPassManager *FunctionTest::getPassManager () {
121125 return dependencies->getPassManager ();
122126}
Original file line number Diff line number Diff line change 1919
2020#include " swift/Basic/Assertions.h"
2121#include " swift/SIL/Test.h"
22+ #include " swift/SILOptimizer/Analysis/DeadEndBlocksAnalysis.h"
2223#include " swift/SILOptimizer/Analysis/DominanceAnalysis.h"
2324#include " swift/SILOptimizer/PassManager/Transforms.h"
2425
@@ -43,6 +44,10 @@ class TestRunner : public SILFunctionTransform {
4344 auto *dominanceAnalysis = pass->getAnalysis <DominanceAnalysis>();
4445 return dominanceAnalysis->get (function);
4546 }
47+ DeadEndBlocks *getDeadEndBlocks () override {
48+ auto *deadEndBlocksAnalysis = pass->getAnalysis <DeadEndBlocksAnalysis>();
49+ return deadEndBlocksAnalysis->get (function);
50+ }
4651 SwiftPassInvocation *getSwiftPassInvocation () override {
4752 return &swiftPassInvocation;
4853 }
You can’t perform that action at this time.
0 commit comments