• Cherry Zhang's avatar
    [dev.ssa] cmd/compile: use shifted and indexed ops in SSA for ARM · 8cc3f4a1
    Cherry Zhang authored
    This CL implements the following optimizations for ARM:
    - use shifted ops (e.g. ADD R1<<2, R2) and indexed load/stores
    - break up shift ops. Shifts used to be one SSA op that generates
      multiple instructions. We break them up to multiple ops, which
      allows constant folding and CSE for comparisons. Conditional moves
      are introduced for this.
    - simplify zero/sign-extension ops.
    
    Updates #15365.
    
    Change-Id: I55e262a776a7ef2a1505d75e04d1208913c35d39
    Reviewed-on: https://go-review.googlesource.com/24512
    Run-TryBot: Cherry Zhang <cherryyz@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarDavid Chase <drchase@google.com>
    8cc3f4a1
arith_ssa.go 26.2 KB