]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: drop TODO in NilCheck for riscv64
authorMeng Zhuo <mzh@golangcn.org>
Thu, 27 Jun 2024 02:56:22 +0000 (10:56 +0800)
committerM Zhuo <mzh@golangcn.org>
Mon, 29 Jul 2024 05:12:05 +0000 (05:12 +0000)
Also add log as arm/amd64 do.

Change-Id: I3698993e2df0ebf3bfcf8bad5fe389affa0e8eff
Reviewed-on: https://go-review.googlesource.com/c/go/+/595355
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Robert Griesemer <gri@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Keith Randall <khr@google.com>
src/cmd/compile/internal/riscv64/ssa.go

index c9e75b21804af31e216be7260d4b0106c3915e92..3c57bc93bcaa597d00ab8e8d15f07d83ef7ac5e9 100644 (file)
@@ -7,6 +7,7 @@ package riscv64
 import (
        "cmd/compile/internal/base"
        "cmd/compile/internal/ir"
+       "cmd/compile/internal/logopt"
        "cmd/compile/internal/objw"
        "cmd/compile/internal/ssa"
        "cmd/compile/internal/ssagen"
@@ -720,13 +721,15 @@ func ssaGenValue(s *ssagen.State, v *ssa.Value) {
 
        case ssa.OpRISCV64LoweredNilCheck:
                // Issue a load which will fault if arg is nil.
-               // TODO: optimizations. See arm and amd64 LoweredNilCheck.
                p := s.Prog(riscv.AMOVB)
                p.From.Type = obj.TYPE_MEM
                p.From.Reg = v.Args[0].Reg()
                ssagen.AddAux(&p.From, v)
                p.To.Type = obj.TYPE_REG
                p.To.Reg = riscv.REG_ZERO
+               if logopt.Enabled() {
+                       logopt.LogOpt(v.Pos, "nilcheck", "genssa", v.Block.Func.Name)
+               }
                if base.Debug.Nil != 0 && v.Pos.Line() > 1 { // v.Pos == 1 in generated wrappers
                        base.WarnfAt(v.Pos, "generated nil check")
                }