Skip to content

Follow-up changes for function effects #61641

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 15 commits into from
Oct 20, 2022

Conversation

eeckstein
Copy link
Contributor

This PR contains a lot of small improvements and cleanups related to escape and side effects.
For details see commit messages.

@eeckstein
Copy link
Contributor Author

@swift-ci test

…nKind::Effects`

This invalidation kind is used when a compute-effects pass changes function effects.
Also, let optimization passes which don't change effects only invalidate the `FunctionBody` and not `Everything`.
By adding a `~=` operator with `StaticString`
It has already been ignored for value types, but not for address types.
This avoids sending a change notification which can trigger unnecessary other invalidations.
…TrivialNonPointer`

This is consistent with `Type.isTrivial`.
Also, introduce corresponding properties in `Value`: `hasTrivialType` and `hasTrivialNonPointerType`, because
1. It's less to type than `Type.isTrivial(in: function)` because `Value` knows in which function it is.
2. It fixes the corner case where value is an `Undef`, which has not parent function.
add `Function.getSideEffects(forArgument:,atIndex:,withConvention:)`
Conservatively model those effects as "destroy" effects.
This retrieves the side effect information from the function effects.
The underlying problem has been fixed
@eeckstein eeckstein force-pushed the side-effect-improvements branch from 1017d90 to 9ae24f8 Compare October 20, 2022 07:22
@eeckstein
Copy link
Contributor Author

@swift-ci test

@eeckstein
Copy link
Contributor Author

@swift-ci benchmark

@eeckstein eeckstein merged commit e7090e3 into swiftlang:main Oct 20, 2022
@eeckstein eeckstein deleted the side-effect-improvements branch October 20, 2022 12:59
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.

1 participant