Skip to content

IR verification error caused by exct modeling changes #52846

@maleadt

Description

@maleadt

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

Bisected to #51754, cc @Keno. Possibly related to #52808?

Metadata

Metadata

Assignees

No one assigned

    Labels

    compiler:optimizerOptimization passes (mostly in base/compiler/ssair/)regressionRegression in behavior compared to a previous version

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions