IRVM: A Virtual Machine for Andrew W. Appel's Tree Intermediate Representation