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

release-1.7: Backports for 1.7-rc2 #42255

Merged
merged 89 commits into from
Oct 19, 2021
Merged

Conversation

KristofferC
Copy link
Sponsor Member

@KristofferC KristofferC commented Sep 15, 2021

Contains multiple commits, manual intervention needed:

Non-merged PRs with backport label:

krynju and others added 4 commits September 15, 2021 10:31
(cherry picked from commit df137dd)
… ASAN is enabled" step (but keep the "Build julia-debug with ASAN" step) (#42229)

Co-authored-by: Takafumi Arakaki <aka.tkf@gmail.com>

Co-authored-by: Takafumi Arakaki <aka.tkf@gmail.com>
(cherry picked from commit 60fd334)
@KristofferC KristofferC requested a review from a team as a code owner September 15, 2021 08:33
@DilumAluthge DilumAluthge removed the request for review from a team September 15, 2021 08:33
@DilumAluthge
Copy link
Member

DilumAluthge commented Sep 15, 2021

Looks like 54590dc (cherry-picked from #42172) is causing the CI failures here?

If I understand correctly, callsite use of @noinline is not available until 1.8. (@aviatesk is that correct?)

@KristofferC
Copy link
Sponsor Member Author

Yeah, I'll try without that part and see if the tests still pass.

@aviatesk
Copy link
Sponsor Member

yes, @noinline include("testhelpers/include_error.jl") will error on this branch.
@vtjnash can we just remove the annotation to get test pass ?

vtjnash and others added 4 commits September 15, 2021 16:14
Recursing into inference may be unreliable during inference.

(cherry picked from commit cb5a5bc)
Inference is not able to detect the element type automatically,
but we can do it manually since we know promote_typejoin is used for widening.
This is similar to the approach used for `broadcast` at #30485.

(cherry picked from commit 49e3aec)
Generalization of #41919
Fixes #42168

(cherry picked from commit 68e0813)
@vtjnash
Copy link
Sponsor Member

vtjnash commented Sep 15, 2021

yeah, just drop that commit (unless that test starts failing on CI)

JeffBezanson and others added 9 commits September 23, 2021 13:18
fix #42245

(cherry picked from commit c5f3487)
Since `Bool` is not included in `Base.BitIntegerType`, `hastypemax(Bool)` falls back to the slow generic version. This reduces the performance of `digits!` with Boolean target vector (for `base=2`) significantly. Specializing `hastypemax` on `Bool` fixes this performance bug.

(cherry picked from commit e50603f)
* Test circshift with 0-dim array

* circshift returns dest array for a 0-dim array

* use isempty instead of checking size

(cherry picked from commit 144ed87)
* add `@constprop` for compatibility to 1.7

This also adds a depwarn for `@aggressive_constprop`, which seemed
sensible to me, given that it will be removed in 1.8.
…42347)

The crash in #42264 showed up when attempting to record the new value for
an SSA rename during unionsplit inlining. Such a crash would only happen when
`compact.idx == 1`, which is an unusual condition, because it implies that no
statement of the original function had yet been processed (which is odd, because
the call being inlined must have been processed by this point). As it turns out, there
is currently exactly one case where this happens. If the inliner sees an `_apply_iterate`
(e.g. from splatting) of something that is not a Tuple or SimpleVector (thus
requiring calls to `iterate` to expand the value during `apply`), and if inference
was able to determine the total length of the resulting iteration, a special case early
inliner, will expand out the splat into explicit iterate calls. E.g. a call like:

     %r = tuple((x::Pair)...)

will be expanded out to

     %a = iterate(x::Pair)
     %b = getfield(%a, 1)
     %c = getfield(%a, 2)
     %d = iterate(x, %c)
     %e = getfield(%d, 1)
     %f = getfield(%d, 2)
     iterate(x, %f)
     %r = tuple(%b, %e)

where the inserted `iterate` calls may themselves be inlined. These newly inserted calls are
"pending nodes" during the actual inlining. Thus, if the original apply call was the first statement
of the function, these nodes would be processed before processing the statements in the function themselves.

In particular, this investigation also shows that `compact.idx`, which is the current location
in the function being inlined into is the wrong value to use for SSA renaming. Rather, we
need to use the SSA value of the just-inserted statement. In the absence of pending nodes,
these are equivalent concepts, but not for pending nodes. Fortunately the IncrementalCompact
iterator provides the old SSA value for just this reason and in fact, non-UnionSplit inlining was
already correct here. Thus, to fix the issue, simply adjust union splitting to work the same way
as a non-UnionSplit inline.

In coming up with the test case, an additional complication is that we currently do not perform this optimization for any calls where the apply call itself was unionsplit. It
is somewhat unusual (which explains why we haven't seen this much) for the apply
to not be union-split, but for the subsequent `iterate` to require union-splitting. In the
problem case, what happened is that for two out of the three union cases, the
`iterate` calls themselves would error, causing the resulting info object to look like
a non-unionsplit apply call, triggering this issue.

Co-authored-by: Keno Fischer <keno@alumni.harvard.edu>
(cherry picked from commit b5f3a99)
* [GMP] Patch for Apple Silicon

(cherry picked from commit 764159c)
@DilumAluthge
Copy link
Member

Buildkite is now passing on this PR.

oscardssmith and others added 26 commits October 12, 2021 09:43
* fix exp(NaN16) and add tests

(cherry picked from commit c8cc1b5)
* [LLVM] bump to 12.0.1-4

* Clang is now installed into usr/tools

(cherry picked from commit 538541a)
(cherry picked from commit 56bae3c)

and

(cherry picked from commit 88c338e)
The `while` conditions were incorrectly ordered, resulting in
`BoundsError`.

(cherry picked from commit 9739f50)
…emove the `labeled` trigger (#42642)

(cherry picked from commit e6d0465)
… `USE_BINARYBUILDER=0` (and runs the test suite) on linux64 (#42592)

(cherry picked from commit 4c222c9)
The SparseMatrixCSC constructor checks that the passed in buffers
have length matching the expected number of non-zeros, but the
_outer constructor allocated buffers of the number of structural
non-zeros, not actual non-zeros. Fix this by shrinking the buffers
once the outer product is fully computed.

(cherry picked from commit d885fc2)
...by removing unnecessary type checks/assertions. This basically
restores the function bodies to what they looked like prior to #40594
and only keeps the changed signatures (with the additional changes to
circumvent #39088.

(cherry picked from commit df81a0d)
(cherry picked from commit f2080d5)
@KristofferC KristofferC merged commit 28b7b06 into release-1.7 Oct 19, 2021
@KristofferC KristofferC deleted the backports-release-1.7 branch October 19, 2021 17:54
vchuravy pushed a commit to JuliaLang/Distributed.jl that referenced this pull request Oct 6, 2023
…ease-1.7

release-1.7: Backports for 1.7-rc2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind:release Release management and versioning.
Projects
None yet
Development

Successfully merging this pull request may close these issues.