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

JuliaLang / julia / #37611
77%

Build:
DEFAULT BRANCH: master
Ran 05 Sep 2023 01:20PM UTC
Jobs 1
Files 348
Run time 17s
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

05 Sep 2023 05:43AM UTC coverage: 86.055% (-0.4%) from 86.433%
#37611

push

local

web-flow
optimizer: Do not run if we know the function is ConstABI eligible (#51143)

If we can determine that a function is sufficiently pure and returns a
constant, we have special ABI that lets us throw away the code for it
and just return the constant. However, we were still going through all
the steps of actually computing the code, including running the
optimizer on it, compressing it in preparation for caching, etc. We can
just stop doing that and bypass the optimizer entirely.

The actual change to do this is pretty tiny, but there's some unexpected
fallout which this needs to cleanup:
1. Various tests expect code_* queries of things inferred to ConstABI to
still return reasonable code. Fix this by manually emitting a ReturnNode
at the end of inference if the caller is a reflection function.
2. This kinda wreaks havoc on the EscapeAnalysis tests, which work by
using a side-effect of the optimizer, but a lot of the functions are
ConstABI eligible, so the optimizer doesn't run any more. Fortunately,
I'm in the middle of looking at overhauling EscapeAnalysis, so I'll have
some chance to figure out how to change the test system to actually do
this properly, rather than exfiltrating side effects. That said, since
EscapeAnalysis is not in the default pipeline, I don't think we should
hold the perf improvement until that is done.

Benchmarked to be about 10% faster locally, but we'll see what
nanosoldier thinks.

---------

Co-authored-by: Shuhei Kadowaki <40514306+aviatesk@users.noreply.github.com>

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

73307 of 85186 relevant lines covered (86.06%)

12747443.03 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
1
88.68
-0.35% base/boot.jl
1
90.0
-5.45% base/docs/bindings.jl
1
89.58
-1.14% base/error.jl
1
84.62
-0.55% base/indices.jl
1
66.67
-1.67% base/refpointer.jl
1
82.38
-0.13% base/stream.jl
1
95.31
-0.52% stdlib/Dates/src/parse.jl
1
92.65
0.43% stdlib/LinearAlgebra/src/matmul.jl
1
87.57
-0.14% stdlib/REPL/src/REPLCompletions.jl
2
82.71
0.07% base/compiler/typeinfer.jl
2
91.67
-1.85% base/div.jl
2
88.14
-0.35% base/gmp.jl
2
55.15
-0.66% base/int.jl
2
48.46
-4.09% base/timing.jl
2
70.75
-1.36% stdlib/LinearAlgebra/src/LinearAlgebra.jl
2
94.24
-0.43% stdlib/LinearAlgebra/src/tridiag.jl
3
67.18
-1.4% base/c.jl
3
77.53
-3.37% base/experimental.jl
3
90.65
-0.36% base/multidimensional.jl
4
73.53
-0.98% base/client.jl
4
82.42
-0.55% base/compiler/optimize.jl
5
96.64
-2.1% base/bitset.jl
5
86.63
-0.26% base/compiler/abstractinterpretation.jl
5
78.66
-0.99% base/compiler/inferencestate.jl
5
83.81
-0.35% base/compiler/ssair/passes.jl
5
87.37
-2.11% stdlib/LinearAlgebra/src/factorization.jl
6
86.38
-0.75% base/reflection.jl
7
92.17
-0.51% base/abstractarray.jl
7
85.79
-3.55% base/reshapedarray.jl
7
44.66
-1.58% base/util.jl
7
95.81
-4.19% stdlib/LinearAlgebra/src/special.jl
7
87.9
-5.65% stdlib/TOML/src/print.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
8
38.46
-61.54% stdlib/TOML/src/TOML.jl
9
84.38
-3.13% base/compiler/ssair/irinterp.jl
9
89.29
-2.01% base/io.jl
10
87.34
-2.07% base/float.jl
10
79.78
-0.56% base/loading.jl
10
75.84
-6.71% base/ryu/fixed.jl
10
68.4
-4.0% stdlib/LinearAlgebra/src/givens.jl
11
91.35
-5.95% base/ryu/exp.jl
12
82.73
-2.88% base/task.jl
14
74.39
-17.07% base/views.jl
17
87.86
-0.89% base/show.jl
18
80.81
-9.09% base/stacktraces.jl
26
85.05
-8.14% base/expr.jl
28
73.81
-7.41% base/ryu/shortest.jl
30
76.54
-11.54% base/subarray.jl
39
45.0
-28.61% base/meta.jl
56
53.94
-23.79% base/docs/Docs.jl
63
18.55
-50.81% base/terminfo.jl
66
78.53
-12.45% stdlib/REPL/src/docview.jl
68
72.88
-11.45% base/toml_parser.jl
90
72.0
-22.5% stdlib/LinearAlgebra/src/lu.jl
151
64.55
-24.61% base/errorshow.jl
191
68.87
-28.73% base/sort.jl
238
63.94
-22.12% base/compiler/ssair/EscapeAnalysis/EscapeAnalysis.jl
Jobs
ID Job ID Ran Files Coverage
1 #37611.1 05 Sep 2023 01:20PM UTC 348
86.06
Source Files on build #37611
  • Tree
  • List 348
  • Changed 296
  • Source Changed 0
  • Coverage Changed 83
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 1829ceea 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