https://github.com/JuliaLang/julia
Revision 4a2830a548af3398c5b7088cd51deac92f78e35b authored by Keno Fischer on 20 July 2020, 19:57:36 UTC, committed by Jeff Bezanson on 22 July 2020, 03:53:00 UTC
The `Core.sizeof` function can take either a value or a type,
which can be a bit confusing in the tfunc, because the tfunc
operates on the types of the values passed to the builtin.
In particular, we were incorrectly returning Const(16) (on 64bit)
for sizeof_tfunc(UnionAll), because it was treating it the asme
as `sizeof_tfunc(Const(UnionAll))`. Try to clean that up as well
as fixing a similar confusion in the nothrow version of this
function. Lastly, we had a similar fast path in codegen, which
would try to inline the actual size for a constant datatype argument.
For codegen, just rm that whole code path, since it should have no
more information than inference and figuring it out in inference
exposes strictly more optimization opportunities.

Fixes #36710

(cherry picked from commit 004cb25d66199aa0a2b7a985ecb86e773118ef82)
1 parent 2567aaf
History
Tip revision: 4a2830a548af3398c5b7088cd51deac92f78e35b authored by Keno Fischer on 20 July 2020, 19:57:36 UTC
Fix correctness issues in sizeof tfunc (#36727)
Tip revision: 4a2830a
File Mode Size
.devcontainer
base
contrib
deps
doc
etc
src
stdlib
test
ui
.appveyor.yml -rw-r--r-- 2.1 KB
.gitattributes -rw-r--r-- 65 bytes
.gitignore -rw-r--r-- 273 bytes
.mailmap -rw-r--r-- 11.0 KB
.travis.yml -rw-r--r-- 6.1 KB
CITATION.bib -rw-r--r-- 2.6 KB
CONTRIBUTING.md -rw-r--r-- 19.9 KB
HISTORY.md -rw-r--r-- 275.6 KB
LICENSE.md -rw-r--r-- 5.0 KB
Make.inc -rw-r--r-- 44.1 KB
Makefile -rw-r--r-- 26.9 KB
NEWS.md -rw-r--r-- 16.4 KB
README.md -rw-r--r-- 6.3 KB
VERSION -rw-r--r-- 10 bytes
sysimage.mk -rw-r--r-- 3.9 KB

README.md

back to top