15-745 Advanced Optimizing Compilers: Task 2Due 2/23/2006 5pmFebruary 10, 20061 Task DescriptionIn this assignment, you will implement at least one classical loop optimization.2 Task SpecificsPlease implement loop-invariant code motion (hoisting) as described in class. Note that this op-timization uses reaching definitions and liveness, which you should have already implemented inTask 1. Implement the optimizations on top of your existing compiler from Task 1. Implementingthis optimization will be sufficient to earn you full credit on this assignment.Additionally, we will be running a small contest during this assignment. There are eight “challengetests” (listed below) from the big subdirectory in the test suite that we will use to evaluate yourcompiler. Your performance relative to other groups in the class will determine in what orderyou get to select time slots for your project proposal presentation. You may implement any otherloop-based optimizations you want (Induction Variable Elimination, B ounds Check Elimination,Null-Check Elimination, etc). We will be posting a running leaderboard, as well as instructions forsubmitting your times, during the second week of the assignment. Details will be announced viathe website and RSS feed.• l3 test2.l3: prime number generation. simple arrays• l3 test3.l3: cellular automata. good array test• l3 test8.l3: designed specifically for bounds-check elimination• l3 test10.l3: simple loops that ac ce ss an array• l3 test11.l3: pi to 1000 digits. simple array access, plus CSE• l3 test13.l3: n-queens. array and struct element access• l3 test14.l3: n2-queens. much more demanding• l3 test20.l3: busy arrays1Use the algorithm descriptions given in class, or in Muchnick. You may work in groups of one ortwo (we suggest two). Once you have completed the task, please turn in (by email to mderosa@cs)the a tarball of your modified source code and the results.txt file from a full test suite run (usingthe original Task 0 test
View Full Document