Changes between Version 4 and Version 5 of The MiniMP Intermediate Representation
- Timestamp:
- 01/08/10 16:52:42 (16 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
The MiniMP Intermediate Representation
v4 v5 7 7 Each process contains a number of process variables, and a number of functions. One of the functions is designated the "main" function (though that function's name does not have to be "main"). In particular, every process must contain at least one function. 8 8 == Variables == 9 There are four different scopes to which a variable may belong. 10 * !SharedVariable 11 12 Shared scope includes all input and output variables, and general shared variables; these are variables that can be accessed by any process. 13 * !ProcessVariable 14 15 Process variables have the scope of one process; they can be accessed by any function in that process. 16 * !LocalVariable 17 18 Local variables are local to a specific function in a specific process. They can only be accessed within the function body. 19 * !FormalVariable 20 21 Formal variables are the formal parameters to a function. They are a special type of local variable. 9 22 * !BoundVariable 10 * !FormalVariable 11 * !LocalVariable 12 * !ProcessVariable 13 * !SharedVariable 23 24 Bound variables are specific to an expression; these are variables from forall and exists statements. 25 14 26 == Types == 15 27 * !ArrayType … … 33 45 * !QuantifierExpression 34 46 * !VariableExpression 47 == Locations == 48 The locations fall into a number of categories, for the most part corresponding to the kinds of statements that can emanate from that location. Some locations only allow one outgoing statement, while others allow several, and others none. 49 * !AllocateLocation 50 * !AssertionLocation 51 * !AssignmentLocation 52 * !AssumeLocation 53 * !BranchLocation 54 * !ChoiceLocation 55 * !DeallocateLocation 56 * !ForLoopLocation 57 * !InvocationLocation 58 * !ReceiveLocation 59 * !ReturnLocation 60 * !SendLocation 61 * !TerminalLocation 35 62 == Statements == 63 Each statement has a single source location and a single destination location. 36 64 * !AllocateStatement 37 65 * !AssertionStatement
