Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 6 of 6 for truncateValues (0.17 sec)

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

    	b.AuxInt = 0
    	b.Controls[0] = v
    	b.Controls[1] = w
    	v.Uses++
    	w.Uses++
    }
    
    // truncateValues truncates b.Values at the ith element, zeroing subsequent elements.
    // The values in b.Values after i must already have had their args reset,
    // to maintain correct value uses counts.
    func (b *Block) truncateValues(i int) {
    	tail := b.Values[i:]
    	for j := range tail {
    		tail[j] = nil
    	}
    	b.Values = b.Values[:i]
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 15 15:44:14 UTC 2024
    - 12.2K bytes
    - Viewed (0)
  2. src/cmd/compile/internal/ssa/flagalloc.go

    			continue
    		}
    		i := 0
    		for j := 0; j < len(b.Values); j++ {
    			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()) {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Oct 31 21:41:20 UTC 2022
    - 6.7K bytes
    - Viewed (0)
  3. src/cmd/compile/internal/ssa/deadcode.go

    	for _, b := range f.Blocks {
    		i := 0
    		for _, v := range b.Values {
    			if live[v.ID] {
    				b.Values[i] = v
    				i++
    			} else {
    				f.freeValue(v)
    			}
    		}
    		b.truncateValues(i)
    	}
    
    	// Remove unreachable blocks. Return dead blocks to allocator.
    	i = 0
    	for _, b := range f.Blocks {
    		if reachable[b.ID] {
    			f.Blocks[i] = b
    			i++
    		} else {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Dec 08 00:29:01 UTC 2023
    - 9.2K bytes
    - Viewed (0)
  4. src/cmd/compile/internal/ssa/nilcheck.go

    					v.Pos = v.Pos.WithIsStmt()
    					pendingLines.remove(v.Pos)
    				}
    				b.Values[i] = v
    				i++
    			}
    		}
    
    		if pendingLines.contains(b.Pos) {
    			b.Pos = b.Pos.WithIsStmt()
    		}
    
    		b.truncateValues(i)
    
    		// TODO: if b.Kind == BlockPlain, start the analysis in the subsequent block to find
    		// more unnecessary nil checks.  Would fix test/nilptr3.go:159.
    	}
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Tue Oct 31 20:45:54 UTC 2023
    - 11.3K bytes
    - Viewed (0)
  5. src/cmd/compile/internal/ssa/schedule.go

    					// it as having void type so regalloc won't
    					// try to allocate a register for it.
    					v.Type = types.TypeVoid
    				}
    				b.Values[i] = v
    				i++
    			}
    		}
    		b.truncateValues(i)
    	}
    
    	f.scheduled = true
    }
    
    // storeOrder orders values with respect to stores. That is,
    // if v transitively depends on store s, v is ordered after s,
    // otherwise v is ordered before s.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Apr 08 15:53:17 UTC 2024
    - 16.4K bytes
    - Viewed (0)
  6. src/cmd/compile/internal/ssa/rewrite.go

    			}
    			if i != j {
    				b.Values[j] = v
    			}
    			j++
    		}
    		if pendingLines.get(b.Pos) == int32(b.ID) {
    			b.Pos = b.Pos.WithIsStmt()
    			pendingLines.remove(b.Pos)
    		}
    		b.truncateValues(j)
    	}
    }
    
    // Common functions called from rewriting rules
    
    func is64BitFloat(t *types.Type) bool {
    	return t.Size() == 8 && t.IsFloat()
    }
    
    func is32BitFloat(t *types.Type) bool {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Jun 07 19:02:52 UTC 2024
    - 64.2K bytes
    - Viewed (0)
Back to top