• Cherry Zhang's avatar
    cmd/compile: redo writebarrier pass · c4ef597c
    Cherry Zhang authored
    SSA's writebarrier pass requires WB store ops are always at the
    end of a block. If we move write barrier insertion into SSA and
    emits normal Store ops when building SSA, this requirement becomes
    impractical -- it will create too many blocks for all the Store
    ops.
    
    Redo SSA's writebarrier pass, explicitly order values in store
    order, so it no longer needs this requirement.
    
    Updates #17583.
    Fixes #19067.
    
    Change-Id: I66e817e526affb7e13517d4245905300a90b7170
    Reviewed-on: https://go-review.googlesource.com/36834
    Run-TryBot: Cherry Zhang <cherryyz@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarDavid Chase <drchase@google.com>
    c4ef597c
nilcheck.go 6.92 KB