This optimization makes sure the following pattern doesn't do a heap
allocation (assuming Write doesn't modify the slice):
var w *machine.UART = ...
w.Write([]byte("foo"))
As long as Write doesn't modify the slice and LLVM can detect this, a
call to runtime.stringToBytes with the necessary allocation + copy is
avoided.
|
||
|---|---|---|
| .. | ||
| calls.go | ||
| compiler.go | ||
| optimizer.go | ||
| sizes.go | ||
| util.go | ||