Skip to content

Commit c0783aa

Browse files
committed
[Test] Ensourced canonicalize-ossa-lifetime.
Moved the test next to the code it calls.
1 parent fcec328 commit c0783aa

File tree

2 files changed

+34
-30
lines changed

2 files changed

+34
-30
lines changed

lib/SILOptimizer/UtilityPasses/TestRunner.cpp

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -311,36 +311,6 @@ static FunctionTest FieldSensitiveMultiDefUseLiveRangeTest(
311311
boundary.print(llvm::errs());
312312
});
313313

314-
// Arguments:
315-
// - bool: pruneDebug
316-
// - bool: maximizeLifetimes
317-
// - bool: "respectAccessScopes", whether to contract lifetimes to end within
318-
// access scopes which they previously enclosed but can't be hoisted
319-
// before
320-
// - SILValue: value to canonicalize
321-
// Dumps:
322-
// - function after value canonicalization
323-
static FunctionTest CanonicalizeOSSALifetimeTest(
324-
"canonicalize-ossa-lifetime",
325-
[](auto &function, auto &arguments, auto &test) {
326-
auto *accessBlockAnalysis =
327-
test.template getAnalysis<NonLocalAccessBlockAnalysis>();
328-
auto *dominanceAnalysis = test.template getAnalysis<DominanceAnalysis>();
329-
DominanceInfo *domTree = dominanceAnalysis->get(&function);
330-
auto *calleeAnalysis = test.template getAnalysis<BasicCalleeAnalysis>();
331-
auto pruneDebug = arguments.takeBool();
332-
auto maximizeLifetimes = arguments.takeBool();
333-
auto respectAccessScopes = arguments.takeBool();
334-
InstructionDeleter deleter;
335-
CanonicalizeOSSALifetime canonicalizer(
336-
pruneDebug, maximizeLifetimes, &function,
337-
respectAccessScopes ? accessBlockAnalysis : nullptr, domTree,
338-
calleeAnalysis, deleter);
339-
auto value = arguments.takeValue();
340-
canonicalizer.canonicalizeValueLifetime(value);
341-
function.dump();
342-
});
343-
344314
// Arguments:
345315
// - SILValue: value to canonicalize
346316
// Dumps:

lib/SILOptimizer/Utils/CanonicalizeOSSALifetime.cpp

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,10 @@
7070
#include "swift/SIL/NodeDatastructures.h"
7171
#include "swift/SIL/OwnershipUtils.h"
7272
#include "swift/SIL/PrunedLiveness.h"
73+
#include "swift/SIL/Test.h"
7374
#include "swift/SILOptimizer/Analysis/BasicCalleeAnalysis.h"
7475
#include "swift/SILOptimizer/Analysis/Reachability.h"
76+
#include "swift/SILOptimizer/PassManager/Transforms.h"
7577
#include "swift/SILOptimizer/Utils/CFGOptUtils.h"
7678
#include "swift/SILOptimizer/Utils/DebugOptUtils.h"
7779
#include "swift/SILOptimizer/Utils/InstructionDeleter.h"
@@ -1175,6 +1177,38 @@ bool CanonicalizeOSSALifetime::canonicalizeValueLifetime(SILValue def) {
11751177
return true;
11761178
}
11771179

1180+
namespace swift::test {
1181+
// Arguments:
1182+
// - bool: pruneDebug
1183+
// - bool: maximizeLifetimes
1184+
// - bool: "respectAccessScopes", whether to contract lifetimes to end within
1185+
// access scopes which they previously enclosed but can't be hoisted
1186+
// before
1187+
// - SILValue: value to canonicalize
1188+
// Dumps:
1189+
// - function after value canonicalization
1190+
static FunctionTest CanonicalizeOSSALifetimeTest(
1191+
"canonicalize-ossa-lifetime",
1192+
[](auto &function, auto &arguments, auto &test) {
1193+
auto *accessBlockAnalysis =
1194+
test.template getAnalysis<NonLocalAccessBlockAnalysis>();
1195+
auto *dominanceAnalysis = test.template getAnalysis<DominanceAnalysis>();
1196+
DominanceInfo *domTree = dominanceAnalysis->get(&function);
1197+
auto *calleeAnalysis = test.template getAnalysis<BasicCalleeAnalysis>();
1198+
auto pruneDebug = arguments.takeBool();
1199+
auto maximizeLifetimes = arguments.takeBool();
1200+
auto respectAccessScopes = arguments.takeBool();
1201+
InstructionDeleter deleter;
1202+
CanonicalizeOSSALifetime canonicalizer(
1203+
pruneDebug, maximizeLifetimes, &function,
1204+
respectAccessScopes ? accessBlockAnalysis : nullptr, domTree,
1205+
calleeAnalysis, deleter);
1206+
auto value = arguments.takeValue();
1207+
canonicalizer.canonicalizeValueLifetime(value);
1208+
function.dump();
1209+
});
1210+
} // end namespace swift::test
1211+
11781212
//===----------------------------------------------------------------------===//
11791213
// MARK: Debugging
11801214
//===----------------------------------------------------------------------===//

0 commit comments

Comments
 (0)