Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Annotation of /branches/charisee/src/compiler/gen/il/high-il.spec
ViewVC logotype

Annotation of /branches/charisee/src/compiler/gen/il/high-il.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2389 - (view) (download)

1 : jhr 186 # specification of operators for HighIL version of the IR. Each line (other than comments)
2 : jhr 1640 # specifies an operator using five fields, which are separated by ":". The fields are
3 : jhr 186 # name
4 :     # argument type (optional)
5 : jhr 1640 # result arity
6 : jhr 186 # arity
7 :     # comment (optional)
8 :     #
9 : jhr 2356 # Operations with effects are denoted by a "!" as the first character of the line.
10 :     #
11 : jhr 186 # type-indexed arithmetic operations
12 : jhr 2389 IAdd : : 1 : 2 : integer addition
13 :     ISub : : 1 : 2 :
14 :     IMul : : 1 : 2 :
15 :     IDiv : : 1 : 2 :
16 :     INeg : : 1 : 1 :
17 : jhr 1640 Abs : ty : 1 : 1 :
18 :     LT : ty : 1 : 2 :
19 :     LTE : ty : 1 : 2 :
20 :     EQ : ty : 1 : 2 :
21 :     NEQ : ty : 1 : 2 :
22 :     GT : ty : 1 : 2 :
23 :     GTE : ty : 1 : 2 :
24 :     Power : : 1 : 2 : raise real to integer power
25 :     Not : : 1 : 1 : boolean negation
26 :     Max : : 1 : 2 :
27 :     Min : : 1 : 2 :
28 : jhr 1295 # Clamp<ty>(lo, hi, x) -- clamps x to the range lo..hi
29 : jhr 1640 Clamp : ty : 1 : 3 : clamp argument to range
30 : jhr 1116 # Lerp<ty>(a, b, t) -- computes a + t*(b-a)
31 : jhr 1640 Lerp : ty : 1 : 3 : linear interpolation between 0 and 1
32 : jhr 1116 # Norm<ty>(x) -- returns the norm of the tensor x, which has type ty
33 : jhr 1640 Norm : ty : 1 : 1 :
34 :     Normalize : ty : 1 : 1 :
35 :     PrincipleEvec : ty : 1 : 2 : principle eigenvector; ty is result vector type
36 :     Eigen2x2 : : 1 : 1 : Eigenvector and values for 2x2 matrix
37 :     Eigen3x3 : : 1 : 1 : Eigenvector and values for 3x3 matrix
38 :     Slice : ty * mask : 1 : 1 : tensor slice; type is tensor argument type
39 :     TensorSub : ty : 1 : * : tensor subscript (special case of slice)
40 : jhr 186 #
41 : jhr 1640 # tuple and sequence operations
42 :     Select : ty * int : 1 : 1 : select field from tuple value
43 :     SeqSub : ty : 1 : 2 : index a sequence
44 :     #
45 : jhr 186 # conversions
46 : jhr 1640 IntToReal : : 1 : 1 :
47 :     TruncToInt : : 1 : 1 :
48 :     RoundToInt : : 1 : 1 :
49 :     CeilToInt : : 1 : 1 :
50 :     FloorToInt : : 1 : 1 :
51 : jhr 186 #
52 :     # image/field operations
53 : jhr 1640 Kernel : Kernel.kernel * int : 1 : 0 : Kernel<h, k>, where h is the kernel and k is level of differentiation
54 :     LoadImage : ImageInfo.info : 1 : 1 : image-file loading
55 :     Inside : int : 1 : 2 : args are position, field
56 : jhr 226 #
57 :     # inputs
58 : jhr 1640 Input : ty * string * string : 1 : 0 :
59 :     InputWithDefault : ty * string * string : 1 : 1 :
60 :     #
61 :     # printing support for debugging
62 : jhr 2356 !Print : tys : 0 : * : print strings

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0