[ome] Just erase the destructure rather than trying to get rid of dea… #27606
+16
−4
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
…d instructions due to simplifyInstruction.
This ensures that we do not run into any iterator invalidation issues. It does
worsen the passes output slightly, but avoiding the complexity is worth it and
other later passes will clean up the dead code.
rdar://55811732
(cherry picked from commit 1b29d86)
— CCC Info —
Radar: rdar://problem/55811732
Explanation: The optimizer was being too aggressive around using a recursive API that deleted instructions when they only had uses by debug value instructions. Turns out in certain cases we were not careful enough around iterator invalidation and we delete an instruction causing the invalidation. I changed the code in question to just remove the specific instruction in question and allow for any dead uses we found to be cleaned up by later passes.
Scope of issue: Caused the compiler to crash in an edge case.
Origination: This was introduced as part of the ownership sil work to lower destructure operations -> non-ownership sil variants.
Risk: Low.
Testing: Added a regression test for this case and verified that we do not crash any more.
Reviewers: Erik Eckstein