• Todd Neal's avatar
    [dev.ssa] cmd/compile: reuse sparse sets across compiler passes · f962f330
    Todd Neal authored
    Cache sparse sets in the function so they can be reused by subsequent
    compiler passes.
    
    benchmark                        old ns/op     new ns/op     delta
    BenchmarkDSEPass-8               206945        180022        -13.01%
    BenchmarkDSEPassBlock-8          5286103       2614054       -50.55%
    BenchmarkCSEPass-8               1790277       1790655       +0.02%
    BenchmarkCSEPassBlock-8          18083588      18112771      +0.16%
    BenchmarkDeadcodePass-8          59837         41375         -30.85%
    BenchmarkDeadcodePassBlock-8     1651575       511169        -69.05%
    BenchmarkMultiPass-8             531529        427506        -19.57%
    BenchmarkMultiPassBlock-8        7033496       4487814       -36.19%
    
    benchmark                        old allocs     new allocs     delta
    BenchmarkDSEPass-8               11             4              -63.64%
    BenchmarkDSEPassBlock-8          599            120            -79.97%
    BenchmarkCSEPass-8               18             18             +0.00%
    BenchmarkCSEPassBlock-8          2700           2700           +0.00%
    BenchmarkDeadcodePass-8          4              3              -25.00%
    BenchmarkDeadcodePassBlock-8     30             9              -70.00%
    BenchmarkMultiPass-8             24             20             -16.67%
    BenchmarkMultiPassBlock-8        1800           1000           -44.44%
    
    benchmark                        old bytes     new bytes     delta
    BenchmarkDSEPass-8               221367        142           -99.94%
    BenchmarkDSEPassBlock-8          3695207       3846          -99.90%
    BenchmarkCSEPass-8               303328        303328        +0.00%
    BenchmarkCSEPassBlock-8          5006400       5006400       +0.00%
    BenchmarkDeadcodePass-8          84232         10506         -87.53%
    BenchmarkDeadcodePassBlock-8     1274940       163680        -87.16%
    BenchmarkMultiPass-8             608674        313834        -48.44%
    BenchmarkMultiPassBlock-8        9906001       5003450       -49.49%
    
    Change-Id: Ib1fa58c7f494b374d1a4bb9cffbc2c48377b59d3
    Reviewed-on: https://go-review.googlesource.com/19100Reviewed-by: 's avatarDavid Chase <drchase@google.com>
    Reviewed-by: 's avatarKeith Randall <khr@golang.org>
    f962f330
sparseset.go 1.5 KB