Skip to content

Commit 3fdf6c8

Browse files
authored
Merge pull request swiftlang#28800 from atrick/escapeflags
EscapeAnalysis: add node flags and change the meaning of "escaping"
2 parents d3949e7 + fa47f19 commit 3fdf6c8

File tree

8 files changed

+1338
-841
lines changed

8 files changed

+1338
-841
lines changed

include/swift/SILOptimizer/Analysis/EscapeAnalysis.h

Lines changed: 216 additions & 142 deletions
Large diffs are not rendered by default.

lib/SILOptimizer/Analysis/AliasAnalysis.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -737,8 +737,8 @@ bool AliasAnalysis::mayValueReleaseInterfereWithInstruction(SILInstruction *User
737737
// The most important check: does the object escape the current function?
738738
auto LO = getUnderlyingObject(V);
739739
auto *ConGraph = EA->getConnectionGraph(User->getFunction());
740-
auto *Node = ConGraph->getNodeOrNull(LO);
741-
if (Node && !Node->escapes())
740+
auto *Content = ConGraph->getValueContent(LO);
741+
if (Content && !Content->escapes())
742742
return false;
743743

744744
// This is either a non-local allocation or a scoped allocation that escapes.

0 commit comments

Comments
 (0)