Skip to content

Commit 2caf174

Browse files
committed
CopyForwarding - small redesign to fix bugs.
Copy forwarding was designed with some assumptions about symmetry of operations. If copy_value/destroy_value are expanded somewhere for a given value, then they should be expanded everywhere. The pass took a conservative approach to SIL patterns that were guaranteed safe, and bailed out on unknown patterns. However, due to some over-aggressive code factoring, the assumption wasn't being checked in one corner case. This redesign makes a clear distinction between the requirements for forward vs. backward propagation. Fixes <rdar://35646292> Swift CI: resilience bot seg faults in stdlib/RangeReplaceable.swift.gyb
1 parent 483e9d4 commit 2caf174

File tree

2 files changed

+325
-200
lines changed

2 files changed

+325
-200
lines changed

0 commit comments

Comments
 (0)