-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
Closed
Labels
compiler:optimizerOptimization passes (mostly in base/compiler/ssair/)Optimization passes (mostly in base/compiler/ssair/)regressionRegression in behavior compared to a previous versionRegression in behavior compared to a previous version
Milestone
Description
MWE, reduced from the subtype tests:
$ julia -g2
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.11.0-DEV.1246 (2024-01-10)
_/ |\__'_|_|_|\__'_| | Commit 124ce943ef7* (0 days old master)
|__/ |
julia> using Test
julia> issub(x,y) = x <: y
julia> function doit()
@test issub(Array, Vector where T)
end
julia> Base.code_ircode(doit, ())
Block 8 ends in return or unreachable, but has successors
1 ── nothing::Nothing
2 ── nothing::Nothing
3 ── nothing::Nothing
4 ── nothing::Nothing
2 5 ── %5 = enter #8
6 ── $(Expr(:leave, :(%5)))
7 ── goto #11
8 ┄─ unreachable
9 ── unreachable
10 ─ nothing::Nothing
11 ┄ %11 = φ (#7 => $(QuoteNode(Test.Returned(false, nothing, :(#= REPL[3]:2 =#)))))::Union{Test.Returned, Test.Threw}
│ %12 = Test.do_test::Core.Const(Test.do_test)
│ %13 = (isa)(%11, Test.Returned)::Bool
└─── goto #13 if not %13
12 ─ %15 = π (%11, Test.Returned)
│ %16 = invoke %12(%15::Test.ExecutionResult, $(QuoteNode(:(issub(Array, Vector where T))))::Any)::Union{Test.Error, Test.Fail, Test.Pass}
└─── goto #15
13 ─ nothing::Nothing
14 ─ %19 = π (%11, Test.Threw)
│ %20 = invoke %12(%19::Test.ExecutionResult, $(QuoteNode(:(issub(Array, Vector where T))))::Any)::Union{Test.Error, Test.Fail, Test.Pass}
└─── goto #15
15 ┄ %22 = φ (#12 => %16, #14 => %20)::Union{Test.Error, Test.Fail, Test.Pass}
└─── return %22
Metadata
Metadata
Assignees
Labels
compiler:optimizerOptimization passes (mostly in base/compiler/ssair/)Optimization passes (mostly in base/compiler/ssair/)regressionRegression in behavior compared to a previous versionRegression in behavior compared to a previous version