Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 15 for OpSelectN (0.14 sec)

  1. src/cmd/compile/internal/ssa/expand_calls.go

    	}
    
    	return mem
    }
    
    // Convert scalar OpArg into the proper OpWhateverArg instruction
    // Convert scalar OpSelectN into perhaps-differently-indexed OpSelectN
    // Convert aggregate OpArg into Make of its parts (which are eventually scalars)
    // Convert aggregate OpSelectN into Make of its parts (which are eventually scalars)
    // Returns the converted value.
    //
    //   - "pos" the position for any generated instructions
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Nov 28 05:13:40 UTC 2023
    - 31.9K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/ssa/lower.go

    			if !opcodeTable[v.Op].generic {
    				continue // lowered
    			}
    			switch v.Op {
    			case OpSP, OpSPanchored, OpSB, OpInitMem, OpArg, OpArgIntReg, OpArgFloatReg, OpPhi, OpVarDef, OpVarLive, OpKeepAlive, OpSelect0, OpSelect1, OpSelectN, OpConvert, OpInlMark, OpWBend:
    				continue // ok not to lower
    			case OpMakeResult:
    				if b.Controls[0] == v {
    					continue
    				}
    			case OpGetG:
    				if f.Config.hasGReg {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Feb 16 00:16:13 UTC 2023
    - 1.7K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/ssa/tuple.go

    				fallthrough
    			case OpSelect0:
    				tuple = selector.Args[0]
    				if !tuple.Type.IsTuple() {
    					f.Fatalf("arg of tuple selector %s is not a tuple: %s", selector.String(), tuple.LongString())
    				}
    			case OpSelectN:
    				tuple = selector.Args[0]
    				idx = int(selector.AuxInt)
    				if !tuple.Type.IsResults() {
    					f.Fatalf("arg of result selector %s is not a results: %s", selector.String(), tuple.LongString())
    				}
    			}
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Feb 26 02:52:33 UTC 2021
    - 2K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/ssa/writebarrier.go

    	c := f.Config
    	if f.ABIDefault == f.ABI1 && len(c.intParamRegs) >= 1 {
    		if v.Op != OpSelectN || v.AuxInt != 0 {
    			return nil, false
    		}
    		mem = select1[v.Args[0].ID]
    		if mem == nil {
    			return nil, false
    		}
    	} else {
    		if v.Op != OpLoad {
    			return nil, false
    		}
    		mem = v.MemoryArg()
    		if mem.Op != OpSelectN {
    			return nil, false
    		}
    		if mem.Type != types.TypeMem {
    			return nil, false
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Sep 08 19:09:14 UTC 2023
    - 23.5K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/ssa/tighten.go

    		for _, v := range b.Values {
    			if v.Op.isLoweredGetClosurePtr() {
    				// Must stay in the entry block.
    				continue
    			}
    			switch v.Op {
    			case OpPhi, OpArg, OpArgIntReg, OpArgFloatReg, OpSelect0, OpSelect1, OpSelectN:
    				// Phis need to stay in their block.
    				// Arg must stay in the entry block.
    				// Tuple selectors must stay with the tuple generator.
    				// SelectN is typically, ultimately, a register.
    				continue
    			}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue May 16 01:01:38 UTC 2023
    - 7.7K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/ssa/loopreschedchecks.go

    		resched := f.fe.Syslook("goschedguarded")
    		call := sched.NewValue1A(bb.Pos, OpStaticCall, types.TypeResultMem, StaticAuxCall(resched, bb.Func.ABIDefault.ABIAnalyzeTypes(nil, nil)), mem0)
    		mem1 := sched.NewValue1I(bb.Pos, OpSelectN, types.TypeMem, 0, call)
    		sched.AddEdgeTo(h)
    		headerMemPhi.AddArg(mem1)
    
    		bb.Succs[p.i] = Edge{test, 0}
    		test.Preds = append(test.Preds, Edge{bb, p.i})
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Aug 22 21:17:10 UTC 2023
    - 16K bytes
    - Viewed (0)
  7. src/cmd/compile/internal/ssa/cse.go

    	}
    	// OpSelect is a pseudo-op. We need to be more aggressive
    	// regarding CSE to keep multiple OpSelect's of the same
    	// argument from existing.
    	if v.Op != OpSelect0 && v.Op != OpSelect1 && v.Op != OpSelectN {
    		if tc := v.Type.Compare(w.Type); tc != types.CMPeq {
    			return tc
    		}
    	}
    
    	if v.Aux != w.Aux {
    		if v.Aux == nil {
    			return types.CMPlt
    		}
    		if w.Aux == nil {
    			return types.CMPgt
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Oct 31 21:41:20 UTC 2022
    - 9.6K bytes
    - Viewed (0)
  8. src/cmd/compile/internal/ssa/schedule.go

    			case v.Type.IsMemory():
    				// Schedule stores as early as possible. This tends to
    				// reduce register pressure.
    				score[v.ID] = ScoreMemory
    			case v.Op == OpSelect0 || v.Op == OpSelect1 || v.Op == OpSelectN:
    				// Tuple selectors need to appear immediately after the instruction
    				// that generates the tuple.
    				score[v.ID] = ScoreReadTuple
    			case v.hasFlagInput():
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Apr 08 15:53:17 UTC 2024
    - 16.4K bytes
    - Viewed (0)
  9. src/cmd/compile/internal/ssagen/ssa.go

    	if len(pa.Registers) == 0 && !ssa.CanSSA(t) {
    		addr := s.newValue1I(ssa.OpSelectNAddr, types.NewPtr(t), which, c)
    		return s.rawLoad(t, addr)
    	}
    	return s.newValue1I(ssa.OpSelectN, t, which, c)
    }
    
    func (s *state) resultAddrOfCall(c *ssa.Value, which int64, t *types.Type) *ssa.Value {
    	aux := c.Aux.(*ssa.AuxCall)
    	pa := aux.ParamAssignmentForResult(which)
    	if len(pa.Registers) == 0 {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Jun 10 19:44:43 UTC 2024
    - 284.9K bytes
    - Viewed (0)
  10. src/cmd/compile/internal/ssa/regalloc.go

    				b.Values = append(b.Values, v)
    				s.advanceUses(v)
    				s.sb = v.ID
    				continue
    			}
    			if v.Op == OpSelect0 || v.Op == OpSelect1 || v.Op == OpSelectN {
    				if s.values[v.ID].needReg {
    					if v.Op == OpSelectN {
    						s.assignReg(register(s.f.getHome(v.Args[0].ID).(LocResults)[int(v.AuxInt)].(*Register).num), v, v)
    					} else {
    						var i = 0
    						if v.Op == OpSelect1 {
    							i = 1
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Nov 21 17:49:56 UTC 2023
    - 87.2K bytes
    - Viewed (0)
Back to top