Compilers
  • Performance of High-level Languages

    by Vanessa McHale | Compilers

    It is quite possible to beat established (array) implementations with special cases and bittwiddling.

  • Lessons from Writing an Array Compiler II

    by Vanessa McHale | Compilers

    I just finished adding another mid-end to my Apple JIT compiler, motivated to get rank facilities right. However, there remain significant shortfalls.

  • Lessons from Writing an Array Language Compiler

    by Vanessa McHale | Compilers

    My Apple compiler started as an experiment in what I would implement as compiler for an array system. Several parts did not pan out so I offer my warnings and advice to other array language implementers.

  • Compiling Functions to Jumps

    by Vanessa McHale | Compilers

    Functions are compiled to machine by a convention of jumps and registers; one calls a function by jumping to its location in memory. These jumps are relative and particular functions (say, malloc) may be loaded at different memory locations, so the machine code for a function cannot be pinned down and in fact is contingent on every function that it calls.

  • Basic Blocks À La Appel

    by Vanessa McHale | Compilers

    Building a respectable compiler requires basic blocks in order for liveness analysis to be performant. Consider my own Apple compiler: