Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 5 of 5 for opcodeTable (0.28 sec)

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

    	// lowering and a subsequent dead code elimination (because lowering
    	// rules may leave dead generic ops behind).
    	for _, b := range f.Blocks {
    		for _, v := range b.Values {
    			if !opcodeTable[v.Op].generic {
    				continue // lowered
    			}
    			switch v.Op {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Feb 16 00:16:13 UTC 2023
    - 1.7K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/ssa/deadcode.go

    				q = append(q, v)
    				if v.Pos.IsStmt() != src.PosNotStmt {
    					liveOrderStmts = append(liveOrderStmts, v)
    				}
    			}
    		}
    		for _, v := range b.Values {
    			if (opcodeTable[v.Op].call || opcodeTable[v.Op].hasSideEffects || opcodeTable[v.Op].nilCheck) && !live[v.ID] {
    				live[v.ID] = true
    				q = append(q, v)
    				if v.Pos.IsStmt() != src.PosNotStmt {
    					liveOrderStmts = append(liveOrderStmts, v)
    				}
    			}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Dec 08 00:29:01 UTC 2023
    - 9.2K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/ssa/flagalloc.go

    			v := b.Values[j]
    			if v.Op == OpInvalid {
    				continue
    			}
    			b.Values[i] = v
    			i++
    		}
    		b.truncateValues(i)
    	}
    }
    
    func (v *Value) clobbersFlags() bool {
    	if opcodeTable[v.Op].clobberFlags {
    		return true
    	}
    	if v.Type.IsTuple() && (v.Type.FieldType(0).IsFlags() || v.Type.FieldType(1).IsFlags()) {
    		// This case handles the possibility where a flag value is generated but never used.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Oct 31 21:41:20 UTC 2022
    - 6.7K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/ssa/fuse.go

    // There may be false positives.
    func isEmpty(b *Block) bool {
    	for _, v := range b.Values {
    		if v.Uses > 0 || v.Op.IsCall() || v.Op.HasSideEffects() || v.Type.IsVoid() || opcodeTable[v.Op].nilCheck {
    			return false
    		}
    	}
    	return true
    }
    
    // fuseBlockPlain handles a run of blocks with length >= 2,
    // whose interior has single predecessors and successors,
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Oct 31 20:45:54 UTC 2023
    - 9K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/ssa/cse.go

    		// partition can grow in the loop. By not using a range loop here,
    		// we process new additions as they arrive, avoiding O(n^2) behavior.
    		for i := 0; i < len(partition); i++ {
    			e := partition[i]
    
    			if opcodeTable[e[0].Op].commutative {
    				// Order the first two args before comparison.
    				for _, v := range e {
    					if valueEqClass[v.Args[0].ID] > valueEqClass[v.Args[1].ID] {
    						v.Args[0], v.Args[1] = v.Args[1], v.Args[0]
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Oct 31 21:41:20 UTC 2022
    - 9.6K bytes
    - Viewed (0)
Back to top