Updated CompilerOptimizations (markdown)
diff --git a/CompilerOptimizations.md b/CompilerOptimizations.md
index 734f125..1bb181f 100644
--- a/CompilerOptimizations.md
+++ b/CompilerOptimizations.md
@@ -18,20 +18,20 @@
* **gc:** 1.0-1.3, but *not* in 1.4+
* **gccgo:** never
-## string and []byte
+## `string` and `[]byte`
-### Map lookup by []byte
+### Map lookup by `[]byte`
-For a map m of type map[string]T and []byte b, m[string(b)] doesn't allocate. (the temporary string copy of the byte slice isn't made)
+For a map `m` of type `map[string]T` and `[]byte b`, `m[string(b)]` doesn't allocate. (the temporary string copy of the byte slice isn't made)
* **gc:** 1.4+
* **gccgo:** ?
-### range over []byte(s)
+### `range` over `[]byte`(s)
-Avoiding allocating []byte of a string when ranging over the bytes:
+Avoiding allocating `[]byte` of a `string` when ranging over the bytes:
-```
+```go
s := "foo"
for i, c := range []byte(s) {
// ...
@@ -57,7 +57,7 @@
### Function Inlining
-Only short and simple functions are inlined. To be inlined a function must contain less than ~40 expressions and does not contain complex things like function calls, loops, labels, closures, panic's, recover's, select's, switch'es, etc.
+Only short and simple functions are inlined. To be inlined a function must contain less than ~40 expressions and does not contain complex things like function calls, loops, labels, closures, `panic`'s, `recover`'s, `select`'s, `switch`'es, etc.
* **gc:** 1.0+
* **gccgo:** -O1 and above.
@@ -74,7 +74,7 @@
}
```
-are converted into efficient runtime memclr calls. [Issue](golang.org/issue/5373) and [commit](https://golang.org/change/f03c9202c43e0abb130669852082117ca50aa9b1).
+are converted into efficient runtime memclr calls. [Issue](https://github.com/golang/go/issues/5373) and [commit](https://golang.org/change/f03c9202c43e0abb130669852082117ca50aa9b1).
* **gc:** 1.5+
* **gccgo:** ?