Date: Sat, 18 Nov 2000 09:19:35 -0600 (CST)
From: Vikram Adve <vadve@cs.uiuc.edu>
To: Chris Lattner <lattner@cs.uiuc.edu>
Subject: a few thoughts

I've been mulling over the virtual machine problem and I had some
thoughts about some things for us to think about discuss:

1. We need to be clear on our goals for the VM.  Do we want to emphasize
   portability and safety like the Java VM?  Or shall we focus on the
   architecture interface first (i.e., consider the code generation and
   processor issues), since the architecture interface question is also
   important for portable Java-type VMs?

   This is important because the audiences for these two goals are very
   different.  Architects and many compiler people care much more about
   the second question.  The Java compiler and OS community care much more
   about the first one.

   Also, while the architecture interface question is important for
   Java-type VMs, the design constraints are very different.


2. Design issues to consider (an initial list that we should continue
   to modify).  Note that I'm not trying to suggest actual solutions here,
   but just various directions we can pursue:

   a. A single-assignment VM, which we've both already been thinking about.

   b. A strongly-typed VM.  One question is do we need the types to be
      explicitly declared or should they be inferred by the dynamic compiler?

   c. How do we get more high-level information into the VM while keeping
      to a low-level VM design?

        o  Explicit array references as operands?  An alternative is
           to have just an array type, and let the index computations be
           separate 3-operand instructions.

        o  Explicit instructions to handle aliasing, e.g.s:
           -- an instruction to say "I speculate that these two values are not
              aliased, but check at runtime", like speculative execution in
              EPIC?
           -- or an instruction to check whether two values are aliased and
              execute different code depending on the answer, somewhat like
              predicated code in EPIC

        o  (This one is a difficult but powerful idea.)
           A "thread-id" field on every instruction that allows the static
           compiler to generate a set of parallel threads, and then have
           the runtime compiler and hardware do what they please with it.
           This has very powerful uses, but thread-id on every instruction
           is expensive in terms of instruction size and code size.
           We would need to compactly encode it somehow.

           Also, this will require some reading on at least two other
           projects:
                -- Multiscalar architecture from Wisconsin
                -- Simultaneous multithreading architecture from Washington

        o  Or forget all this and stick to a traditional instruction set?


BTW, on an unrelated note, after the meeting yesterday, I did remember
that you had suggested doing instruction scheduling on SSA form instead
of a dependence DAG earlier in the semester.  When we talked about
it yesterday, I didn't remember where the idea had come from but I
remembered later.  Just giving credit where its due...

Perhaps you can save the above as a file under RCS so you and I can
continue to expand on this.

--Vikram

