• Adam Nelson's avatar
    Atomic memory cells and operations for WMM/RISC-V · 59737ac5
    Adam Nelson authored
    - Memory and registers are split up into typed atomic cells
    - Value type now contains only scalar values
    - Instructions are compiled down to WMM "operations", allowing stores
      and loads of composite values to be split up into atomic parts
    - Scheduler now executes one operation at a time, rather than one block
      at a time
    - New scheduler steps for WMM
    - Commands (formerly Thread Actions) such as allocation now executed at
      the global scheduler level. Action IDs no longer needed.
    - Threads and stacks changed completely; registers now stored in stack
      frames
    - Monads pretty-print properly again!
    - Patricia trees replaced with sptrees
    
    Lots of code is still commented out, and tests still don't work, but
    the main formalization code compiles.
    59737ac5
uvmSchedulerScript.sml 41.4 KB