Optimization

From IR

  • eliminating array bounds checks, if they are provably guaranteed to succeed;
  • eliminating redundant computations;
  • replacing a function call with the body of the function itself, suitably instantiated on the arguments, to eliminate the overhead of calling and returning; and
  • re-ordering machine instructions so that (e.g.) slow reads from memory are begun before their results are needed, and doing other instructions in the meanwhile that do not need the result of the read.