Skip to content
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

Backports for julia 1.9.0-beta3 #48075

Merged
merged 40 commits into from
Jan 17, 2023
Merged

Backports for julia 1.9.0-beta3 #48075

merged 40 commits into from
Jan 17, 2023

Conversation

KristofferC
Copy link
Member

@KristofferC KristofferC commented Jan 2, 2023

Backported PRs:

Non-merged PRs with backport label:

DilumAluthge and others added 5 commits January 2, 2023 10:19
(cherry picked from commit 293ab47)
* Use the same timing reentrancy counter for both inference and codegen

* Add some timing tests

* Add macro-based timer test

(cherry picked from commit 1fda4bb)
…#48064)

This was add to OpenBLAS in OpenMathLib/OpenBLAS#3773 and was supposed to be used in #46844 but was likely typod

(cherry picked from commit 75bc5ee)
@KristofferC KristofferC added the release Release management and versioning. label Jan 2, 2023
@vchuravy

This comment was marked as outdated.

@KristofferC KristofferC changed the title Backports for julia 1.9.0-beta2 Backports for julia 1.9.0-beta3 Jan 2, 2023
@maleadt

This comment was marked as outdated.

@nanosoldier
Copy link
Collaborator

Your package evaluation job has completed - possible new issues were detected. A full report can be found here.

@LilithHafner
Copy link
Member

@nanosoldier runbenchmarks("sort", vs=":release-1.8")

@nanosoldier
Copy link
Collaborator

Your benchmark job has completed - possible performance regressions were detected. A full report can be found here.

DilumAluthgeBot and others added 9 commits January 9, 2023 17:29
…6151 (#48186)

Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
effects: taint `:consistent`-cy on `:inbounds` and `:boundscheck` exprs
As noted in #48047, we're currently attempting to infer extra
methods during incremental image saving, which causes us to miss
edges in the image. In particular, in the case of #48047, Cthulhu
had the `compile=min` option set, which caused the code instance
for `do_typeinf!` to not be infered. However, later it was
nevertheless queued for precompilation, causing inference to
occur at an inopportune time.

This PR simply prevents code instances that don't explicitly have
the `->precompile` flag set (e.g. the guard instance created for
the interpreter) from being enqueued for precompilation. It is
not clear that this is necessarily the correct behavior - we may
in fact want to infer these method instances, just before we set
up the serializer state, but for now this fixes #48047 for me.

I also included an appropriate test and a warning message if
we attempt to enter inference when this is not legal, so any
revisit of what should be happening here can hopefully make
use of those.

(cherry picked from commit 80aeebe)
The whole module is under `@nospecialize`, so inference
needs us to annotate the argtypes.

(cherry picked from commit 0913cbc)
* set `v[j] = pivot` in partition rather than returning pivot to caller to make partition! type stable for non-concrete eltype

(cherry picked from commit 54aa57c)
…lity to approximate equality (#48102)

* Math tests: if fma is not available, relax some tests from exact equality to approximate equality

* Apply suggestions from code review

Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com>

* `has_fma` has no runtime support

* Add `Rational{Int}`

* Put the FMA support info in the testset context

* Fix whitespace

* Remove inaccurate testset name

Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com>
(cherry picked from commit 6d14b0f)
vchuravy and others added 3 commits January 10, 2023 14:56
Some code cleanup, and an early exit path that avoids trying to create a
compilation signature from something that cannot be turned into one.
Previously we might try a little too hard to make one, even if it meant
we ignored that it was expected to be Varargs.

Fix #48085

(cherry picked from commit 45c81b1)
…o an exisiting cache file already in use (#48137)

* add a suffix to a new cache files in case of failure of renaming it to an exisiting file

(cherry picked from commit ec437b7)
DilumAluthgeBot and others added 17 commits January 13, 2023 07:22
…0acc (#48253)

Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
Co-authored-by: Fredrik Ekre <ekrefredrik@gmail.com>
(cherry picked from commit 793eaa3)
…tive) (#48248)

Co-authored-by: Ian Butterworth <i.r.butterworth@gmail.com>
(cherry picked from commit eb5f6d6)
Keep the splat function and mention in the documentation that it's the
recommended way of constructing a Base.Splat object.

(cherry picked from commit 670190c)
Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
(cherry picked from commit 4f34aa9)
and fix the behavior of the check-bounds flag.

Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com>
(cherry picked from commit 0c3b950)
* Use stringsteam to atomically write LLVM opt timings

* Add boolean to ensure we don't _only_ write the after block

* Use ios_printf

Co-authored-by: Nathan Daly <NHDaly@gmail.com>
(cherry picked from commit 8985403)
Avoid some stackoverflow during typeintersect.

(cherry picked from commit a5ab48f)
This works to fix #48243, by only tanting effects if an `@inbounds` statement
is actually reached. Further, it refines the `noinbounds` effect to be
IPO-cached and used to track whether a particular method read the inbounds state.
A `:boundscheck` expression now does not immediately taint consistencty, but
instead, taints `noinbounds` only. Then, if a method that has `:noinbounds`
tainted is called within an `@inbounds` region, consistency is tainted.
Similarly, a tainted `:noinbounds` disables constant propagation at
`@inbounds` statements or if the method propagates inbounds.

(cherry picked from commit d544e78)
* add TargetMachine check

* Add initial float16 multiversioning stuff

* make check more robust and remove x86 check

* move check to inside the pass

* C++ is hard

* Comment out the ckeck because it won't work inside the pass

* whitespace in the comment

* Change the logic not to depend on a TM

* Add preliminary support for x86 test

* Cosmetic changes

(cherry picked from commit d18fd47)
@KristofferC KristofferC merged commit e25433c into release-1.9 Jan 17, 2023
@KristofferC KristofferC deleted the backports-release-1.9 branch January 17, 2023 07:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release Release management and versioning.
Projects
None yet
Development

Successfully merging this pull request may close these issues.