Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 5 of 5 for SameSafeExpr (0.17 sec)

  1. src/cmd/compile/internal/walk/range.go

    		return false
    	}
    
    	stmt := n.Body[0] // only stmt in body
    	if stmt == nil || stmt.Op() != ir.ODELETE {
    		return false
    	}
    
    	m := n.X
    	if delete := stmt.(*ir.CallExpr); !ir.SameSafeExpr(delete.Args[0], m) || !ir.SameSafeExpr(delete.Args[1], k) {
    		return false
    	}
    
    	// Keys where equality is not reflexive can not be deleted from maps.
    	if !types.IsReflexive(t.Key()) {
    		return false
    	}
    
    	return true
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Sep 20 14:52:33 UTC 2023
    - 17.6K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/walk/order.go

    		mapAppend := n.X.Op() == ir.OINDEXMAP && n.Y.Op() == ir.OAPPEND &&
    			ir.SameSafeExpr(n.X, n.Y.(*ir.CallExpr).Args[0])
    
    		n.X = o.expr(n.X, nil)
    		if mapAppend {
    			indexLHS := n.X.(*ir.IndexExpr)
    			indexLHS.X = o.cheapExpr(indexLHS.X)
    			indexLHS.Index = o.cheapExpr(indexLHS.Index)
    
    			call := n.Y.(*ir.CallExpr)
    			arg0 := call.Args[0]
    			// ir.SameSafeExpr skips OCONVNOPs, so we must do the same here (#66096).
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Mar 08 02:00:33 UTC 2024
    - 42.7K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/walk/assign.go

    	// the mapassign call.
    	var mapAppend *ir.CallExpr
    	if left.Op() == ir.OINDEXMAP && right.Op() == ir.OAPPEND {
    		left := left.(*ir.IndexExpr)
    		mapAppend = right.(*ir.CallExpr)
    		if !ir.SameSafeExpr(left, mapAppend.Args[0]) {
    			base.Fatalf("not same expressions: %v != %v", left, mapAppend.Args[0])
    		}
    	}
    
    	left = walkExpr(left, init)
    	left = safeExpr(left, init)
    	if mapAppend != nil {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 08 17:09:06 UTC 2024
    - 20.3K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/walk/builtin.go

    //	  }
    //	  s[s.len - argc] = a
    //	  s[s.len - argc + 1] = b
    //	  ...
    //	}
    //	s
    func walkAppend(n *ir.CallExpr, init *ir.Nodes, dst ir.Node) ir.Node {
    	if !ir.SameSafeExpr(dst, n.Args[0]) {
    		n.Args[0] = safeExpr(n.Args[0], init)
    		n.Args[0] = walkExpr(n.Args[0], init)
    	}
    	walkExprListSafe(n.Args[1:], init)
    
    	nsrc := n.Args[0]
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Mar 08 22:35:22 UTC 2024
    - 31.2K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/ssagen/ssa.go

    			// Currently doesn't really work because (*p)[:len(*p)] appears here as:
    			//    tmp = len(*p)
    			//    (*p)[:tmp]
    			// if j != nil && (j.Op == OLEN && SameSafeExpr(j.Left, n.Left)) {
    			//      j = nil
    			// }
    			// if k != nil && (k.Op == OCAP && SameSafeExpr(k.Left, n.Left)) {
    			//      k = nil
    			// }
    			if i == nil {
    				skip |= skipPtr
    				if j == nil {
    					skip |= skipLen
    				}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Jun 10 19:44:43 UTC 2024
    - 284.9K bytes
    - Viewed (0)
Back to top