----------------------------------------
CODE GENERATOR FRAMEWORK CONTENTS
----------------------------------------
1. Overview

2. Code Generator source

3. Debugging 

4. Building

5. Executing

6. Work In Progress
****************************************
1. Overview
****************************************
This tool allows a user to generate the code from the trace 
of an MPI application traced by the recording framework.
This framework reads in a comprehensive trace and 
uses only one process to read the trace information of all
ranks to generate the code back from these traces.
 
****************************************
2. Code Generator source
****************************************
replay.c - Location of main function.  This reads in 
a trace file and calls appropriate trace traversal
function based on the trace's format.

op_generator.c - Utility functions that replay.c uses
to generate code back from compressed traces.  This excludes parsing 
the input file (done in rsd_reader.c) and
traversal of the operation queues (done in prsd_traverse.c)

****************************************
3. Debugging
****************************************
See the usage of macro DEBUG in replay.c. This is primarily
used to verify correctness of the trace parser.

****************************************
4. Building
****************************************
Set all compiler options in Makefile and enter the 
command: "make".

Dependencies :
 - For stack signatures, we use libstackwalk ( ../../stackwalk)

****************************************
5. Executing 
****************************************
To generate code: ./generator -p <trace dir> where <trace dir>
specifies the directory of the trace.  The trace itself
must be named '0'.  

****************************************
6. Work In Progress
****************************************
This initial part of the work deals with MPI-IO and
generating code back from traces collected for small 
micro-benchmarks dealing with MPI-IO. To generate code
for other MPI calls, op_generator.c file has to be modified.
To test code generation, please use micro-benchmarks coll_perf.c
and mpiio_singlefile.c located in ../../record/tests/ folder.

Future Work:
- All unimplemented MPI calls have to be included.
- Several complex scenarios like handling irregular
  communication pattern and vector representation of
  communication parameters have to be dealt before 
  using NAS benchmark.
