Presentation is loading. Please wait.

Presentation is loading. Please wait.

CISC 673 : Optimizing Compilers Dept of Computer & Information Sciences University of Delaware JikesRVM.

Similar presentations


Presentation on theme: "CISC 673 : Optimizing Compilers Dept of Computer & Information Sciences University of Delaware JikesRVM."— Presentation transcript:

1 CISC 673 : Optimizing Compilers Dept of Computer & Information Sciences University of Delaware JikesRVM

2 CISC 673 : Optimizing Compilers Contents Introduction to JikesRVM Optimizations IRs (Intermediate Representations) Editing JikesRVM Steps For Project1 Questions

3 CISC 673 : Optimizing Compilers Introduction to JikesRVM This is not a Java source compiler. JikesRVM is a Virtual Machine. Open Source. Converts from Byte code  Machine Code

4 CISC 673 : Optimizing Compilers Functions of the RVM Loads class files Converts Bytecode  IR  machine code Optimizes code in IR Runs the code. Tracks Compilation time and provides rudimentary profiling.

5 CISC 673 : Optimizing Compilers Compilation Download the gz file from source forge http://downloads.sourceforge.net/jikesrvm/jikesrvm- 3.0.1.tar.bz2 by using the command wget Untar the file “tar –zxf jikesrvm-3.0.1.tar.bz2” Inside the jikesrvm directory create a new.ant.properties file http://www.cis.udel.edu/~skulkarn/ta_files/.ant.properties

6 CISC 673 : Optimizing Compilers Compilation II Inside this directory run “ant” and this would create the executable image of the JikesRVM. Binaries are stored in (jikesrvm- 3.0.1/dist/FastAdaptiveGenMS_x86_64-linux) folder Compile your source code with javac Run using the “rvm” script present in the above folder. You may want to add this directory to the PATH environment variable.

7 CISC 673 : Optimizing Compilers Optimization There are different levels of optimizations from O0 to O3. List of optimizations that are performed in all the different optimization levels are available at http://www.cis.udel.edu/~skulkarn/ta_files/OptLevels.tar.gz In brief no of steps in various optimization levels are: Each level of optimization is a super set of the previous level. O0 44 O153 O253

8 CISC 673 : Optimizing Compilers Intermediate Representations For more information please go thru http://www.ugrad.cs.ubc.ca/~cs411/2006W2/handouts/jikes-IR-shane- brewer.pdf

9 CISC 673 : Optimizing Compilers Editing the JikesRVM Adding of a new command line argument The list of files that govern and define the parameters are at “jikesrvm- 3.0.0/rvm/src-generated/options” I wanted to add a parameter that could switch off multiple optimizations at the same time, so I added “ V LIST_TO_SKIP String \"123\“ List of optimizations to skip ” Remember that the number of new lines also are important. So do not upset those. You will have to clean the previous build by using “ant very-clean” command Build again by “ant” command.

10 CISC 673 : Optimizing Compilers Important source directories Package responsible for choosing the optimizations is org.jikesrvm.compilers.opt.driver OptimizationPlanner.java: is responsible for creating the list of optimizations that the code would go through. CompilationPlan.java: Performs those optimizations in the order that was set in OptimizationPlanner. Actuall implementations of the optimizations can be found under the root package org.jikesrvm.compilers.opt e.g. LocalCastOptimization.java is the implementation LocalCastOptimization.

11 CISC 673 : Optimizing Compilers Questions? Most of the files and this presentation is available at http://www.cis.udel.edu/~skulkarn/ta.html References Presentations: http://jikesrvm.org/presentationshttp://jikesrvm.org/presentations Compiler Optimization Levels: http://jikesrvm.org/Jikes+RVM's+compilers http://jikesrvm.org/Jikes+RVM's+compilers


Download ppt "CISC 673 : Optimizing Compilers Dept of Computer & Information Sciences University of Delaware JikesRVM."

Similar presentations


Ads by Google