Skip to content

Regression in 1.11.1 adding conditional jumps #56326

Closed as not planned
Closed as not planned
@PallHaraldsson

Description

@PallHaraldsson

See @code_native println() [EDIT: What I meant to write instead of here originally "See @code_lowered println()"]

It's not hugely worrying (there), but I'm thinking if it might be a more wide-spread problem. This is with and without my latest merged PR for print[ln].

It's not a problem in 1.11-beta1 but is in 1.11.0-beta2 and later (in anyone wants to bisect). And -O3 does not help. #53750 is the claimed cause i.e. since beta1 #54112, see comment and closing below).

See:

julia> @code_lowered println()
CodeInfo(
1 ─ %1 = Base.println
│   %2 = Base.stdout
│   %3 = Core.tuple(%2)
│   %4 = Core._apply_iterate(Base.iterate, %1, %3, xs)
└──      return %4
)

might it relate to (slightly different, equivalent?!):

julia> @code_lowered println()
CodeInfo(
1 ─ %1 = Base.println
│   %2 = Core.tuple(Base.stdout)
│   %3 = Core._apply_iterate(Base.iterate, %1, %2, xs)
└──      return %3

How would I figure out the cause (other than bisecting (not-to speed on that)?

My guess is a check for null pointers (at least for Strings, but they should never be NULL, while other pointers could be). Could it relate to new Memory type, and then all Vector[-like] and arrays?

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs more infoClarification or a reproducible example is required

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions