Skip to content

ARCCodeMotion: fix two problems in release hoisting: #10586

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 26, 2017

Conversation

eeckstein
Copy link
Contributor

  1. PostOrderAnalysis is not invalidated after splitting critical edges. This let the data flow solver omit new inserted blocks.

  2. Handle infinite loops in the CFG correctly. So that we don’t insert random release instructions into such CFG pathes.

https://bugs.swift.org/browse/SR-5187
rdar://problem/32713742

1) PostOrderAnalysis is not invalidated after splitting critical edges. This let the data flow solver omit new inserted blocks.

2) Handle infinite loops in the CFG correctly. So that we don’t insert random release instructions into such CFG pathes.

https://bugs.swift.org/browse/SR-5187
rdar://problem/32713742
@eeckstein
Copy link
Contributor Author

@swift-ci Please test

@eeckstein
Copy link
Contributor Author

*) Explanation: The compiler can crash if there are infinite loops in the swift source code.

*) Scope: Although this is not a common case, it can happen. For example if in an release build the assertFailure is replace by a no-op.

*) Origin: https://bugs.swift.org/browse/SR-5187, rdar://problem/32713742

*) Risk: Low. It only affects control flow graphs with infinite loops

@swift-ci
Copy link
Contributor

Build failed
Jenkins build - Swift Test OS X Platform
Git Commit - 821bd3a
Test requested by - @eeckstein

@eeckstein
Copy link
Contributor Author

@swift-ci Please test macos

@aschwaighofer
Copy link
Contributor

LGTM!

@eeckstein eeckstein merged commit 4065cdd into swiftlang:swift-4.0-branch Jun 26, 2017
@eeckstein eeckstein deleted the fix-arccm-4.0 branch June 26, 2017 22:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants