f420d03c387b344c43b0ecf744463450f2e60c83
[fleet.git] / src / edu / berkeley / fleet / ir / CodeBag.java
1 package edu.berkeley.fleet.ir;
2 import edu.berkeley.fleet.loops.*;
3 import java.util.*;
4 import java.net.*;
5 import edu.berkeley.fleet.two.*;
6 import edu.berkeley.fleet.api.*;
7 import edu.berkeley.fleet.api.Instruction.*;
8 import edu.berkeley.fleet.api.Instruction.Set;
9 import edu.berkeley.fleet.api.Instruction.Set.*;
10 import static edu.berkeley.fleet.util.BitManipulations.*;
11
12 /**
13  *  A CodeBag represents the instructions of a Context along with
14  *  (compile-time) knowledge of where it resides
15  */
16 public class CodeBag {
17
18     /*
19
20                          SF         works       works @diff    ok for non   size    ships
21 Dispatch Method       Crossings     @inbox?       docks?       tail call?   limit   consumed
22 ------------------------------------------------------------------------------------------
23
24 Inline                    0           Y              N             N        Small  None
25
26 Inline literals           1           N              Y             Y        Tiny   None
27  w/ "dispatch"
28
29 Send CBD to               2+          N              Y             Y        None   None (mem ship)
30 memory ship
31
32 Send token to             3+          Y              Y             Y        None   One Output Dock
33 assistant outbox first
34
35 Release from FIFO         2           Y              Y             Y        Med    1x FIFO, but can be shared
36
37
38      */
39
40 }