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

SCM Repository

[diderot] Annotation of /trunk/src/compiler/README
ViewVC logotype

Annotation of /trunk/src/compiler/README

Parent Directory Parent Directory | Revision Log Revision Log


Revision 430 - (view) (download)

1 : jhr 325 This directory contains the sources of Diderot compiler. The compiler is
2 :     organized into a series of passes, each of which takes a Diderot program
3 :     in some representation and produces a new representation. Here is a summary
4 :     of the passes:
5 :    
6 :     1) Scanning and parsing
7 :     This phase scans and parses the Diderot source program.
8 :     (see parser)
9 :    
10 :     2) Typechecking
11 :     This phase takes the parse tree and typechecks it, producing a typed
12 :     AST representation.
13 :     (see ast, basis, parser, typechecker)
14 :    
15 :     3) Simplification
16 :     This takes the Typed AST representation and produces the Simple AST
17 :     representation. Simple AST only allows simple expressions over
18 :     variables. This phase is also responsible for determining which
19 :     global variables are static and evaluating them to. The main purpose
20 :     of the static evaluation is to get the image summary information from
21 :     dnorm.
22 :     (see ast, simplify)
23 :    
24 :     4) Translation to HighIL
25 :     This pass takes the Simple AST representation and translates it to
26 :     HighIL representation, which is a block-structured SSA representation.
27 :     (see basis, high-il, IL, simplify, translation)
28 :    
29 :     5) HighIL optimization
30 : jhr 430 The HighIL optimization phase is mostly a normalization phase that
31 :     lifts static computations to the global level and eliminates
32 :     dynamic field, kernel, and image values (i.e., statically resolves
33 :     them).
34 : jhr 325 (see high-il, high-il-opt, IL)
35 :    
36 :     6) Translation to MidIL
37 : jhr 430 This pass translates the HighIL representation to MidIL. The main
38 :     purpose of this step is to replace fields with convolved images.
39 :     The MidIL includes operations to transform world-space positions
40 :     to image-space, to load voxels from images, and to evaluate kernels.
41 :     The MidIL representation supports vector operations, but tensors
42 :     with order > 1 are flattened.
43 : jhr 325 (see high-il, high-to-mid, IL, mid-il)
44 :    
45 :     7) MidIL optimization
46 :     *** Not implemented yet ***
47 :     (see mid-il, mid-il-opt, IL)
48 :    
49 :     6) Translation to LowIL
50 :     *** Not implemented yet ***
51 :     (see IL, low-il, mid-il, mid-to-low)
52 :    
53 :     7) LowIL optimization
54 :     *** Not implemented yet ***
55 :     (see IL, low-il, low-il-opt)
56 :    
57 :     8) Code generation
58 :     *** Not implemented yet ***
59 : jhr 430 (see IL, low-il, c-target, codegen)
60 : jhr 325
61 :     And here is a roadmap of the subdirectories:
62 :    
63 :     IL - The generic IL modules that are used for the HighIL,
64 :     MidIL, and LowIL representations.
65 :     IL/gen - A simple program generator for the IL modules.
66 :     ast - The typed AST representation
67 :     basis - The definition of the Diderot Basis environment
68 : jhr 430 c-target - Backend support for generating C code.
69 :     codegen - Generic code-generation infrastructure
70 : jhr 325 common - Various miscellaneous utility modules
71 :     driver - The driver glues the various phases together
72 :     env - The environment representation used in typechecking
73 :     fields - Internal representations of image info, kernels, and
74 :     fields
75 :     high-il - The HighIL representation
76 :     high-to-mid - The HighIL to MidIL translation phase
77 :     low-il - The LowIL representation
78 :     mid-il - The MidIL representation
79 : jhr 430 mid-to-low - The MidIL to LowIL translation phase
80 : jhr 325 parser - The parser, scanner, and parse-tree representation.
81 :     simplify - Contains the Simple AST representation and the
82 :     simplification phase.
83 :     translate - The translation from Simple AST to High IL
84 :     typechecker - The typechecker
85 :    

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