firm.h 3.69 KB
Newer Older
Götz Lindenmaier's avatar
Götz Lindenmaier committed
1
/*
Michael Beck's avatar
Michael Beck committed
2
 * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 *
 * This file is part of libFirm.
 *
 * This file may be distributed and/or modified under the terms of the
 * GNU General Public License version 2 as published by the Free Software
 * Foundation and appearing in the file LICENSE.GPL included in the
 * packaging of this file.
 *
 * Licensees holding valid libFirm Professional Edition licenses may use
 * this file in accordance with the libFirm Commercial License.
 * Agreement provided with the Software.
 *
 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE.
Götz Lindenmaier's avatar
Götz Lindenmaier committed
18
 */
Michael Beck's avatar
Michael Beck committed
19
20

/**
21
22
23
24
 * @file
 * @brief     Central firm header.
 * @author    Martin Trapp, Christian Schaefer, Goetz Lindenmaier
 * @version   $Id$
yb9976's avatar
yb9976 committed
25
 * @brief
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 *  Central FIRM header.
 *
 *  FIRM is a full graph based intermediate representation in SSA Form
 *  with a novel concept to model side effects.  It allows fast, aggressive
 *  optimizations.
 *
 *  This header is the central header of the library implementation of this
 *  IR.
 *
 *  The internal representation of a program in firm is separated into five
 *  different modules:
 *   - Firm Graphs representing the code of a program. (Subdirectory ir.)
 *     Firm Graphs are assembled out of several data structures:
 *     irprog: represents a program.  Allows access to all types and all
 *       FIRM graphs for procedures and other global things.
 *     irgraph: represents a procedure.  Allows access to the code of the
 *       procedure, the actual FIRM graph.
 *     irnode: A node of a FIRM graph.  Nodes are typed with an opcode and a mode
 *   and represent instructions in a program.
 *     irop: The opcode of FIRM nodes.
 *     irmode: The mode of FIRM nodes.  Most modes correspond to machine known
 *       data types (int, float, pointer).
 *   - Entities representing program known objects. (Subdirectory tr.)
 *     All variables and procedures are entities.
 *   - Types describing the type system for the program. (Subdirectory tr.)
 *   - Target Values representing program known constants. (Subdirectory tv.)
 *   - Identifiers representing any Strings used in the program. (Subdirectory ident.)
 *
 *   Further this library supplies functionality to build and optimize FIRM graphs
 *   and further functionality needed in a compiler.  Finally there is more
 *   generic functionality to support implementations using firm.  (Code generation,
 *   further optimizations).
 */
59
60
#ifndef FIRM_COMMON_FIRM_H
#define FIRM_COMMON_FIRM_H
Christian Schäfer's avatar
Christian Schäfer committed
61

62
63
64
65
66
67
68
#include "analyze_irg_args.h"
#include "be.h"
#include "callgraph.h"
#include "cdep.h"
#include "cgana.h"
#include "dbginfo.h"
#include "execfreq.h"
69
#include "execution_frequency.h"
70
71
72
73
#include "field_temperature.h"
#include "firm_common.h"
#include "firmstat.h"
#include "firm_types.h"
74
#include "heights.h"
75
76
77
78
79
80
81
#include "ident.h"
#include "interval_analysis.h"
#include "irarch.h"
#include "ircgopt.h"
#include "irconsconfirm.h"
#include "ircons.h"
#include "irdom.h"
82
#include "vrp.h"
83
#include "irdump.h"
84
85
86
87
88
89
90
91
92
#include "iredgekinds.h"
#include "iredges.h"
#include "irextbb.h"
#include "irflag.h"
#include "irgmod.h"
#include "irgopt.h"
#include "irgraph.h"
#include "irgwalk.h"
#include "irhooks.h"
93
#include "irio.h"
94
95
96
97
98
99
100
101
102
#include "irloop.h"
#include "irmemory.h"
#include "irmode.h"
#include "irnode.h"
#include "irop.h"
#include "iropt.h"
#include "iroptimize.h"
#include "irouts.h"
#include "irpass.h"
Sebastian Hack's avatar
Sebastian Hack committed
103
#include "irprintf.h"
104
105
106
#include "irprog.h"
#include "irsimpletype.h"
#include "irtypeinfo.h"
107
#include "irverify.h"
108
109
110
111
112
113
114
115
#include "lowering.h"
#include "rta.h"
#include "seqnumbers.h"
#include "structure.h"
#include "timing.h"
#include "trouts.h"
#include "tv.h"
#include "typerep.h"
116

117
#endif