Skip to content

cmd/compile: panic in PGO-optimized compiler after CL 539699 #64209

@prattmic

Description

@prattmic
#!watchflakes
post <- pkg == "golang.org/x/benchmarks/sweet/cmd/sweet" && test == "TestSweetEndToEnd" && `internal compiler error`

Splitting out of #56958.

When built with the appropriate profile (I have one, but GitHub won't let me attach it), a PGO-optimized compiler panics. e.g.,

$ ../bin/go install -pgo bad.pgo cmd/compile
$ ../bin/go install -pgo bad.pgo cmd/compile
# internal/coverage/rtcov
<autogenerated>:1: internal compiler error: '.eq.internal/coverage/rtcov.CovMetaBlob': panic during prove while compiling .eq.internal/coverage/rtcov.CovMetaBlob:

runtime error: invalid memory address or nil pointer dereference

goroutine 6 [running]:
cmd/compile/internal/ssa.Compile.func1()
        ./cmd/compile/internal/ssa/compile.go:49 +0x6c
panic({0xd73cc0?, 0x1474600?})
        ./runtime/panic.go:770 +0x132
cmd/compile/internal/ssa.(*factsTable).update(0xc0020afb28, 0xc000520220, 0x0, 0xc0004f0c60, 0x8, 0x5)
        ./cmd/compile/internal/ssa/prove.go:276 +0x5cb
cmd/compile/internal/ssa.addRestrictions(0xc000520220, 0xc0020afb28, 0x8, 0x0, 0xc0004f0c60, 0x5)
        ./cmd/compile/internal/ssa/prove.go:1356 +0x6b
cmd/compile/internal/ssa.addBranchRestrictions(...)
        ./cmd/compile/internal/ssa/prove.go:1270
cmd/compile/internal/ssa.prove(0xc002086b60)
        ./cmd/compile/internal/ssa/prove.go:1154 +0x1f08
cmd/compile/internal/ssa.Compile(0xc002086b60)
        ./cmd/compile/internal/ssa/compile.go:97 +0xa44
cmd/compile/internal/ssagen.buildssa(0xc0000226c0, 0x3)
        ./cmd/compile/internal/ssagen/ssa.go:575 +0x2c16
cmd/compile/internal/ssagen.Compile(0xc0000226c0, 0x3)
        ./cmd/compile/internal/ssagen/pgen.go:216 +0x3e
cmd/compile/internal/gc.compileFunctions.func5.1(0x0?)
        ./cmd/compile/internal/gc/compile.go:182 +0x34
cmd/compile/internal/gc.compileFunctions.func3.1()
        ./cmd/compile/internal/gc/compile.go:164 +0x30
created by cmd/compile/internal/gc.compileFunctions.func3 in goroutine 5
        ./cmd/compile/internal/gc/compile.go:163 +0x247

<more panics>

Presumably the first build is generating bad code, which is causing crashes in the second build.

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions