Project for CSC 255/455, Spring 2008


In the project, we add our own passes in Gcc at gimple level. Because Gcc is a real compiler, it looks a little more difficult than previous semesters. You have to know the basic framework of Gcc and how to manipulate gimple tree to do the analyses and transformations. The following resources will help you through the problems. Wish you have a good practice with Gcc.

Build up working environment

  • Check out code and install: see Gcc-4.0.1 notes on installation
  • Use qsub -I at node64 to get a node to do the make and install: see ClusterJobs
  • Output gimple tree in c-like form: use option -fdump-tree-gimple


Part 1: Trivial

In this part, we count and output the number of executed statements of a run of a program. So you need to maintain a global counter which is initialized to 0 and increased after each gimple statement and reported when the program exits. Following are the three parts of the intrumented code:
  • Initialization: added at the entry of main function
  • Increasing: added after each statements
  • Report: added at all possible exits of the program

Add and use option -255-part1 to invoke the instrumentation in compilation.

This part is very easy. Its purpose is to make you get familiar with Gcc and concentrate on real stuffs of the class after it.

-- XiaomingGu - 16 Jan 2008

Edit | Attach | Watch | Print version | History: r43 | r8 < r7 < r6 < r5 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r6 - 2008-01-18 - XiaomingGu
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding URCS? Send feedback