In particular:
- incrementing a pointer (
ptr::offset)
- Casting a pointer (
cast::transmute)
- Possibly: running drop glue (
cast::forget)
It's worth measuring to be sure but I believe the amount of code we generate to call the numerous monomorphic instances of these functions may be substantial. Moving the "intrinsic" recognition-point up just a touch might be worthwhile, though this is (as @pcwalton points out) a slippery slope that leads towards ever more ambitious "optimization in the frontend".
In particular:
ptr::offset)cast::transmute)cast::forget)It's worth measuring to be sure but I believe the amount of code we generate to call the numerous monomorphic instances of these functions may be substantial. Moving the "intrinsic" recognition-point up just a touch might be worthwhile, though this is (as @pcwalton points out) a slippery slope that leads towards ever more ambitious "optimization in the frontend".