• Cherry Zhang's avatar
    [dev.ssa] cmd/compile: fix scheduling of tuple ops · 225ef76c
    Cherry Zhang authored
    We want tuple-reading ops immediately follow tuple-generating op, so
    that tuple values will not be spilled/copied.
    
    The mechanism introduced in the previous CL cannot really avoid tuples
    interleaving. In this CL we always emit tuple and their selectors together.
    Maybe remove the tuple scores if it does not help on performance (todo).
    
    Also let tighten not move tuple-reading ops across blocks.
    
    In the previous CL a special case of regenerating flags with tuple-reading
    pseudo-op is added, but it did not cover end-of-block case. This is fixed
    in this CL and the condition is generalized.
    
    Progress on SSA backend for ARM. Still not complete.
    
    Updates #15365.
    
    Change-Id: I8980b34e7a64eb98153540e9e19a3782e20406ff
    Reviewed-on: https://go-review.googlesource.com/23792Reviewed-by: default avatarDavid Chase <drchase@google.com>
    225ef76c
flagalloc.go 4.24 KB