Intermediate Program Representations and Automatic Parallelizing Compilers