The Architecture and Language Implementation Research Group has the goal of improving the performance of computer systems through the synergistic enhancement of the compiler, run-time environment, and architecture. Efforts include a wide range of optimizations for improving memory subsystem performance, Java virtual machines, garbage collection algorithms, micro-architectural support for advanced compiler and run-time optimizations, and parallel architecture (including optimizations for GPUs).