swh:1:snp:a72e953ecd624a7df6e6196bbdd05851996c5e40

sort by:
Revision Author Date Message Commit Date
381693d Set VERSION to 1.4.1 (#35467) 14 April 2020, 17:20:20 UTC
ec31c9a Merge pull request #35229 from JuliaLang/backports-release-1.4.1 Backports for Julia 1.4.1 14 April 2020, 08:03:06 UTC
7bd73b6 [backport #35274] fix #35272, searchsorted(3:-1:1, 2.5, rev=true) (#35435) 12 April 2020, 09:23:42 UTC
44fa722 [LateGCLowering] Fix skipped Select lifting (#35387) Fixes #35341 (cherry picked from commit 7a4ea219b5e4a2df3dc354476127e06d18b5506d) 10 April 2020, 09:41:39 UTC
6d635d7 fix #35391, macro hygiene bug in gc_preserve (#35394) (cherry picked from commit 8256be444d4420b485893993cd3f391be397ad1b) 10 April 2020, 09:41:39 UTC
7f5adff Merge pull request #35405 from JuliaLang/vc/bump_bb_1.4 [1.4.1] Update LLVM and OpenBLAS BB release 09 April 2020, 13:45:59 UTC
7e5ee11 bump OpenBLAS release 08 April 2020, 19:48:10 UTC
8f46c77 bump LLVM release 08 April 2020, 16:06:28 UTC
c53191a Version `UnicodeData.txt` filename (#35383) We've been downloading multiple different versions of `UnicodeData.txt` across different branches and trying to keep a consistent checksum. (cherry picked from commit 922891ccbfcd74a0d10eca4f197b976ec08c20fd) 07 April 2020, 06:24:25 UTC
48ee62c Merge pull request #35313 from JuliaLang/vc/bp_llvm8 [LLVM8] patch maintenance 04 April 2020, 14:51:59 UTC
61d70cb fix #35305, need escaping when printing string macro calls (cherry picked from commit b6dd448e3afab4a4a0015bb2e6122b97f649e5da) 04 April 2020, 09:28:13 UTC
d455bda adding escape_raw_string() Implementation of the raw-string escaping convention. Can also be used to escape command-line arguments for Windows C/C++/Julia applications, which use the same \" escaping convention as Julia non-standard string literals. (cherry picked from commit cdc5e791888e61b8f78ee9ccb2fcd21b94c7493e) 04 April 2020, 09:28:05 UTC
6c08ec4 fix method error printing for missing (#35315) fix method error printing for missing (cherry picked from commit 0b0b126ce73defed660aab11942d9307915f1926) 04 April 2020, 09:27:29 UTC
069f137 Fix offset when widening collections (cherry picked from commit 1da24809378ab7c849f59c09270769e24d15a7b4) 04 April 2020, 09:25:11 UTC
bc6adcd fix a bug preventing inlining of getindex of const globals (#35239) (cherry picked from commit 1f787492c3ac44797941f10c8bd452a1a7eef0f8) 04 April 2020, 09:17:39 UTC
625be9e Update `UnicodeData` checksum (#35356) Upstream has apparently modified this file as of March 30th 2020, which is annoying as it has broken all older builds of Julia attempting to download and check this file. (cherry picked from commit c9805191e32fde9d4aa55e59493178f47444926e) 04 April 2020, 09:12:51 UTC
f73a14c fix #35295, typo in change to `clipboard` on linux (#35310) (cherry picked from commit 33df293a6a46d83bdd3a9caa08b311ef74452d60) 04 April 2020, 09:12:50 UTC
bc6fa8f Linux: Remove `--nodetach` option for `xsel` copy. (#35180) The `--nodetach` option causes `clipboard(x)` to hang indefinitely on (most? All which I have tried) linux systems. Removing this option fixes `clipboard(x)`, but briefly spawns a child process. Since `clipboard(x)` is designed for interactive use, this shouldn't be an issue. (cherry picked from commit 5dd66767f7884fd7de104d9b8144841774ecbdf0) 04 April 2020, 09:12:48 UTC
1156956 fix #35225, issubset on empty ranges (#35244) (cherry picked from commit 64ee8ab993db6ed806ca06c950dc6475f2e7dc0c) 04 April 2020, 09:12:46 UTC
7538e15 bump LLVM BB release 30 March 2020, 16:04:03 UTC
b4be5f2 yank LLVM assert checksums 30 March 2020, 14:50:37 UTC
9131e12 change libLLVM suffix to match build-configuration Backport of 5e0cab69966eb989f380492dda7590bca3a3ba8d. 29 March 2020, 21:44:51 UTC
c6673ae [LLVM8] add patches for D75072 and D65174 (cherry picked from commit d20184f90e8ddacb40222154714bc6140eaaa4a3) 29 March 2020, 21:44:24 UTC
8f1218a Add AddrSpacePtr type (cherry picked from commit 8cb8f0c485a81082813dde82b7caba29e2343c36) 23 March 2020, 08:58:36 UTC
e54a0de Bump Documenter to 0.24.7 (#35227) (cherry picked from commit d37778535283b5484ec76759d227612190a3b63d) 23 March 2020, 08:58:36 UTC
23e8527 fix #35201, syntax error with named splatting inside function call (#35202) (cherry picked from commit 59d7522eaecc86783078eac8746516e3a0d8a308) 23 March 2020, 08:58:36 UTC
7ccda0e fix bug in t-function for `>:` (#35136) (cherry picked from commit 2a5bb59facdce6c8d987a3752f2b50e2e06d7bef) 23 March 2020, 08:58:36 UTC
9dbe7e8 Remove outdated paragraph from deepcopy docstring (#35192) (cherry picked from commit 6baa701c571ff3dd976e45fb9892d5430993edb5) 23 March 2020, 08:58:36 UTC
0e24a7f add compat annotation for map!(f, values(dict)) (from #31223) (#35184) (cherry picked from commit 644753491de0d5d933c96e6f1f5876b3c7603cf4) 23 March 2020, 08:58:36 UTC
71fcb9a speed up llvmcall unique name generation (#35144) (cherry picked from commit 5d5f799ed43b3ef458e16fba4f34533f5719c614) 23 March 2020, 08:58:36 UTC
f1593e1 Support git config credential resetting (#35064) (cherry picked from commit 0f1b1192735e1c05c5aa0eab85bef92250abe05c) 23 March 2020, 08:15:15 UTC
5cf6725 walkdir: avoid symlink loops when `follow_symlinks == false` (#35006) * walkdir: avoid symlink loops when `follow_symlinks == false` Because `isdir()` attempts to dereference symlinks, attempting to `walkdir()` trees that contain symlink loops errors out. This change modifies `walkdir()` to treat all symlinks as files when `follow_symlinks == false`. * rm: When checking `filemode()`, use `lstat()` to avoid following symlinks (cherry picked from commit 178ac974b5e9f649c0ffb3ed78752dc9241b7a5a) 23 March 2020, 08:15:14 UTC
4e11ce9 Rebase of #28526 on master (#34989) * fix \ SparseVector * split (\) for sparsevector; test for Factor and Symmetric Sparse Matrix Co-authored-by: Chi Po Choi <choi.chi.po@gmail.com> (cherry picked from commit d2f967766ca1622e244fdb8136c2f5374d697fee) 23 March 2020, 08:15:13 UTC
1d13caa Sockets: fix return value of getpeername/getsockname (#34986) (cherry picked from commit 598209de2161df196419cb39a2d595c6abf8763b) 23 March 2020, 08:15:12 UTC
ec8f59c Fix inverse of SVD of complex matrix (#34872) Closes #34866 (cherry picked from commit f7093312ca8747765c96b8571f47b4bfa2e53708) 23 March 2020, 08:15:10 UTC
de3914e Fix regression in inlining of invoke (#34906) When we added the check to prevent inlining through ambiguous methods, we failed exclude this check for calls to `invoke` (which skip ambiguous methods, since the method is explicitly selected). Fixes #34900. (cherry picked from commit 6abc8521bfe3af422866cb91b196367706d239b6) 23 March 2020, 08:15:10 UTC
b8e9a9e Set VERSION to 1.4.0 (#35168) 21 March 2020, 16:36:32 UTC
268f9d2 Merge pull request #34992 from JuliaLang/backports-release-1.4 Backports for Julia 1.4.0 19 March 2020, 11:33:15 UTC
8c2a944 Bump LLVM tarballs on 1.4 (#35120) * Switch LLVM BB download to new format * use cxx11-specific downloads instead of GCC-version-specific downloads * Default to `cxx11` when it's indeterminate * handle CXX expanded BB builds * Add LLVM_full checksums Co-authored-by: Valentin Churavy <v.churavy@gmail.com> 19 March 2020, 05:43:34 UTC
61b3ea4 Fix `$(PYTHON)` paths for native windows executable or cygwin (#34984) (cherry picked from commit 0e8143e1e7d125b74e474d0fbd3a5a5e2d574779) 04 March 2020, 09:46:46 UTC
b8ce43a Add missing 1.4 news note for new function pkgdir() (#33128) (#34663) * add note for new function pkgdir() (#33128) Co-Authored-By: Fredrik Ekre <ekrefredrik@gmail.com> Co-authored-by: Viral B. Shah <viral@juliacomputing.com> Co-authored-by: Fredrik Ekre <ekrefredrik@gmail.com> 04 March 2020, 08:49:42 UTC
467d3a1 fix unsigned(::Ptr) and signed(::Ptr) (#34941) (cherry picked from commit cdf580aff8642e34889cb1c3c8445992663d16fa) 04 March 2020, 08:43:05 UTC
b99ed72 Set VERSION to 1.4.0-rc2 (#34841) 24 February 2020, 16:51:22 UTC
7612062 Merge pull request #34517 from JuliaLang/backports-release-1.4 Backports for Julia 1.4 RC2 22 February 2020, 09:08:41 UTC
b4edc25 Convert range type in `reduced_index` The `reduced_indices` and `reduced_indices0` methods sometimes assert that the return axes type is the same as the input. Consequently, the implementation of `reduced_index` had better return a range of the same type as the input. This corrects the error in https://github.com/JuliaArrays/OffsetArrays.jl/issues/92. I'll put a workaround in OffsetArrays.jl too. (cherry picked from commit eda4131859229c7d9de4461e154a73bb89a6b783) 21 February 2020, 22:06:46 UTC
e0d0bb1 fix #34826, unwrap VecElement when needed in `julia_const_to_llvm` (#34829) (cherry picked from commit a3f7fa8611f8d0036d01f449ef893c65050d9f6a) 21 February 2020, 19:34:00 UTC
e161506 Fix #34316 (#34817) Fix hypot with both arguments 0 Remove hypot from Furlongs in order to test the defined fallback (cherry picked from commit 8e3aa66ab7084e04b77ce8f08fddd39340e70351) 21 February 2020, 19:33:59 UTC
6ab792f use Pkg release 1.4 20 February 2020, 15:40:18 UTC
9fe1a5e Profile: fix indent computation BoundsError (#34806) fixes #34723 (cherry picked from commit f5afdf908033f667791df05c0fa800258ca9bb67) 19 February 2020, 20:31:16 UTC
967bc47 codegen: fix segfaults with VecElement with union element (#34805) We were being too aggressive at unwrapping these: since they are already unwrapped once, they need to be treated almost as a normal struct. fixes #29864 (cherry picked from commit 8720530fae5e7f34003057fe487c871ca81560a0) 19 February 2020, 20:31:15 UTC
d9d6364 codegen: fix bad declaration of memcmp stdlib function signature (#34792) We were lying to LLVM, and it now catches that in the verifier. Stop lying to LLVM so that it will again be happy to generate good code for us (e.g. optimizing this to bcmp). (cherry picked from commit d634f73f2b7445b8bf331707242ea0421676a293) 19 February 2020, 20:31:15 UTC
a90cfd2 partr: Fix deadlock (#34807) When there is no work to do, the first thread to be idle will attempt to run the event loop once, waiting for any notifications (which will usually create new work). However, there is an interesting corner case where a notification arrives, but no work was scheduled. That doesn't usually happen, but there are a few situations where it does: 1) Somebody used a libuv primitive outside of julia, so the callback doesn't schedule any julia work. 2) Another thread forbily interrupted the waiting thread because it wants to take over the event loop for various reasons 3) On Windows, we occasionally get spurious wake ups of the event loop. The existing code in partr assumed that we were in situation 2, i.e. that there was another thread waiting to take over the event loop, so it released the event loop and simply put the current thread to sleep in the expectation that another thread will pick it up. However, if we instead are in one of the other two conditions, there may not be another thread there to pick up the event loop. Thus, with no thread owning the event loop, julia will stop responding to events and effectively deadlock. Since both 1 and 3 are rare, and we don't actually enter the event loop until there was no work for 4 milliseconds (which is fairly rare), this condition rarely happens, but is occasionally observable on Windows, where it caused #34769. To test that this fix works, we manually create situation 1 in the test by creating an idle callback, which will prevent the event loop from blocking, but only schedules julia work after it's been called 100 times. This reproduces the observed failure from the issue and is fixed by this PR. Fixes #34769 Co-authored-by: Jeff Bezanson <jeff@juliacomputing.com> Co-authored-by: Jameson Nash <jameson@juliacomputing.com> (cherry picked from commit f36edc2c2429140663baeedddd4cf11712c4469d) 19 February 2020, 20:31:14 UTC
f4b4629 make alignment deal with float32 like float64 (#34763) (cherry picked from commit b0d1c1abb69981e80640fb1501ce88d597b9cf74) 19 February 2020, 20:31:13 UTC
2592da4 Merge pull request #34801 from JuliaLang/sf/LLVM_asserts_jll_1.4 Add LLVM asserts checksums 19 February 2020, 19:48:30 UTC
81e14fb Add LLVM asserts checksums 18 February 2020, 18:08:27 UTC
27d2693 ccall: avoid some bad symbol mangling Other bad cases are probably less common, but still exist. The code to fix those is included in #25984. Fixes #34680 (cherry picked from commit 66ecd90bd6359a3094bb21964830b0f75d71bcda) 17 February 2020, 14:36:04 UTC
6b89ea6 build: fix missing function prototype on older gcc The ffs function is not always available under that name, use instead the compiler name for it which may always be used. (cherry picked from commit ef17985df6ee670dec4d266b7ed9cf56beca295e) 17 February 2020, 14:35:56 UTC
317b4ef Remove Iterators.reverse(::Tuple) specialization (#34732) (cherry picked from commit 48f942bdd659ae55d7d3e34dcf15dbb8bd871d71) 17 February 2020, 14:35:41 UTC
df2da49 fix #34752, inference bug in varargs with constant prop (#34755) (cherry picked from commit 438485e5a93f240ab68a28190a798c263e5a7a25) 17 February 2020, 14:35:26 UTC
4f81f94 [GCLowering] strip all alias information Even non LoadInst / StoreInst (esp. vectorized loads and stores) can have this information (cherry picked from commit 40d0bc55cf74c18e5df0a0517de7ad69d14238f5) 06 February 2020, 08:37:12 UTC
533bbad [GCLowering] handle vectorized loads Vectorized loads can come in 3 variants: - scalar - masked - gather All work about the same--if we run into a Loaded pointer, we need to follow back the base pointer and track it. And otherwise they're just normal def/use statements. But we also need to fix up after an LLVM mistake and put a valid value in the pass-through slot. Co-authored-by: Jameson Nash <vtjnash@gmail.com> (cherry picked from commit 7d1c9254e7b4a8f675a0bb6eeb7c6590a2fe7252) 06 February 2020, 08:36:59 UTC
3a22e2f add some helpful type information to Base and REPLCompletions (#34596) fixes #34098 (cherry picked from commit cced577b79316ea38482d84b69e7be9666d14041) 05 February 2020, 09:27:45 UTC
eb75505 src/codegen.cpp: fix segfault on `@code_native` with eltype (#34434) (#34458) (cherry picked from commit 6a96a4dbdbce5cb8fc58639690b04329f7042610) 05 February 2020, 09:27:45 UTC
880b9b1 make package cache interit permission from source (#34573) * make package cache interit permission from source * remove temporary directries (cherry picked from commit 50754720d76699fd2863b33f8bb409235b2505f9) 05 February 2020, 09:27:44 UTC
9850ec4 Construct MulAddMul at gemm_wrapper! call sites (#34601) * Construct MulAddMul at gemm_wrapper! call sites * Add branches manually in MulAddMul constructor This is suggested by chethega in: https://github.com/JuliaLang/julia/pull/29634#discussion_r314010599 * Update stdlib/LinearAlgebra/src/generic.jl Co-Authored-By: Kristoffer Carlsson <kristoffer.carlsson@chalmers.se> Co-authored-by: Kristoffer Carlsson <kristoffer.carlsson@chalmers.se> (cherry picked from commit 2da42e0f1365d1ab4c3e9213a6b488fef1dc693d) 05 February 2020, 09:27:43 UTC
5b4c5c2 alignment: subtly change meaning of datatype_align (#34473) Rather than meaning the actual alignment of the object, this now means the preferred alignment of the object. The actual alignment of any object is the minimum of this preferred alignment and the alignment supported by the runtime allocator. This aligns us with how LLVM treats alignment, and is probably reasonably sensible anyways. Also tries to audit our existing uses of CreateLoad/CreateStore for correctness, and upgrade some to include pointer-types. fixes #32414 (cherry picked from commit 268ac245734d5a3ef4ce9f9d4876aec3fedaa6e6) 05 February 2020, 08:32:55 UTC
2a64ee2 jl_special_vector_alignment: Remove work-around for old LLVM version (<=3.8) (#34490) LLVM <= 3.8 segfaults when LLVM SIMD vectors are not powers of 2 (or a sum of 2 different powers of 2). This LLVM bug was corrected in 2017 (see <https://bugs.llvm.org/show_bug.cgi?id=27708>). This change removes this work-around, finally allowing arbitrary SIMD vector lengths in Julia. This changes Julia's ABI for SIMD types. All SIMD types are now represented as SIMD vectors in LLVM. The work-around represented some SIMD types as LLVM arrays instead to avoid the LLVM segfault. I don't think that SIMD vector lengths that are not a power of 2 were in widespread use, if at all. (cherry picked from commit e0740fe5a67177e9a9a9ee57cde9d13379f7bc69) 05 February 2020, 08:32:55 UTC
ca11925 bump Pkg to newest on release-1.4 05 February 2020, 08:32:53 UTC
42a7d5d Upgrade buildsystem to look for `python`, `python3` or `python2` (cherry picked from commit 181050b3b0675da8053c118700dbf27da73ef1f8) 31 January 2020, 07:31:53 UTC
7ba75c4 Make SuiteSparse wrapper thread safe. (#34546) Fixes #34500 (cherry picked from commit 51f1710d7eac046de2ba4cc580ceb030e37f57a7) 31 January 2020, 07:26:29 UTC
46c4328 Make testall target work with JULIA_BUILD_MODE=debug again. (#34402) (cherry picked from commit aa13637bdde6ab517054d40ec4552e3eb3f64f23) 31 January 2020, 07:26:26 UTC
c9b2c33 Always use Symbol as _group value of log records (#34509) (cherry picked from commit 54c1667b7a8bb27c0cf5993fc97cd0caf0ed30d2) 31 January 2020, 07:26:25 UTC
0adcee9 Remove URLs with /latest and use correct, relative, (#34491) documenter links for the manual, fixes #34488. (cherry picked from commit 4db419b7f689a656be6b5daf266a12ab446cbf9f) 31 January 2020, 07:26:24 UTC
449d69d Merge pull request #34561 from JuliaLang/sf/bump_openblas_version [release-1.4] Bump OpenBLAS BB tarball version and update checksums 30 January 2020, 19:56:21 UTC
7151b45 Bump OpenBLAS BB tarball version and update checksums 30 January 2020, 07:31:36 UTC
0d3f01c tests: Use `realpath()` before `==` path comparisons (#34506) (#34581) These should probably be using `samefile`, if they were real code instead of just tests. Though it's unclear why real code would be doing this. Maybe just don't put your paths in hash-tables and you'll normally be fine. (cherry picked from commit a5c422fea8ca32baac92501768713b704d3611c3) 30 January 2020, 07:00:11 UTC
b963fac fix printing of LineNumberNode in block within ref (#34504) (cherry picked from commit 0234e009abb5adac4b36bd3ab47694ba2c2bf82a) 26 January 2020, 14:06:44 UTC
5eaa8d6 fix bug in printing of block expressions in ref (#34503) (cherry picked from commit 5157d080c42b865ab70117e19a5e102a51531a16) 26 January 2020, 14:06:43 UTC
9196ba1 Update Documenter version to 0.24.4. (#34487) (cherry picked from commit 6af5f03d2ac7945b8cff3b5eee715a3d9446e42c) 26 January 2020, 14:06:42 UTC
b0c33b0 Set VERSION to 1.4.0-rc1 (#34452) 23 January 2020, 17:23:55 UTC
8852200 fix typo in #34465 (#34476) thanks at-dkarrasch 22 January 2020, 12:38:05 UTC
e4f6cd7 Merge pull request #34461 from JuliaLang/backports-release-1.4 Backports for Julia 1.4 RC 1 21 January 2020, 22:00:28 UTC
a718746 the PR was not mentioned in NEWS.md, fix (#34465) 21 January 2020, 20:54:18 UTC
adb7c7e mark `inbounds` and `loopinfo` as quoted during lowering (#34397) (cherry picked from commit a7cd97a293df20b0f05c5ad864556938d91dcdea) 21 January 2020, 12:54:08 UTC
fe8aeb8 Don't read trailing datatype layout bytes when first_ptr==-1. (cherry picked from commit 8e1ad64eb7e4cd914dbd6f477c217987209c1950) 21 January 2020, 12:50:15 UTC
f39772a Don't have jl_svec statically verify the argcount with ASAN. (cherry picked from commit 64b9da168a56d4b1171286f427af2c246ab27e74) 21 January 2020, 12:50:10 UTC
1596175 base/libc.jl: fix crash when run before epoch (#34056) (#34442) (cherry picked from commit f68753cc677676ef56dc3d9a78c415fbc8cff2b4) 21 January 2020, 12:44:43 UTC
8683bfc Clean-up the GC.gc interface. (#34401) (cherry picked from commit 270fcffeb8e1217958536ab3ef5baf24e3d621ee) 21 January 2020, 12:44:43 UTC
7ef6328 revert breaking change to GC.gc() (#34336) Removes the breaking part of b0ed147c5cf0566019ff08755af71eb5649411bc from PR #34303 (cherry picked from commit 15d693b0ec4bf620e7d594b08063ce60a6954f07) 21 January 2020, 12:44:43 UTC
1c977b0 Merge pull request #34238 from JuliaLang/backports-release-1.4 Backports for 1.4-RC1 20 January 2020, 21:51:08 UTC
139696b fix #34415, remove affinity setting code (#34433) This was removed before and added back apparently by mistake. (cherry picked from commit 592878623d376c71e5452dc2775fa2f7a4e097ca) 20 January 2020, 08:35:09 UTC
ea6f264 remove code forcing testsets to be compiled (#34405) (cherry picked from commit ed87ece188bea86893623fa25fca7005033e681f) 20 January 2020, 08:34:54 UTC
4865045 Check return value of SystemFunction036 (#34429) In both places we call it. Also tabs-to-spaces for the new code to match the formatting of the rest of the code. (cherry picked from commit f120989cbdee2cc075ad52388cda2959aeb33e9d) 20 January 2020, 08:32:49 UTC
eaec4a7 Use UUID's to generate random tempname on Windows (#33785) * Use UIUD to create random tempname on Windows * Use underscores and remove extension * Truncate to 10 chars the UUID * Generate the random name from a random byte array * Update file.jl (cherry picked from commit d759b5b3343d1b2654453b06f7e802a76c9e27e6) 20 January 2020, 08:32:45 UTC
4bd73b2 Make it easier to extend lcm/gcd/gcdx to custom types (cherry picked from commit 85eb20f9cab2100c3688029ab5123c366432b20e) 20 January 2020, 08:31:22 UTC
d3ba27d Fix array-argument gcd for non-integers (cherry picked from commit 3549cd190ecd0574c803de80e5f6d8d70cbf05e3) 20 January 2020, 08:31:14 UTC
0360daa Bump OpenBLAS BB release to include win32 threading patch (#34273) 17 January 2020, 08:10:26 UTC
0665762 Fix CI hangs on win32 After much debugging, it turns out that OpenBlas is sometimes hanging on exit due to bad assumptions in its thread management. The upstream discussion is at https://github.com/xianyi/OpenBLAS/pull/2350, but this should fix our frequent win32 CI failures in the meantime. 17 January 2020, 08:10:26 UTC
2e9ceb8 Force full collection in SharedArrays tests (#34349) Fixes the same CI failure as https://github.com/JuliaLang/julia/pull/34336, but hopefully should be immediately mergeable without objection about what the interface is. (cherry picked from commit 3ed4e943616b45ed8be4216c2e0c52adc17bb6ba) 17 January 2020, 08:10:26 UTC
381785b Change lowering of gc preserve (#34379) This fixes #34247 by changing the way gc preserve is lowered. Instead of lowering it in a macro, lower it in the frontend. This allows us to use an SSA value directly for the return token of the gc begin expression. This bypasses the slot-renaming pass of the compiler, thus preventing the compiler from trying to save and restore the token. Of course, this kind of code would generally not be legal (because it uses an SSA value outside of the regular domination relation), but since this is a julia restriction, not an LLVM restriction, we can simply exempt gc_begin tokens from this particular validation. This works fine at the LLVM level also, because it doesn't have this particular restriction. It also doesn't have the same correctness problems as doing the same for non-token values, as the tokens get lowered away by the try/catch lowering before reaching the LLVM backend. (cherry picked from commit 07a16d695feeba66db2a44c640675e7974ae870b) 17 January 2020, 08:10:26 UTC
back to top