Skip to content

Commit 6b49fd2

Browse files
committed
---
yaml --- r: 343131 b: refs/heads/master-rebranch c: 0e08976 h: refs/heads/master i: 343129: 8195835 343127: 62c482e
1 parent 8b54b8d commit 6b49fd2

File tree

8 files changed

+1049
-1
lines changed

8 files changed

+1049
-1
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1455,7 +1455,7 @@ refs/tags/swift-DEVELOPMENT-SNAPSHOT-2019-08-02-a: ddd2b2976aa9bfde5f20fe37f6bd2
14551455
refs/tags/swift-DEVELOPMENT-SNAPSHOT-2019-08-03-a: 171cc166f2abeb5ca2a4003700a8a78a108bd300
14561456
refs/heads/benlangmuir-patch-1: baaebaf39d52f3bf36710d4fe40cf212e996b212
14571457
refs/heads/i-do-redeclare: 8c4e6d5de5c1e3f0a2cedccf319df713ea22c48e
1458-
refs/heads/master-rebranch: 34e80b7f85a0b6320eeb4cb40fd838280fa645b1
1458+
refs/heads/master-rebranch: 0e089766008cb3e53cc3ff089a4979c3ce47346d
14591459
refs/heads/rdar-53901732: 9bd06af3284e18a109cdbf9aa59d833b24eeca7b
14601460
refs/heads/revert-26776-subst-always-returns-a-type: 1b8e18fdd391903a348970a4c848995d4cdd789c
14611461
refs/heads/tensorflow-merge: 8b854f62f80d4476cb383d43c4aac2001dde3cec

branches/master-rebranch/include/swift/SIL/SILInstruction.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3240,6 +3240,9 @@ class LoadInst
32403240
return LoadOwnershipQualifier(
32413241
SILInstruction::Bits.LoadInst.OwnershipQualifier);
32423242
}
3243+
void setOwnershipQualifier(LoadOwnershipQualifier qualifier) {
3244+
SILInstruction::Bits.LoadInst.OwnershipQualifier = unsigned(qualifier);
3245+
}
32433246
};
32443247

32453248
// *NOTE* When serializing, we can only represent up to 4 values here. If more
@@ -3279,6 +3282,9 @@ class StoreInst
32793282
return StoreOwnershipQualifier(
32803283
SILInstruction::Bits.StoreInst.OwnershipQualifier);
32813284
}
3285+
void setOwnershipQualifier(StoreOwnershipQualifier qualifier) {
3286+
SILInstruction::Bits.StoreInst.OwnershipQualifier = unsigned(qualifier);
3287+
}
32823288
};
32833289

32843290
class EndBorrowInst;

branches/master-rebranch/include/swift/SILOptimizer/PassManager/Passes.def

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,8 @@ PASS(DeadObjectElimination, "deadobject-elim",
132132
"Dead Object Elimination for Classes with Trivial Destruction")
133133
PASS(DefiniteInitialization, "definite-init",
134134
"Definite Initialization for Diagnostics")
135+
PASS(DestroyHoisting, "destroy-hoisting",
136+
"Hoisting of value destroys")
135137
PASS(Devirtualizer, "devirtualizer",
136138
"Indirect Call Devirtualization")
137139
PASS(DiagnoseInfiniteRecursion, "diagnose-infinite-recursion",

branches/master-rebranch/lib/SILOptimizer/PassManager/PassPipeline.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ static void addMandatoryOptPipeline(SILPassPipelinePlan &P) {
104104
P.addClosureLifetimeFixup();
105105
if (Options.shouldOptimize()) {
106106
P.addSemanticARCOpts();
107+
P.addDestroyHoisting();
107108
}
108109
if (!Options.StripOwnershipAfterSerialization)
109110
P.addOwnershipModelEliminator();

branches/master-rebranch/lib/SILOptimizer/Transforms/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ silopt_register_sources(
1515
DeadCodeElimination.cpp
1616
DeadObjectElimination.cpp
1717
DeadStoreElimination.cpp
18+
DestroyHoisting.cpp
1819
Devirtualizer.cpp
1920
GenericSpecializer.cpp
2021
MergeCondFail.cpp

0 commit comments

Comments
 (0)