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;
108
108
class SILPassManager ;
109
109
class DominanceAnalysis ;
110
110
class DominanceInfo ;
111
+ class DeadEndBlocks ;
111
112
112
113
namespace test {
113
114
@@ -162,6 +163,9 @@ class FunctionTest final {
162
163
// / Computes and returns the function's dominance tree.
163
164
DominanceInfo *getDominanceInfo ();
164
165
166
+ // / The function's dead-end blocks.
167
+ DeadEndBlocks *getDeadEndBlocks ();
168
+
165
169
// / Returns the active pass manager.
166
170
SILPassManager *getPassManager ();
167
171
@@ -254,6 +258,7 @@ class FunctionTest final {
254
258
// / are visible: TestRunner::FunctionTestDependenciesImpl.
255
259
struct Dependencies {
256
260
virtual DominanceInfo *getDominanceInfo () = 0;
261
+ virtual DeadEndBlocks *getDeadEndBlocks () = 0;
257
262
virtual SILPassManager *getPassManager () = 0;
258
263
virtual SwiftPassInvocation *getSwiftPassInvocation () = 0;
259
264
virtual ~Dependencies (){};
Original file line number Diff line number Diff line change @@ -117,6 +117,10 @@ DominanceInfo *FunctionTest::getDominanceInfo() {
117
117
return dependencies->getDominanceInfo ();
118
118
}
119
119
120
+ DeadEndBlocks *FunctionTest::getDeadEndBlocks () {
121
+ return dependencies->getDeadEndBlocks ();
122
+ }
123
+
120
124
SILPassManager *FunctionTest::getPassManager () {
121
125
return dependencies->getPassManager ();
122
126
}
Original file line number Diff line number Diff line change 19
19
20
20
#include " swift/Basic/Assertions.h"
21
21
#include " swift/SIL/Test.h"
22
+ #include " swift/SILOptimizer/Analysis/DeadEndBlocksAnalysis.h"
22
23
#include " swift/SILOptimizer/Analysis/DominanceAnalysis.h"
23
24
#include " swift/SILOptimizer/PassManager/Transforms.h"
24
25
@@ -43,6 +44,10 @@ class TestRunner : public SILFunctionTransform {
43
44
auto *dominanceAnalysis = pass->getAnalysis <DominanceAnalysis>();
44
45
return dominanceAnalysis->get (function);
45
46
}
47
+ DeadEndBlocks *getDeadEndBlocks () override {
48
+ auto *deadEndBlocksAnalysis = pass->getAnalysis <DeadEndBlocksAnalysis>();
49
+ return deadEndBlocksAnalysis->get (function);
50
+ }
46
51
SwiftPassInvocation *getSwiftPassInvocation () override {
47
52
return &swiftPassInvocation;
48
53
}
You can’t perform that action at this time.
0 commit comments