For example if I'm creating a tuple of 4 elements from a vector, would writing assert_eq!(v.len() == 4) beforehand help reduce boundschecking every time I index the v?
Yes, it could. Verify with https://rust.godbolt.org (remember to add
-O to flags!)
Another trick is to use:
let slice = &arr[0..4];
and then the optimizer will see that this slice must be at least 4 elements long.
-Copt-level=3 is actually preferred, as
-O is equivalent to
-Ctarget-cpu=native can help optimizations as well, though it has some bugs.
Absolutely. A quick example: https://rust.godbolt.org/z/vzxnz3saE
assert makes the generated code smaller and faster.