SUMMARY
-------

We met to discuss the LLVM instruction format and bytecode representation:

ISSUES RESOLVED
---------------

1. We decided that we shall use a flat namespace to represent our 
   variables in SSA form, as opposed to having a two dimensional namespace
   of the original variable and the SSA instance subscript.

ARGUMENT AGAINST:
   * A two dimensional namespace would be valuable when doing alias 
     analysis because the extra information can help limit the scope of
     analysis.

ARGUMENT FOR:
   * Including this information would require that all users of the LLVM
     bytecode would have to parse and handle it.  This would slow down the
     common case and inflate the instruction representation with another
     infinite variable space.

REASONING:
   * It was decided that because original variable sources could be
     reconstructed from SSA form in linear time, that it would be an
     unjustified expense for the common case to include the extra
     information for one optimization.  Alias analysis itself is typically
     greater than linear in asymptotic complexity, so this extra analaysis
     would not affect the runtime of the optimization in a significant
     way.  Additionally, this would be an unlikely optimization to do at
     runtime.


IDEAS TO CONSIDER
-----------------

1. Including dominator information in the LLVM bytecode
   representation.  This is one example of an analysis result that may be
   packaged with the bytecodes themselves.  As a conceptual implementation 
   idea, we could include an immediate dominator number for each basic block
   in the LLVM bytecode program.  Basic blocks could be numbered according
   to the order of occurance in the bytecode representation.

2. Including loop header and body information.  This would facilitate
   detection of intervals and natural loops.

UNRESOLVED ISSUES 
----------------- 

1. Will oSUIF provide enough of an infrastructure to support the research
   that we will be doing?  We know that it has less than stellar
   performance, but hope that this will be of little importance for our
   static compiler.  This could affect us if we decided to do some IP
   research.  Also we do not yet understand the level of exception support
   currently implemented.

2. Should we consider the requirements of a direct hardware implementation
   of the LLVM when we design it?  If so, several design issues should
   have their priorities shifted.  The other option is to focus on a
   software layer interpreting the LLVM in all cases.

3. Should we use some form of packetized format to improve forward
   compatibility?  For example, we could design the system to encode a
   packet type and length field before analysis information, to allow a
   runtime to skip information that it didn't understand in a bytecode
   stream.  The obvious benefit would be for compatibility, the drawback
   is that it would tend to splinter that 'standard' LLVM definition.

4. Should we use fixed length instructions or variable length
   instructions?  Fetching variable length instructions is expensive (for
   either hardware or software based LLVM runtimes), but we have several
   'infinite' spaces that instructions operate in (SSA register numbers,
   type spaces, or packet length [if packets were implemented]).  Several
   options were mentioned including: 
     A. Using 16 or 32 bit numbers, which would be 'big enough'
     B. A scheme similar to how UTF-8 works, to encode infinite numbers
        while keeping small number small.
     C. Use something similar to Huffman encoding, so that the most common
        numbers are the smallest.

-Chris

