• Josh Bleecher Snyder's avatar
    [dev.ssa] cmd/compile: make failed nil checks panic · 463858e6
    Josh Bleecher Snyder authored
    Introduce pseudo-ops PanicMem and LoweredPanicMem.
    PanicMem could be rewritten directly into MOVL
    during lowering, but then we couldn't log nil checks.
    
    With this change, runnable nil check tests pass:
    
    GOSSAPKG=main go run run.go -- nil*.go
    
    Compiler output nil check tests fail:
    
    GOSSAPKG=p go run run.go -- nil*.go
    
    This is due to several factors:
    
    * SSA has improved elimination of unnecessary nil checks.
    * SSA is missing elimination of implicit nil checks.
    * SSA is missing extra logging about why nil checks were removed.
    
    I'm not sure how best to resolve these failures,
    particularly in a world in which the two backends
    will live side by side for some time.
    For now, punt on the problem.
    
    Change-Id: Ib2ca6824551671f92e0e1800b036f5ca0905e2a3
    Reviewed-on: https://go-review.googlesource.com/13474Reviewed-by: 's avatarKeith Randall <khr@golang.org>
    463858e6
Name
Last commit
Last update
..
internal Loading commit data...
doc.go Loading commit data...
main.go Loading commit data...