func canSpeculativelyExecute(b *Block) bool {
	// don't fuse memory ops, Phi ops, divides (can panic),
	// or anything else with side-effects
	for _, v := range b.Values {
		if v.Op == OpPhi || isDivMod(v.Op) || v.Type.IsMemory() ||
			v.MemoryArg() != nil || opcodeTable[v.Op].hasSideEffects {
			return false
		}
	}
	return true
}
// canSpeculativelyExecute reports whether every value in the block can
// be evaluated without causing any observable side effects (memory
// accesses, panics and so on) except for execution time changes. It
// also ensures that the block does not contain any phis which we can't
// speculatively execute.
// Warning: this function cannot currently detect values that represent
// instructions the execution of which need to be guarded with CPU
// hardware feature checks. See issue #34950.
canSpeculativelyExecute reports whether every value in the block can
be evaluated without causing any observable side effects (memory
accesses, panics and so on) except for execution time changes. It
also ensures that the block does not contain any phis which we can't
speculatively execute.
Warning: this function cannot currently detect values that represent
instructions the execution of which need to be guarded with CPU
hardware feature checks.
// canSpeculativelyExecute reports whether every value in the block can // be evaluated without causing any observable side effects ( memory // accesses panics and so on ) except for execution time changes . It // also ensures that the block does not contain any phis which we can ' t // speculatively execute . // Warning : this function cannot currently detect values that represent // instructions the execution of which need to be guarded with CPU // hardware feature checks . See issue #34950 .
func canSpeculativelyExecute(b *Block) bool {
	for _, v := range b.Values {
		if v.Op == OpPhi || isDivMod(v.Op) || v.Type.IsMemory() ||
			v.MemoryArg() != nil || opcodeTable[v.Op].hasSideEffects {
			return false
		}
	}
	return true
}
func canSpeculativelyExecute ( b * Block ) bool { for _ , v := range b . Values { if v . Op == OpPhi || isDivMod ( v . Op ) || v . Type . IsMemory ( ) || v . MemoryArg ( ) != nil || opcodeTable [ v . Op ] . hasSideEffects { return false } } return true }
canSpeculativelyExecute reports whether every value in the block can
be evaluated without causing any observable side effects (memory
accesses, panics and so on) except for execution time changes.
canSpeculativelyExecute reports whether every value in the block can be evaluated without causing any observable side effects ( memory accesses panics and so on ) except for execution time changes .
// don't fuse memory ops, Phi ops, divides (can panic), // or anything else with side-effects