Revision c3861f5c7371fea2fc5d20404a7f77c927bbd61b authored by Shuhei Kadowaki on 14 August 2021, 12:49:21 UTC, committed by Shuhei Kadowaki on 23 August 2021, 15:09:13 UTC
Built on top of #41882, this PR sorts out the constant-prop' interface yet more, particularly generalizes `force_const_prop` to `const_prop_config` so that it can turn on and off each heuristic. The main motivation here is, in #41882, we want to force const-prop' on `setproperty` even when its return type is already `Const` for the sake of succeeding inlining, by skipping all the `const_prop_xxx_heuristic` checks. But I still found we want to apply `const_prop_entry_heuristic` to `getproperty`, because if we already know very accurate result for a `getproperty` call, usually there is really no motivation for constant-prop', e.g.: ```julia struct FZero end Base.getproperty(::FZero, ::Symbol) = 0.0 getproperty(FZero(), :val) # const-prop' doesn't need to happen here ``` Now `force_const_prop(...) -> force::Bool` is refactored to `const_prop_config(...) -> config::UInt8`, which can turn on and off each heuristic based on the value of `config`. I also included another refactoring that inlines `const_prop_rettype_heuristic` into `const_prop_argument_heuristic`, because they really seem tightly coupled.
1 parent e1e4986
File | Mode | Size |
---|---|---|
compiler | ||
docs | ||
ryu | ||
special | ||
strings | ||
.gitignore | -rw-r--r-- | 154 bytes |
Base.jl | -rw-r--r-- | 14.5 KB |
Enums.jl | -rw-r--r-- | 6.9 KB |
Makefile | -rw-r--r-- | 10.8 KB |
abstractarray.jl | -rw-r--r-- | 97.3 KB |
abstractarraymath.jl | -rw-r--r-- | 12.6 KB |
abstractdict.jl | -rw-r--r-- | 15.2 KB |
abstractset.jl | -rw-r--r-- | 9.9 KB |
accumulate.jl | -rw-r--r-- | 12.0 KB |
array.jl | -rw-r--r-- | 62.3 KB |
arraymath.jl | -rw-r--r-- | 6.3 KB |
arrayshow.jl | -rw-r--r-- | 23.1 KB |
asyncevent.jl | -rw-r--r-- | 8.6 KB |
asyncmap.jl | -rw-r--r-- | 13.6 KB |
atomics.jl | -rw-r--r-- | 12.4 KB |
baseext.jl | -rw-r--r-- | 2.6 KB |
binaryplatforms.jl | -rw-r--r-- | 36.8 KB |
bitarray.jl | -rw-r--r-- | 48.7 KB |
bitset.jl | -rw-r--r-- | 12.9 KB |
bool.jl | -rw-r--r-- | 3.6 KB |
boot.jl | -rw-r--r-- | 28.1 KB |
broadcast.jl | -rw-r--r-- | 59.8 KB |
c.jl | -rw-r--r-- | 22.7 KB |
cartesian.jl | -rw-r--r-- | 11.5 KB |
channels.jl | -rw-r--r-- | 13.0 KB |
char.jl | -rw-r--r-- | 12.2 KB |
checked.jl | -rw-r--r-- | 11.8 KB |
client.jl | -rw-r--r-- | 17.6 KB |
cmd.jl | -rw-r--r-- | 15.3 KB |
combinatorics.jl | -rw-r--r-- | 8.4 KB |
complex.jl | -rw-r--r-- | 29.3 KB |
condition.jl | -rw-r--r-- | 6.4 KB |
coreio.jl | -rw-r--r-- | 1.0 KB |
cpuid.jl | -rw-r--r-- | 4.8 KB |
ctypes.jl | -rw-r--r-- | 1.7 KB |
deepcopy.jl | -rw-r--r-- | 4.1 KB |
deprecated.jl | -rw-r--r-- | 10.2 KB |
dict.jl | -rw-r--r-- | 21.0 KB |
div.jl | -rw-r--r-- | 9.8 KB |
download.jl | -rw-r--r-- | 989 bytes |
env.jl | -rw-r--r-- | 6.6 KB |
error.jl | -rw-r--r-- | 10.3 KB |
errorshow.jl | -rw-r--r-- | 32.8 KB |
essentials.jl | -rw-r--r-- | 25.2 KB |
experimental.jl | -rw-r--r-- | 9.3 KB |
exports.jl | -rw-r--r-- | 13.4 KB |
expr.jl | -rw-r--r-- | 19.9 KB |
fastmath.jl | -rw-r--r-- | 13.0 KB |
file.jl | -rw-r--r-- | 35.4 KB |
filesystem.jl | -rw-r--r-- | 7.7 KB |
float.jl | -rw-r--r-- | 30.7 KB |
floatfuncs.jl | -rw-r--r-- | 12.4 KB |
gcutils.jl | -rw-r--r-- | 6.0 KB |
generator.jl | -rw-r--r-- | 3.9 KB |
gmp.jl | -rw-r--r-- | 33.3 KB |
hashing.jl | -rw-r--r-- | 3.1 KB |
iddict.jl | -rw-r--r-- | 5.7 KB |
idset.jl | -rw-r--r-- | 1.1 KB |
indices.jl | -rw-r--r-- | 18.5 KB |
initdefs.jl | -rw-r--r-- | 13.2 KB |
int.jl | -rw-r--r-- | 28.1 KB |
intfuncs.jl | -rw-r--r-- | 27.2 KB |
io.jl | -rw-r--r-- | 34.5 KB |
iobuffer.jl | -rw-r--r-- | 16.8 KB |
iostream.jl | -rw-r--r-- | 17.1 KB |
irrationals.jl | -rw-r--r-- | 7.6 KB |
iterators.jl | -rw-r--r-- | 39.5 KB |
libc.jl | -rw-r--r-- | 14.7 KB |
libdl.jl | -rw-r--r-- | 9.5 KB |
libuv.jl | -rw-r--r-- | 4.5 KB |
linked_list.jl | -rw-r--r-- | 4.2 KB |
loading.jl | -rw-r--r-- | 72.8 KB |
lock.jl | -rw-r--r-- | 8.9 KB |
locks-mt.jl | -rw-r--r-- | 3.1 KB |
logging.jl | -rw-r--r-- | 22.2 KB |
math.jl | -rw-r--r-- | 32.1 KB |
mathconstants.jl | -rw-r--r-- | 2.3 KB |
meta.jl | -rw-r--r-- | 15.4 KB |
methodshow.jl | -rw-r--r-- | 13.4 KB |
missing.jl | -rw-r--r-- | 13.6 KB |
mpfr.jl | -rw-r--r-- | 39.7 KB |
multidimensional.jl | -rw-r--r-- | 71.1 KB |
multimedia.jl | -rw-r--r-- | 15.5 KB |
multinverses.jl | -rw-r--r-- | 5.6 KB |
namedtuple.jl | -rw-r--r-- | 13.2 KB |
ntuple.jl | -rw-r--r-- | 2.7 KB |
number.jl | -rw-r--r-- | 7.5 KB |
opaque_closure.jl | -rw-r--r-- | 507 bytes |
operators.jl | -rw-r--r-- | 34.5 KB |
options.jl | -rw-r--r-- | 2.3 KB |
ordering.jl | -rw-r--r-- | 5.0 KB |
osutils.jl | -rw-r--r-- | 1.2 KB |
pair.jl | -rw-r--r-- | 1.7 KB |
parse.jl | -rw-r--r-- | 13.9 KB |
path.jl | -rw-r--r-- | 16.8 KB |
pcre.jl | -rw-r--r-- | 8.4 KB |
permuteddimsarray.jl | -rw-r--r-- | 8.6 KB |
pkgid.jl | -rw-r--r-- | 1.2 KB |
pointer.jl | -rw-r--r-- | 6.5 KB |
process.jl | -rw-r--r-- | 20.7 KB |
promotion.jl | -rw-r--r-- | 13.4 KB |
range.jl | -rw-r--r-- | 51.2 KB |
rational.jl | -rw-r--r-- | 16.7 KB |
reduce.jl | -rw-r--r-- | 33.4 KB |
reducedim.jl | -rw-r--r-- | 29.0 KB |
reflection.jl | -rw-r--r-- | 53.3 KB |
refpointer.jl | -rw-r--r-- | 7.4 KB |
refvalue.jl | -rw-r--r-- | 1.7 KB |
regex.jl | -rw-r--r-- | 26.2 KB |
reinterpretarray.jl | -rw-r--r-- | 27.8 KB |
reshapedarray.jl | -rw-r--r-- | 11.5 KB |
rounding.jl | -rw-r--r-- | 7.1 KB |
secretbuffer.jl | -rw-r--r-- | 5.5 KB |
set.jl | -rw-r--r-- | 20.1 KB |
shell.jl | -rw-r--r-- | 16.6 KB |
show.jl | -rw-r--r-- | 102.4 KB |
simdloop.jl | -rw-r--r-- | 5.4 KB |
some.jl | -rw-r--r-- | 3.4 KB |
sort.jl | -rw-r--r-- | 33.5 KB |
stacktraces.jl | -rw-r--r-- | 9.8 KB |
stat.jl | -rw-r--r-- | 12.7 KB |
stream.jl | -rw-r--r-- | 46.4 KB |
subarray.jl | -rw-r--r-- | 19.4 KB |
summarysize.jl | -rw-r--r-- | 6.1 KB |
sysimg.jl | -rw-r--r-- | 4.0 KB |
sysinfo.jl | -rw-r--r-- | 15.5 KB |
task.jl | -rw-r--r-- | 22.8 KB |
threadcall.jl | -rw-r--r-- | 4.0 KB |
threadingconstructs.jl | -rw-r--r-- | 6.3 KB |
threads.jl | -rw-r--r-- | 850 bytes |
threads_overloads.jl | -rw-r--r-- | 2.3 KB |
timing.jl | -rw-r--r-- | 12.1 KB |
toml_parser.jl | -rw-r--r-- | 35.9 KB |
traits.jl | -rw-r--r-- | 2.4 KB |
ttyhascolor.jl | -rw-r--r-- | 967 bytes |
tuple.jl | -rw-r--r-- | 15.8 KB |
twiceprecision.jl | -rw-r--r-- | 28.6 KB |
util.jl | -rw-r--r-- | 23.2 KB |
uuid.jl | -rw-r--r-- | 3.2 KB |
version.jl | -rw-r--r-- | 10.8 KB |
version_git.sh | -rw-r--r-- | 2.9 KB |
views.jl | -rw-r--r-- | 8.3 KB |
weakkeydict.jl | -rw-r--r-- | 6.0 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...