Skip to content

Add AccessEnforcementOpts fast paths. #24773

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 4 commits into from
May 16, 2019
Merged

Add AccessEnforcementOpts fast paths. #24773

merged 4 commits into from
May 16, 2019

Conversation

atrick
Copy link
Contributor

@atrick atrick commented May 14, 2019

Add AccessEnforcementOpts fast paths.

  1. During identifyAccess, determine if there are either any
    identical accesses or an accesses that aren't already marked
    no_nested_storage. If there are neither, then skip the subsequent
    data flow analysis.

  2. In the new StorageSet, indicate whether identical storage was
    seen elsewhere in the function. During dataflow, only add an access
    to the out-of-scope access set if was marked as having identical
    storage with another access.

  3. During data flow, don't track in scope conflicts for
    instructions already marked [no_nested_conflict].
    0d9ebae

@atrick
Copy link
Contributor Author

atrick commented May 14, 2019

@swift-ci test

@atrick
Copy link
Contributor Author

atrick commented May 14, 2019

@swift-ci test source compatibility

@atrick atrick requested a review from shajrawi May 14, 2019 18:13
@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - c8697a03d73b355cb6d428ae1fad168d82261e68

atrick added 4 commits May 14, 2019 14:44
When there is nothing that can be merged, there's no point doing an
extra CFG analysis.
1. During identifyAccess, determine if there are either any
identical accesses or an accesses that aren't already marked
no_nested_storage. If there are neither, then skip the subsequent
data flow analysis.

2. In the new StorageSet, indicate whether identical storage was
seen elsewhere in the function. During dataflow, only add an access
to the out-of-scope access set if was marked as having identical
storage with another access.

3. During data flow, don't track in scope conflicts for
instructions already marked [no_nested_conflict].
@atrick
Copy link
Contributor Author

atrick commented May 14, 2019

@swift-ci test

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - c8697a03d73b355cb6d428ae1fad168d82261e68

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - c8697a03d73b355cb6d428ae1fad168d82261e68

Copy link

@shajrawi shajrawi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@atrick atrick merged commit 868156c into swiftlang:master May 16, 2019
@atrick atrick deleted the fix-accessopt-slow branch July 30, 2019 23:50
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