swh:1:snp:a72e953ecd624a7df6e6196bbdd05851996c5e40

sort by:
Revision Author Date Message Commit Date
1f8aaab Revert "Revert "Upgrade to LLVM 14.0.2"" 14 June 2022, 15:02:13 UTC
6dae654 Merge pull request #45677 from JuliaLang/revert-45195-vc/llvm_14.0.2 Revert "Upgrade to LLVM 14.0.2" 14 June 2022, 15:01:59 UTC
243b4d7 Revert "Upgrade to LLVM 14.0.2" 14 June 2022, 14:59:43 UTC
75f042f minor tweaks on `@assume_effects` docs (#45675) 14 June 2022, 14:31:09 UTC
6c97a48 Merge pull request #45195 from JuliaLang/vc/llvm_14.0.2 Upgrade to LLVM 14.0.2 14 June 2022, 11:35:49 UTC
3f047f7 AMD Zen 3 CPU support (Fixes #45657) (#45663) I've omitted `invpcid` feature since it's clearly omitted for other CPU's. Fixes https://github.com/JuliaLang/julia/issues/45657 14 June 2022, 10:48:49 UTC
8e01e82 `sizeof` doc improvement (#45664) Currently references `summarysize` which does not exist. 13 June 2022, 18:46:40 UTC
4e294a9 Set high water mark for GC at 70% of available memory and only then start performing old generation gcs. (#45442) 13 June 2022, 13:23:17 UTC
0dc3a69 cosmetic refactoring on compiler code (#45659) Separated from #41199 for easier review. 13 June 2022, 11:37:30 UTC
d92acb9 Update SPDX file to show movement of Statistics.jl to JuliaStats (#45634) 13 June 2022, 01:59:26 UTC
b67493a Merge pull request #45644 from JuliaLang/revert-45249-jn/44829c Revert "codegen: explicitly handle Float16 intrinsics" 12 June 2022, 20:45:56 UTC
1c5858b Adjust simplifycfg options 12 June 2022, 00:53:43 UTC
5fb9b6f fix llvmpasses for 14 12 June 2022, 00:53:43 UTC
805cf87 Help the static analyzer 12 June 2022, 00:53:42 UTC
dac857e Replace debuginfo GVs for Win64 with assembly https://reviews.llvm.org/D100944 introduces will split sections if the metadata does not match. The GlobalVariables are `RW_` and the `.text` section is `R_X`. Currently there is no facility to actually mark the GV as `R_X` and we only need to write them during code-emission before we flip the permissions. 12 June 2022, 00:53:42 UTC
bb9d7f6 Upgrade to LLVM 14.0.2 12 June 2022, 00:53:42 UTC
bcf4c99 Revert "codegen: explicitly handle Float16 intrinsics (#45249)" This reverts commit f2c627ef8af37c3cf94c19a5403bc6cd796d5031. 11 June 2022, 10:57:55 UTC
a9e3cc7 codegen: print failure reason when verifier fails (#45642) 11 June 2022, 08:40:58 UTC
329fd49 add compat note for Splat (#45643) 11 June 2022, 08:40:22 UTC
688a7d3 Add `Base.ismutabletype` to doc (#45603) It is exported but not listed in documentation. 11 June 2022, 08:39:54 UTC
a3783c7 Merge pull request #45613 from JuliaLang/avi/concretemath improve concrete-foldability of core math functions 11 June 2022, 08:36:53 UTC
20584cc Merge pull request #45387 from jishnub/OffsetArraybump update the OffsetArray test helper, per individual commit comments 11 June 2022, 03:38:28 UTC
86271db forward `length` to parent in ReshapedArray (#45620) Since `reshape` asserts that the dimensions of the `ReshapedArray` are consistent with the length of the parent array, we may forward `length` to the parent. This may help if the parent's length is easy to compute. 11 June 2022, 03:36:35 UTC
c8c9e04 Improve doc of `@assume_effects` (#45625) 10 June 2022, 21:48:57 UTC
416dba5 signals,unix: remove assert missed in #45560 (#45637) 10 June 2022, 21:47:58 UTC
3d2c9b7 Refactor the meaning of NewSSAValue in IncrementalCompact (#45610) Curently, uncompacted nodes in IncrementalCompact can refer to old SSAValues (as regular SSAValues) and new-new SSAValues (as NewSSAValues), but not post-compaction SSA values. This is a bit of an odd missing middle and is useful when re-ordering instructions from beyond the current insertion point. This PR updates the definition of NewSSAValue to be able to refer to both post-compaction SSAValues (using positive `id` values) and new-new SSAValues (using negative `id` values), which also makes their meaning independent of context (like OldSSAValue). While we're at it, also clean up the `getindex` methods for IncrementalCompact to return `Instruction` (as we did for IRCode). 10 June 2022, 21:14:04 UTC
23f39f8 llvm: Switch to trampoline-based jlcall annotations (#45088) As discussed extensively in #45057, when enabling LLVM's opaque pointer support, we get significant miscompilations in jlcall callsites, because calls with mismatching calling conventions are considered undefined behavior. This implements Option D) from #45057, switching our jlcall callsites to use a `julia.call` trampoline intrinsic instead. The lowering for this intrinsic is essentially the same as the CC-based lowering before, except that the callee is now of course the first argument rather than the actual callee. Other than that, the changes are mostly mechanical. Fixes #45057 10 June 2022, 21:09:35 UTC
295d741 Fix a typo in `setproperty!` docs (#45629) Co-authored-by: Sebastian Stock <42280794+sostock@users.noreply.github.com> 10 June 2022, 20:18:53 UTC
1a73198 doc: types with a partial order should implement < (#45632) Including non-numeric types 10 June 2022, 20:17:42 UTC
897ad3a doc: clarify usage of the second argument to `hash` (#45551) 10 June 2022, 20:01:43 UTC
921d764 Remove unused buggy method instance of Base.floatrange (#45576) Ref: https://github.com/JuliaLang/julia/issues/45336 10 June 2022, 20:00:36 UTC
223359b make converting to `NTuple` throw consistently (#45575) Fix #44179 10 June 2022, 19:58:37 UTC
ada860f 🤖 Bump the Pkg stdlib from 610c768c3 to 201cbe2a5 (#45555) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> Co-authored-by: Kristoffer Carlsson <kcarlsson89@gmail.com> 10 June 2022, 15:07:47 UTC
7f2bb7d codegen cleanup attempt: use memcpy for field loads and stores (#45606) * codegen: general code quality cleanup (NFCI) * codegen: add a missing decay_tracked call * codegen: use memcpy instead of load/store for more field values 10 June 2022, 13:11:30 UTC
8bb6561 threading: move sleep/wake state into ptls (#45557) This is easier to manage as part of the existing block (we previously did not include it only because we did not have the libuv definitions for it and did not need to). 10 June 2022, 04:30:54 UTC
7bc26a3 Merge pull request #45437 from haampie/fix/retrieve-llvm-NDEBUG llvm: add NDEBUG when assertion mode is off 10 June 2022, 03:24:24 UTC
e82efd3 NFC: general refactoring on `Core.Compiler` (#45619) Separated from #41199. 10 June 2022, 03:01:18 UTC
2ad2e85 Unset NDEBUG in analyzers 09 June 2022, 21:12:55 UTC
f0b1c5f build: cleanup base files inclusion (#45441) Ensures the out-of-tree build has the correct files installed, and simplifies some of the `include`s used in Base. Fixes a return value that was relied on (largely unnecessarily) by a loading test, despite being invalid before now. Fixes #31140 09 June 2022, 20:04:56 UTC
46135df strengthen reference stores to give release/consume semantics (#45484) Followup to #36507; see the discussion there. Also slightly weakens non-atomic pointer modification, since we generally don't need DRF swap guarantees at all (even monotonic), only the atomic-release property. This would correspond to atomic-unordered failure order in many cases, but the LLVM LangRef says that this case is "uninteresting", and thus declares it is invalid. n.b. this still does not cover embedded references inside inlined structs 09 June 2022, 20:03:22 UTC
f4d13cf manage stackwalk/profile lock correctly (#45549) Previously we had the wrong number of them (it was not global) and it was in the wrong shared library (it was part of codegen instead of profiling). The profile_round_robin_thread_order buffer was not allocated on the thread that exclusively used it, so it sometimes could end up somewhat awkwardly (in incorrectly) shared between 2 threads. 09 June 2022, 20:01:55 UTC
e9783c7 Amend `__init__` docstring, add it to docs (#45536) 09 June 2022, 20:00:58 UTC
bb2f3fd signals,unix: fix race condition when profile fails to register (#45560) Observed to cause a hang in the rare instance this case is reached. 09 June 2022, 19:53:00 UTC
bd26069 Fix typo in --heap-size-hint description (#45623) 09 June 2022, 16:11:42 UTC
7dc132c Add `pkgversion(m::Module)` to get the version of the package that loaded a given module (#45607) 09 June 2022, 00:49:27 UTC
ed5516f test improved concrete-foldabilities of special functions 09 June 2022, 00:41:15 UTC
475b623 improve concrete-foldability of core math functions 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. 09 June 2022, 00:35:53 UTC
29ea755 make more use of `LazyString` to improve effects of `power_by_squaring` 09 June 2022, 00:35:53 UTC
f9dc722 rename `is_concrete_eval_eligible` utility query to `is_foldable` (#45615) `is_foldable` should be more aligned with `Base.@assume_effects`. This should be backported to 1.8 also. 09 June 2022, 00:20:50 UTC
9f26d5c Add missing static to inline statement (#45564) 08 June 2022, 22:27:15 UTC
7e53436 make gcd use divrem (#45456) 08 June 2022, 15:51:35 UTC
dd5e252 Update Statistics.version to pull from the JuliaStats org (#45597) 08 June 2022, 12:20:08 UTC
d645436 add a bit more information upon artifact load failure (#45537) 08 June 2022, 11:44:51 UTC
54b92a7 Move Statistics out of the sysimage (#45594) And remove uses of it in the manual and tests. 08 June 2022, 07:32:35 UTC
3e50bc0 🤖 Bump the Statistics stdlib from cdd95fe to c38dd44 (#45601) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 07 June 2022, 19:36:21 UTC
0f06649 Update latest version in README (#45604) Co-authored-by: Christian <christian.guinard@dal.ca> 07 June 2022, 19:36:09 UTC
56f1d24 Extend doc for `@max_methods` (#45595) 07 June 2022, 07:20:19 UTC
c4effda Eager finalizer insertion (#45272) * Eager finalizer insertion This is a variant of the eager-finalization idea (e.g. as seen in #44056), but with a focus on the mechanism of finalizer insertion, since I need a similar pass downstream. Integration of EscapeAnalysis is left to #44056. My motivation for this change is somewhat different. In particular, I want to be able to insert finalize call such that I can subsequently SROA the mutable object. This requires a couple design points that are more stringent than the pass from #44056, so I decided to prototype them as an independent PR. The primary things I need here that are not seen in #44056 are: - The ability to forgo finalizer registration with the runtime entirely (requires additional legality analyis) - The ability to inline the registered finalizer at the deallocation point (to enable subsequent SROA) To this end, adding a finalizer is promoted to a builtin that is recognized by inference and inlining (such that inference can produce an inferred version of the finalizer for inlining). The current status is that this fixes the minimal example I wanted to have work, but does not yet extend to the motivating case I had. Nevertheless, I felt that this was a good checkpoint to synchronize with other efforts along these lines. Currently working demo: ``` julia> const total_deallocations = Ref{Int}(0) Base.RefValue{Int64}(0) julia> mutable struct DoAlloc function DoAlloc() this = new() Core._add_finalizer(this, function(this) global total_deallocations[] += 1 end) return this end end julia> function foo() for i = 1:1000 DoAlloc() end end foo (generic function with 1 method) julia> @code_llvm foo() ; @ REPL[3]:1 within `foo` define void @julia_foo_111() #0 { top: %.promoted = load i64, i64* inttoptr (i64 140370001753968 to i64*), align 16 ; @ REPL[3]:2 within `foo` %0 = add i64 %.promoted, 1000 ; @ REPL[3] within `foo` store i64 %0, i64* inttoptr (i64 140370001753968 to i64*), align 16 ; @ REPL[3]:4 within `foo` ret void } ``` * rm redundant copy Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> 07 June 2022, 01:21:17 UTC
9086fd0 Preserve ScalarEvolution/MemorySSA in JuliaLICM (#45497) 06 June 2022, 18:58:45 UTC
803f90d REPL: allow switching contextual module (#33872) `Main` remains the default module in which REPL expressions are `eval`ed, but it's possible to switch to a module `Mod` via `REPL.activate_module` or the keybinding Alt-m. The default prompt then indicates this, e.g. `(Mod) julia> `. Co-authored-by: KristofferC <kristoffer.carlsson@juliacomputing.com> 06 June 2022, 09:30:19 UTC
bd8dbc3 Support passing a workspace vector throughout sorting methods and use this feature in sort(A; dims) (#45330) Co-authored-by: Lilith Hafner <Lilith.Hafner@gmail.com> 02 June 2022, 21:46:59 UTC
b46c14e [Profile] `threads` here is wrong to use `nthreads` (#45547) Since the `data` argument possibly does not come from the current configuration, we should not use `nthreads` here either to filter out possibly significant data. 02 June 2022, 14:49:47 UTC
7e788bd ambiguity fix from OffsetArrays#289 02 June 2022, 14:41:42 UTC
954b949 Fix errors in printing IdOffsetRange 02 June 2022, 14:41:42 UTC
45e3369 avoid overflow while constructing OA 02 June 2022, 14:41:42 UTC
4dd2a9b OffsetArrays PR#286 02 June 2022, 14:41:42 UTC
41873cb update the OffsetArray test helper 02 June 2022, 14:41:42 UTC
8bfb42a codegen: manage gc-safe-region implicitly in cfunction (#45550) This makes cfunction safe to call from anywhere, including unmanaged code callbacks. 02 June 2022, 14:40:36 UTC
86e3f0a manage order of startup/shutdown state a bit better (#45546) 02 June 2022, 14:40:02 UTC
172bddc Fix segfault in `Diagonal` * `OffsetMatrix` (#45548) * diagonal*offset matrix should throw 02 June 2022, 13:59:18 UTC
5ffdc5c inference: improve `ssa_def_slot` tracking (#45524) This change allows us to propagate conditional information through this kind of pattern (see #45499): ``` %init = [...] [...] SlotNumber(x) = %init [...] goto if not isa(%init, T) ``` If `SlotNumber(x)` is only assigned by `%init` between the definition of `%init` and the `goto` usage, we can impose a conditional constraint on `SlotNumber(x)`. 02 June 2022, 00:25:14 UTC
53338ca keep track of more Gcstats (#45191) * Add max_memory and max_pause_time to gc_num data structure. Co-authored-by: Oscar Smith <oscardssmith@gmail.com> Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com> 01 June 2022, 14:43:06 UTC
0a55a8e Fix zero-length array concatenation validation (#45383) 01 June 2022, 10:11:14 UTC
1c7c000 Update comments above `searchsorted(first/last)` (#45386) Minor change to update the comments to match the corresponding docstrings. 01 June 2022, 10:10:22 UTC
ab4c8cf Ensure inference of `Bool` when array type is Any (#45452) 01 June 2022, 09:50:54 UTC
cbcb359 Expand documentation of Set (#45416) Hash sets have properties that can be counter-intuitive to people not familiar with computer science: They provide constant-time membership testing, are unordered, and deduplicate their elements as determined by `isequal` and `hash`. This commit expands the documentation of `Set` to mention the above properties, and also that it is a subtype of `AbstractSet`. 01 June 2022, 09:45:59 UTC
d84f890 inference: add more assertions for nested lattice elements (#45527) This allows us to make sure we don't create any lattice element that wraps slot wrappers (currently `Conditional` and `InterConditional`), that are hard to be invalidated properly. 01 June 2022, 05:24:11 UTC
cbbcf07 add news entries for recent compiler-related improvements (#45525) 01 June 2022, 04:29:57 UTC
5248cbd update HISTORY.md to take in the 1.8 revisions (#45533) 01 June 2022, 04:29:37 UTC
8c4e69a Docs for `insorted`: fix order of arguments (#45530) 01 June 2022, 01:28:23 UTC
4c4c94f Optimize findall(f, ::AbstractArray{Bool}) (#42202) Co-authored-by: Milan Bouchet-Valat <nalimilan@club.fr> 01 June 2022, 01:16:54 UTC
8373146 Improve documentation of unary : (#45426) Unary `:` was poorly documented previously. The previous docs stated it would return a Symbol, but in fact also Expr objects and literal values can be returned from code quoting. See #43054 Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com> Co-authored-by: Valentin Churavy <vchuravy@users.noreply.github.com> 01 June 2022, 01:01:05 UTC
0fce312 Don't gzip staging tarballs. (#45515) 31 May 2022, 15:46:42 UTC
3eaed8b Speed up `mapslices` (#40996) * renovate mapslices 31 May 2022, 15:31:17 UTC
f5ebcc9 Say how to test stdlib packages in CONTRIBUTING.md (#45509) Because stdlib packages are in the julia sysimg, simply running Pkg.test will not work as the sysimg version will shadow the one being developed. Mention that the developer can change the package UUID temporarily to enable Pkg to test a stdlib 31 May 2022, 03:54:03 UTC
b2bce47 doc: add cross references for walkdir/readdir (#45514) 30 May 2022, 12:43:39 UTC
0a917d2 Merge pull request #45479 from JuliaLang/avi/ccinterconditional inference: NFC refactoring on `Conditional`/`InterConditional` 30 May 2022, 07:05:21 UTC
2fefc91 inference: define `InterConditional` within `Core.Compiler` When I introduced this new lattice within #38905, I defined this in `Core` for some performance reason, but now I'm sure it is really necessary. Rather, it is easier to develop Julia-level inference routine in pure Julia, so this commit moves the definition of `InterConditional` to `Core.Compiler`. 30 May 2022, 04:45:34 UTC
f5c3c41 inference: make `Conditional` and `InterConditional` slightly more symmetric Especially the `.var::SlotNumber` field of `Conditional` is now renamed to `.slot::Int` as like `InterConditional`. This change may also cut off few allocations of `SlotNumber`. We may want `Conditional` to propagate constraints about non-local binding (like global references) in the future, but I think that won't happen that soonish. For the meanwhile, it would be reasonable to keep the field specific `SlotNumber`. 30 May 2022, 04:45:32 UTC
a5e275f inference: rename `.vtype` of `Conditional` to `.thentype` The "vtype" term is a bit confusing since it is used for "variable state" managed by `InferenceState`. Rather, the `.thentype` naming is more consistent with the counterpart field `.elsetype`, and would make its meaning more explicit. 30 May 2022, 04:42:55 UTC
5a32626 inference: refactor the core loops to use less memory (#45276) Currently inference uses `O(<number of statements>*<number of slots>)` state in the core inference loop. This is usually fine, because users don't tend to write functions that are particularly long. However, MTK does generate functions that are excessively long and we've observed MTK models that spend 99% of their inference time just allocating and copying this state. It is possible to get away with significantly smaller state, and this PR is a first step in that direction, reducing the state to `O(<number of basic blocks>*<number of slots>)`. Further improvements are possible by making use of slot liveness information and only storing those slots that are live across a particular basic block. The core change here is to keep a full set of `slottypes` only at basic block boundaries rather than at each statement. For statements in between, the full variable state can be fully recovered by linearly scanning throughout the basic block, taking note of slot assignments (together with the SSA type) and NewVarNodes. Co-Authored-By: Keno Fisher <keno@juliacomputing.com> 30 May 2022, 04:40:44 UTC
0057d75 effects: add `nothrow` modeling for `setglobal!` (#45481) Also adds some test cases to assert that we're not doing too aggressive `nothrow` modeling for undefined bindings, which would require a new system to track "world-age" of global variables: ```julia \# we should taint `nothrow` if the binding doesn't exist and isn't fixed yet, \# as the cached effects can be easily wrong otherwise \# since the inference curently doesn't track "world-age" of global variables @eval global_assignment_undefiendyet() = $(GlobalRef(@__MODULE__, :UNDEFINEDYET)) = 42 setglobal!_nothrow_undefiendyet() = setglobal!(@__MODULE__, :UNDEFINEDYET, 42) let effects = Base.infer_effects() do global_assignment_undefiendyet() end @test !Core.Compiler.is_nothrow(effects) end let effects = Base.infer_effects() do setglobal!_nothrow_undefiendyet() end @test !Core.Compiler.is_nothrow(effects) end global UNDEFINEDYET::String = "0" let effects = Base.infer_effects() do global_assignment_undefiendyet() end @test !Core.Compiler.is_nothrow(effects) end let effects = Base.infer_effects() do setglobal!_nothrow_undefiendyet() end @test !Core.Compiler.is_nothrow(effects) end @test_throws ErrorException setglobal!_nothrow_undefiendyet() ``` 30 May 2022, 04:06:30 UTC
18bdbbf Merge pull request #45478 from JuliaLang/avi/follow-45440 follow #45440, add assertion to check concrete-eval call is compileable 30 May 2022, 02:09:35 UTC
6f8860c csl.mk: use libgcc_s 1.1 on aarch64-darwin (#45504) 29 May 2022, 21:13:02 UTC
9c235bc Remove inlining special case for effectful GlobalRef in statement position (#45459) Having an effectful GlobalRef in statement position has been illegal in IRCode since 39c278b728deb04c3a32d70e3e35dcef7822c0c0. This code predates that and probably should have been adjusted at the time. It used to not really cause an issue, but now that we're using ir-flags to determine effectfulness rather than recomputing it every time, we were littering the IR with undeleted GlobalRefs. Removing the special case fixes that up and results in (marginally) smaller and cleaner IR. Unfortunately, we aren't currently moving static_parameter to statement position either, even though the optimizer is assuming this elsewhere (#45490). Add a special case to do it during IR conversion, though it would probably be better to do it in lowering. 29 May 2022, 21:11:11 UTC
28d9326 Update LibCURL to 7.83.1 (#45443) This new build doesn't depend on Kerberos Co-authored-by: Mosè Giordano <mose@gnu.org> 29 May 2022, 16:45:28 UTC
6ea9034 Make llvmunwind depend on llvm (#45380) 29 May 2022, 14:35:23 UTC
eb230a5 Merge pull request #45496 from JuliaLang/vc/jl_dump Don't use RAII for jl_llvmf_dump_t 29 May 2022, 00:23:51 UTC
3e7af29 🤖 Bump the SparseArrays stdlib from 96820d3 to 60d701c (#45471) Co-authored-by: Dilum Aluthge <dilum@aluthge.com> 28 May 2022, 22:20:33 UTC
2e2b8aa Don't use RAII for jl_llvmf_dump_t 28 May 2022, 18:19:13 UTC
back to top