Skip to content

Conversation

@gottesmm
Copy link
Contributor

@gottesmm gottesmm commented Sep 6, 2018

Now we properly enforce that all guaranteed phi arguments's lifetime is
completely enclosed by the lifetimes of the phi argument's inputs. This is
implemented by inserting an "implicit" regular use into the use stream of the
phi argument's inputs. This is nice since it ensures that when we are verifying
ownership of a specific argument, we will not walk through all
subarguments... instead we just need to verify that the end_borrow is completely
enclosed within the lifetime of the input guaranteed value.

I also fixed a case where we were bailing early out of the SIL Ownership
Verifier causing us to emit an incorrect error. This error would only occur if
we already diagnosed an error.

I also re-added all of the tests that I removed when I replaced
end_borrow_argument with end_borrow.

rdar://33440767

@gottesmm
Copy link
Contributor Author

gottesmm commented Sep 6, 2018

@swift-ci test

@gottesmm
Copy link
Contributor Author

gottesmm commented Sep 6, 2018

The other PR is #19131

@swift-ci
Copy link
Contributor

swift-ci commented Sep 6, 2018

Build failed
Swift Test Linux Platform
Git Sha - a49a829bc6b7ecbf195a62b0f1345644cc584ca0

Now we properly enforce that all guaranteed phi arguments's lifetime is
completely enclosed by the lifetimes of the phi argument's inputs. This is
implemented by inserting an "implicit" regular use into the use stream of the
phi argument's inputs. This is nice since it ensures that when we are verifying
ownership of a specific argument, we will not walk through all
subarguments... instead we just need to verify that the end_borrow is completely
enclosed within the lifetime of the input guaranteed value.

I also fixed a case where we were bailing early out of the SIL Ownership
Verifier causing us to emit an incorrect error. This error would only occur if
we already diagnosed an error.

I also re-added all of the tests that I removed when I replaced
end_borrow_argument with end_borrow.

rdar://33440767
@gottesmm gottesmm force-pushed the pr-0290cd4323dba0b496df6aaa44c48ee171f647fa branch from a49a829 to 42498ad Compare September 6, 2018 22:50
@gottesmm
Copy link
Contributor Author

gottesmm commented Sep 6, 2018

@swift-ci test

1 similar comment
@gottesmm
Copy link
Contributor Author

gottesmm commented Sep 6, 2018

@swift-ci test

@swift-ci
Copy link
Contributor

swift-ci commented Sep 6, 2018

Build failed
Swift Test OS X Platform
Git Sha - a49a829bc6b7ecbf195a62b0f1345644cc584ca0

@swift-ci
Copy link
Contributor

swift-ci commented Sep 6, 2018

Build failed
Swift Test Linux Platform
Git Sha - a49a829bc6b7ecbf195a62b0f1345644cc584ca0

@gottesmm
Copy link
Contributor Author

gottesmm commented Sep 7, 2018

Was an lldb build failure. Not related to my change. Retesting!

@gottesmm
Copy link
Contributor Author

gottesmm commented Sep 7, 2018

@swift-ci test

@gottesmm gottesmm requested a review from atrick September 7, 2018 15:19
@gottesmm
Copy link
Contributor Author

gottesmm commented Sep 8, 2018

@atrick Lets do post-commit review. I want to land this so I can finish splitting the ownership verifier into two so we can classify operand's acceptable ownership statically.

@gottesmm gottesmm merged commit 425221e into swiftlang:master Sep 8, 2018
@gottesmm gottesmm deleted the pr-0290cd4323dba0b496df6aaa44c48ee171f647fa branch September 8, 2018 18:02
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.

2 participants