-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
improve concrete-foldability of core math functions #45613
Conversation
This looks good to me. |
Something went wrong when running your job:
Unfortunately, the logs could not be uploaded. |
By making more use of the `@assume_effects` annotation. This commit adds several `:consistent` annotations to certain functions that access to constant global table (e.g. `INV_2PI` and `J_TABLE`), because currently our effect analysis can't prove the consistency in the presence of `@inbounds` and `:boundscheck`. In the long term, we can revert this commit once we improve the effect analysis so that it can properly reason about safe tuple indexing.
ca69ae6
to
ed5516f
Compare
@Keno could I hear your thought on this? Especially I'm wondering about:
|
Seems like some of |
win32 bots appear to be mad at this PR
|
These failures seem to happen non-deterministically... For now I'd like to just skip these tests on x86 machines. |
But just print bad effects instead – especially `[sin|cos|tan](::Float32)` seem to be analyzed as non-foldable sometimes non-deterministically, somehow. We need to dig into what's leading to the bad analysis with Cthulhu on each platform, but this homework is left for the readers with access.
But just print bad effects instead – especially `[sin|cos|tan](::Float32)` seem to be analyzed as non-foldable sometimes non-deterministically, somehow. We need to dig into what's leading to the bad analysis with Cthulhu on each platform, but this homework is left for the readers with access. Tests added in #45613
But just print bad effects instead – especially `[sin|cos|tan](::Float32)` seem to be analyzed as non-foldable sometimes non-deterministically, somehow. We need to dig into what's leading to the bad analysis with Cthulhu on each platform, but this homework is left for the readers with access. Tests added in #45613 (cherry picked from commit ef42205)
improve concrete-foldability of core math functions
But just print bad effects instead – especially `[sin|cos|tan](::Float32)` seem to be analyzed as non-foldable sometimes non-deterministically, somehow. We need to dig into what's leading to the bad analysis with Cthulhu on each platform, but this homework is left for the readers with access. Tests added in #45613
By making more use of the
@assume_effects
annotation. This commit addsseveral
:consistent
annotations to certain functions that access toconstant global table (e.g.
INV_2PI
andJ_TABLE
), because currentlyour effect analysis can't prove the consistency in the presence of
@inbounds
and:boundscheck
.In the long term, we can revert this commit once we improve the effect
analysis so that it can properly reason about safe tuple indexing.
runbenchmarks(ALL, vs=":master")