Search Options

Results per page
Sort
Preferred Languages
Advance

Results 21 - 30 of 39 for optab (0.11 sec)

  1. src/cmd/compile/internal/typecheck/expr.go

    			n.SetType(nil)
    			return n
    		}
    	}
    	return n
    }
    
    // tcITab typechecks an OITAB node.
    func tcITab(n *ir.UnaryExpr) ir.Node {
    	n.X = Expr(n.X)
    	t := n.X.Type()
    	if t == nil {
    		n.SetType(nil)
    		return n
    	}
    	if !t.IsInterface() {
    		base.Fatalf("OITAB of %v", t)
    	}
    	n.SetType(types.NewPtr(types.Types[types.TUINTPTR]))
    	return n
    }
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Apr 04 14:29:45 UTC 2024
    - 23.1K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/walk/walk.go

    			ir.OAND, ir.OANDNOT, ir.OLSH, ir.OOR, ir.ORSH, ir.OXOR, ir.OCOMPLEX, ir.OMAKEFACE,
    			ir.OADDR, ir.OBITNOT, ir.ONOT, ir.OPLUS,
    			ir.OCAP, ir.OIMAG, ir.OLEN, ir.OREAL,
    			ir.OCONVNOP, ir.ODOT,
    			ir.OCFUNC, ir.OIDATA, ir.OITAB, ir.OSPTR,
    			ir.OBYTES2STRTMP, ir.OGETG, ir.OGETCALLERPC, ir.OGETCALLERSP, ir.OSLICEHEADER, ir.OSTRINGHEADER:
    			// ok: operations that don't require function calls.
    			// Expand as needed.
    		}
    
    		return false
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Feb 27 20:56:00 UTC 2024
    - 10.4K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/ssa/decompose.go

    	ptrType := v.Block.Func.Config.Types.BytePtr
    
    	itab := v.Block.NewValue0(v.Pos, OpPhi, uintptrType)
    	data := v.Block.NewValue0(v.Pos, OpPhi, ptrType)
    	for _, a := range v.Args {
    		itab.AddArg(a.Block.NewValue1(v.Pos, OpITab, uintptrType, a))
    		data.AddArg(a.Block.NewValue1(v.Pos, OpIData, ptrType, a))
    	}
    	v.reset(OpIMake)
    	v.AddArg(itab)
    	v.AddArg(data)
    }
    
    func decomposeUser(f *Func) {
    	for _, b := range f.Blocks {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Aug 23 21:22:15 UTC 2022
    - 13.4K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/typecheck/typecheck.go

    	case ir.OUNSAFESTRINGDATA:
    		n := n.(*ir.UnaryExpr)
    		return tcUnsafeData(n)
    
    	case ir.OITAB:
    		n := n.(*ir.UnaryExpr)
    		return tcITab(n)
    
    	case ir.OIDATA:
    		// Whoever creates the OIDATA node must know a priori the concrete type at that moment,
    		// usually by just having checked the OITAB.
    		n := n.(*ir.UnaryExpr)
    		base.Fatalf("cannot typecheck interface data %v", n)
    		panic("unreachable")
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed Mar 20 19:08:34 UTC 2024
    - 30.5K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/walk/compare.go

    		//   l.tab != nil && l.tab._type == type(r)
    		//
    		// TODO(mdempsky): For non-empty interface comparisons, just
    		// compare against the itab address directly?
    		var eqtype ir.Node
    		tab := ir.NewUnaryExpr(base.Pos, ir.OITAB, l)
    		rtyp := reflectdata.CompareRType(base.Pos, n)
    		if l.Type().IsEmptyInterface() {
    			tab.SetType(types.NewPtr(types.Types[types.TUINT8]))
    			tab.SetTypecheck(1)
    			eqtype = ir.NewBinaryExpr(base.Pos, eq, tab, rtyp)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 24 21:55:14 UTC 2023
    - 16.2K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/walk/convert.go

    		//
    		// var res *uint8
    		// res = (*uint8)(unsafe.Pointer(itab))
    		// if res != nil {
    		//    res = res.type
    		// }
    
    		// Grab its parts.
    		itab := ir.NewUnaryExpr(base.Pos, ir.OITAB, c)
    		itab.SetType(types.Types[types.TUINTPTR].PtrTo())
    		itab.SetTypecheck(1)
    		data := ir.NewUnaryExpr(n.Pos(), ir.OIDATA, c)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Oct 09 17:28:22 UTC 2023
    - 18.2K bytes
    - Viewed (0)
  7. src/cmd/compile/internal/typecheck/stmt.go

    		// the point of the go/defer statement.
    		if call.Op() == ir.OCALLINTER {
    			iface := as.Lhs[0]
    			init.Append(Stmt(ir.NewUnaryExpr(stmtPos, ir.OCHECKNIL, ir.NewUnaryExpr(iface.Pos(), ir.OITAB, iface))))
    		}
    	}
    
    	// Move call into the wrapper function, now that it's safe to
    	// evaluate there.
    	wrapperFn.Body = []ir.Node{call}
    
    	// Finally, construct a call to the wrapper.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Nov 20 15:10:54 UTC 2023
    - 17.8K bytes
    - Viewed (0)
  8. src/cmd/compile/internal/ssa/writebarrier.go

    		v = v.Args[0]
    	}
    	switch v.Op {
    	case OpSP, OpLocalAddr, OpSelectNAddr:
    		// Stack addresses are always safe.
    		return true
    	case OpITab, OpStringPtr, OpGetClosurePtr:
    		// Itabs, string data, and closure fields are
    		// read-only once initialized.
    		return true
    	case OpAddr:
    		vt := v.Aux.(*obj.LSym).Type
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Sep 08 19:09:14 UTC 2023
    - 23.5K bytes
    - Viewed (0)
  9. src/cmd/compile/internal/ssa/rewritedec.go

    		return rewriteValuedec_OpComplexImag(v)
    	case OpComplexReal:
    		return rewriteValuedec_OpComplexReal(v)
    	case OpIData:
    		return rewriteValuedec_OpIData(v)
    	case OpIMake:
    		return rewriteValuedec_OpIMake(v)
    	case OpITab:
    		return rewriteValuedec_OpITab(v)
    	case OpLoad:
    		return rewriteValuedec_OpLoad(v)
    	case OpSliceCap:
    		return rewriteValuedec_OpSliceCap(v)
    	case OpSliceLen:
    		return rewriteValuedec_OpSliceLen(v)
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Oct 12 00:48:31 UTC 2023
    - 24.9K bytes
    - Viewed (0)
  10. src/cmd/compile/internal/walk/expr.go

    		n := n.(*ir.SelectorExpr)
    		return n.FuncName()
    
    	case ir.OMIN, ir.OMAX:
    		n := n.(*ir.CallExpr)
    		return walkMinMax(n, init)
    
    	case ir.ONOT, ir.ONEG, ir.OPLUS, ir.OBITNOT, ir.OREAL, ir.OIMAG, ir.OSPTR, ir.OITAB, ir.OIDATA:
    		n := n.(*ir.UnaryExpr)
    		n.X = walkExpr(n.X, init)
    		return n
    
    	case ir.ODOTMETH, ir.ODOTINTER:
    		n := n.(*ir.SelectorExpr)
    		n.X = walkExpr(n.X, init)
    		return n
    
    	case ir.OADDR:
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 04 17:34:01 UTC 2024
    - 27.6K bytes
    - Viewed (0)
Back to top