Skip to content
Snippets Groups Projects
  • Michael Pratt's avatar
    508e7619
    cmd/compile: bail PGO method lookup on interface types · 508e7619
    Michael Pratt authored
    Interface types don't have concrete method implementations, so it does
    not make sense to attempt a lookup.
    
    An interface method would not normally appear in a PGO profile as it has
    no symbol in the final binary. However it can appear if the method was
    concrete when the profile was collected and it has since been refactored
    to an interface method in the code being compiled.
    
    The guards here (OTYPE, !Alias, !IsInterface) now match
    noder.linker.relocObj, which does a similar iteration of all methods.
    
    Fixes #67016.
    
    Change-Id: I858c58929c890ac0b2019fbd7c99f683ab63f8bb
    Reviewed-on: https://go-review.googlesource.com/c/go/+/581436
    
    
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: default avatarCherry Mui <cherryyz@google.com>
    508e7619
    History
    cmd/compile: bail PGO method lookup on interface types
    Michael Pratt authored
    Interface types don't have concrete method implementations, so it does
    not make sense to attempt a lookup.
    
    An interface method would not normally appear in a PGO profile as it has
    no symbol in the final binary. However it can appear if the method was
    concrete when the profile was collected and it has since been refactored
    to an interface method in the code being compiled.
    
    The guards here (OTYPE, !Alias, !IsInterface) now match
    noder.linker.relocObj, which does a similar iteration of all methods.
    
    Fixes #67016.
    
    Change-Id: I858c58929c890ac0b2019fbd7c99f683ab63f8bb
    Reviewed-on: https://go-review.googlesource.com/c/go/+/581436
    
    
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: default avatarCherry Mui <cherryyz@google.com>
Code owners
Assign users and groups as approvers for specific file changes. Learn more.