Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 68 lines (50 sloc) 1.877 kb
5b13b55 Nick Gasson Stub of elaboration phase
authored
1 //
2 // Copyright (C) 2011 Nick Gasson
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
16 //
17
18 #ifndef _PHASE_H
19 #define _PHASE_H
20
21 #include "tree.h"
22
51efdad Nick Gasson Build a list of drivers associated with a signal
authored
23 // Annotate types and perform other semantics checks on a tree.
24 // Returns false on error.
25 bool sem_check(tree_t t);
26
27 // The number of errors found during the semantic check phase.
28 int sem_errors(void);
29
30 // Enable special mode for analysing STANDARD package
31 void sem_bootstrap_en(bool en);
32
33 // Fold all constant expressions
96a94cc Nick Gasson Add simplification pass
authored
34 void simplify(tree_t top);
51efdad Nick Gasson Build a list of drivers associated with a signal
authored
35
b0df00a Nick Gasson Constant folding for array references
authored
36 // Number of errors found during simplification
37 int simplify_errors(void);
38
51efdad Nick Gasson Build a list of drivers associated with a signal
authored
39 // Find all drivers associated with signals
40 void driver_extract(tree_t top);
41
42 // Number of errors found during driver extraction
43 int driver_errors(void);
44
45 // Elaborate a top level entity
5b13b55 Nick Gasson Stub of elaboration phase
authored
46 tree_t elab(tree_t top);
51efdad Nick Gasson Build a list of drivers associated with a signal
authored
47
48 // Generate LLVM bitcode for an elaborated design
b84e2af Nick Gasson Stub of code generation
authored
49 void cgen(tree_t top);
5b13b55 Nick Gasson Stub of elaboration phase
authored
50
51efdad Nick Gasson Build a list of drivers associated with a signal
authored
51 // Toggle LLVM optimisations on and off
ca6ccfa Nick Gasson Add option to disable LLVM optimiser
authored
52 void cgen_optimise_en(bool en);
adbe7eb Nick Gasson Improvements to aggregate code generation
authored
53 void link_optimise_en(bool en);
ca6ccfa Nick Gasson Add option to disable LLVM optimiser
authored
54
dcc202b Nick Gasson Add command line option to dump generated LLVM IR
authored
55 // Toggle dumping of generated LLVM IR
56 void cgen_dump_en(bool on);
57
a951064 Nick Gasson Add dump command for debugging
authored
58 // Dump out a VHDL representation of the given unit
59 void dump(tree_t top);
60
931eb89 Nick Gasson Add optimisation pass to collapse signals
authored
61 // Optimise elaborated design
62 void opt(tree_t top);
63
2659c18 Nick Gasson Add bitcode linking phase for package bodies
authored
64 // Link together bitcode packages with elaborated design
65 void link_bc(tree_t top);
66
5b13b55 Nick Gasson Stub of elaboration phase
authored
67 #endif // _PHASE_H
Something went wrong with that request. Please try again.