CISC673 – Optimizing Compilers1/34 Presented by: Sameer Kulkarni Dept of Computer & Information Sciences University of Delaware Phase Ordering
CISC673 – Optimizing Compilers2/34 Optimization?? does it really work??
CISC673 – Optimizing Compilers3/34 No. of optimizations O64 = 264 (on last count) JikesRVM = 67
CISC673 – Optimizing Compilers4/34 Search space Consider a hypothetical case where we apply 40 optimizations O64 : 3.98 x Jikes: 4.1 x 10 18
CISC673 – Optimizing Compilers5/34 Could take a while Considering the smaller problem, assume that running all the benchmarks take just 1 sec to run Jikes would take: billion years Age of the universe 13 billion years
CISC673 – Optimizing Compilers6/34 Some basic Optimizations Constant Sub-expression Elimination Loop Unrolling Local Copy Prop Branch Optimizations...
CISC673 – Optimizing Compilers7/34 Example for(int i=0; i< 3;i++){ a = a + i + 1; } Loop Unrolling CSE
CISC673 – Optimizing Compilers8/34 Instruction Scheduling vs Register Allocation Maximizing Parallelism IS Minimizing Register Spilling RA
CISC673 – Optimizing Compilers9/34 Phase Ord. vs Opt Levels Opt Levels ~ Timing Constraints Phase ordering ~ code interactions
CISC673 – Optimizing Compilers10/34 Whimsical?? Opt X would like to go before Opt Y, but not always.
CISC673 – Optimizing Compilers11/34 Ideal Solution? Oracle Perfect sequence at the very start Wise Man Solution Given the present code predict the best optimization solution
CISC673 – Optimizing Compilers12/34 Wise Man ? Understand Compilers Optimizations Source Code
CISC673 – Optimizing Compilers13/34 Possible Solutions Pruning the search space Genetic Algorithms Estimating running times Precompiled choices
CISC673 – Optimizing Compilers14/34 Pruning Search space Fast and Efficient Searches for Effective Optimization Phase Sequences, Kulkarni et al. TACO 2005
CISC673 – Optimizing Compilers15/34 Optimization Profiling Fast and Efficient Searches for Effective Optimization Phase Sequences, Kulkarni et al. TACO 2005
CISC673 – Optimizing Compilers16/34 Genetic Algorithms Fast Searches for Effective Optimization Phase Sequences, Kulkarni et al. PLDI ‘04
CISC673 – Optimizing Compilers17/34 Exhaustive vs Heuristic [2]
CISC673 – Optimizing Compilers18/34 Disadvantages Benchmark Specific Architecture dependent Code disregarded
CISC673 – Optimizing Compilers19/34 Improvements Profiling the application Understand the code Understanding optimizations Continuous evaluation of transformations
CISC673 – Optimizing Compilers20/34 Proposed solution Input = Code Features Output = Running time Evolve Neural Networks
CISC673 – Optimizing Compilers21/34 Proposed solution
CISC673 – Optimizing Compilers22/34 Experimental Setup Neural Network Evolver (ANJI) Training Set { javaGrande } Testing Set { SpecJVM, Da Capo }
CISC673 – Optimizing Compilers23/34 ANJI Mutating & generating n/w s Network phase ordering Timing Information Scoring the n/w
CISC673 – Optimizing Compilers24/34 Training Phase Generations and Chromosomes Random chromosomes Back Propagation Add/Remove/Update hidden nodes
CISC673 – Optimizing Compilers25/34 Experimental Setup
CISC673 – Optimizing Compilers26/34 Network Evolution
CISC673 – Optimizing Compilers27/34 Network Evolution
CISC673 – Optimizing Compilers28/34 javaGrande Set of very small benchmarks Low running times Memory management Machine Architecture
CISC673 – Optimizing Compilers29/34 Testing SpecJVM’98 & Da Capo Champion n/w Running times
CISC673 – Optimizing Compilers30/34 Present Solution
CISC673 – Optimizing Compilers31/34 Implementation in GCC Milepost GCC Created for intelligent compilation Collecting source features Submitting features to common loc. Hooks into the Compilation process.
CISC673 – Optimizing Compilers32/34 Possible Use Case
CISC673 – Optimizing Compilers33/34 Structure for Phase Ordering ANJI network from Source features
CISC673 – Optimizing Compilers34/34 LLVM Open Source Compiler Modular Design Easy to work with All Optimizations are interchangeable
CISC673 – Optimizing Compilers35/34 Questions Most of the files and this presentation have been uploaded to