• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

JuliaLang / julia / #37632
77%

Build:
DEFAULT BRANCH: master
Ran 26 Sep 2023 01:37PM UTC
Jobs 1
Files 347
Run time 18s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

26 Sep 2023 06:44AM UTC coverage: 86.999% (-0.9%) from 87.914%
#37632

push

local

web-flow
inference: make `throw` block deoptimization concrete-eval friendly (#49235)

The deoptimization can sometimes destroy the effects analysis and
disable [semi-]concrete evaluation that is otherwise possible. This is
because the deoptimization was designed with the type domain
profitability in mind (#35982), and hasn't been adequately considering
the effects domain.

This commit makes the deoptimization aware of the effects domain more
and enables the `throw` block deoptimization only when the effects
already known to be ineligible for concrete-evaluation.

In our current effect system, `ALWAYS_FALSE`/`false` means that the
effect can not be refined to `ALWAYS_TRUE`/`true` anymore (unless given
user annotation later). Therefore we can enable the `throw` block
deoptimization without hindering the chance of concrete-evaluation when
any of the following conditions are met:
- `effects.consistent === ALWAYS_FALSE`
- `effects.effect_free === ALWAYS_FALSE`
- `effects.terminates === false`
- `effects.nonoverlayed === false`

Here are some numbers:

| Metric | master | this commit | #35982 reverted (set
`unoptimize_throw_blocks=false`) |

|-------------------------|-----------|-------------|--------------------------------------------|
| Base (seconds) | 15.579300 | 15.206645 | 15.296319 |
| Stdlibs (seconds) | 17.919013 | 17.667094 | 17.738128 |
| Total (seconds) | 33.499279 | 32.874737 | 33.035448 |
| Precompilation (seconds) | 49.967516 | 49.421121 | 49.999998 |
| First time `plot(rand(10,3))` [^1] | `2.476678 seconds (11.74 M
allocations)` | `2.430355 seconds (11.77 M allocations)` | `2.514874
seconds (11.64 M allocations)` |
| First time `solve(prob, QNDF())(5.0)` [^2] | `4.469492 seconds (15.32
M allocations)` | `4.499217 seconds (15.41 M allocations)` | `4.470772
seconds (15.38 M allocations)` |

[^1]: With disabling precompilation of Plots.jl.
[^2]: With disabling precompilation of OrdinaryDiffEq.

These numbers ma... (continued)

7 of 7 new or added lines in 1 file covered. (100.0%)

73407 of 84377 relevant lines covered (87.0%)

11275130.05 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
1
89.38
-0.31% base/boot.jl
1
90.0
-5.45% base/docs/bindings.jl
1
89.58
-1.14% base/error.jl
1
84.7
-0.55% base/indices.jl
1
55.48
-0.33% base/int.jl
1
68.33
-1.67% base/refpointer.jl
1
91.85
-0.43% stdlib/Random/src/generation.jl
1
88.43
-0.14% stdlib/REPL/src/REPLCompletions.jl
1
94.89
-0.11% stdlib/Test/src/Test.jl
2
91.67
-1.85% base/div.jl
2
88.14
-0.35% base/gmp.jl
2
93.75
-0.42% base/math.jl
2
48.46
-4.09% base/timing.jl
3
67.57
-1.4% base/c.jl
3
79.12
-3.3% base/experimental.jl
3
82.14
-5.36% base/hashing.jl
3
91.01
-0.36% base/multidimensional.jl
3
91.79
-0.43% stdlib/LinearAlgebra/src/matmul.jl
4
75.0
-1.28% base/client.jl
4
86.39
-0.2% base/compiler/abstractinterpretation.jl
4
91.13
-0.23% stdlib/LinearAlgebra/src/triangular.jl
7
92.17
-0.51% base/abstractarray.jl
7
85.79
-3.55% base/reshapedarray.jl
7
44.87
-1.55% base/util.jl
8
21.43
-57.14% base/docs/core.jl
8
64.0
-32.0% base/docs/utils.jl
8
59.26
-29.63% base/ryu/Ryu.jl
9
87.88
-0.45% base/namedtuple.jl
9
77.5
-22.5% base/some.jl
10
87.34
-2.07% base/float.jl
10
90.18
-2.23% base/io.jl
10
75.84
-6.71% base/ryu/fixed.jl
11
91.53
-5.82% base/ryu/exp.jl
12
82.73
-2.88% base/task.jl
14
79.77
-0.51% base/loading.jl
14
74.39
-17.07% base/views.jl
17
91.67
-2.89% stdlib/LinearAlgebra/src/diagonal.jl
26
85.05
-8.14% base/expr.jl
28
73.96
-8.28% base/ryu/shortest.jl
30
77.69
-11.54% base/subarray.jl
39
45.0
-28.61% base/meta.jl
49
87.03
-0.0% base/reflection.jl
50
56.43
-21.3% base/docs/Docs.jl
60
80.39
-9.11% stdlib/REPL/src/docview.jl
68
17.83
-52.71% base/terminfo.jl
152
65.85
-24.76% base/errorshow.jl
164
87.72
-0.11% base/show.jl
186
69.62
-27.98% base/sort.jl
Jobs
ID Job ID Ran Files Coverage
1 #37632.1 26 Sep 2023 01:37PM UTC 347
87.0
Source Files on build #37632
  • Tree
  • List 347
  • Changed 287
  • Source Changed 0
  • Coverage Changed 57
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 28d9f730 on github
  • Prev Build on master
  • Next Build on master
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc