Mercurial > projects > ldc
annotate gen/optimizer.h @ 1650:40bd4a0d4870
Update to work with LLVM 2.7.
Removed use of dyn_cast, llvm no compiles
without exceptions and rtti by
default. We do need exceptions for the libconfig stuff, but rtti isn't
necessary (anymore).
Debug info needs to be rewritten, as in LLVM 2.7 the format has
completely changed. To have something to look at while rewriting, the
old code has been wrapped inside #ifndef DISABLE_DEBUG_INFO , this means
that you have to define this to compile at the moment.
Updated tango 0.99.9 patch to include updated EH runtime code, which is
needed for LLVM 2.7 as well.
author | Tomas Lindquist Olsen |
---|---|
date | Wed, 19 May 2010 12:42:32 +0200 |
parents | d9c5f5a43403 |
children |
rev | line source |
---|---|
1173
b0f9652f31de
Forgot to commit this file, sorry
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
1 #ifndef LDC_GEN_OPTIMIZER_H |
b0f9652f31de
Forgot to commit this file, sorry
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
2 #define LDC_GEN_OPTIMIZER_H |
b0f9652f31de
Forgot to commit this file, sorry
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
3 |
b0f9652f31de
Forgot to commit this file, sorry
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
4 namespace llvm { class Module; } |
b0f9652f31de
Forgot to commit this file, sorry
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
5 |
b0f9652f31de
Forgot to commit this file, sorry
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
6 bool ldc_optimize_module(llvm::Module* m); |
b0f9652f31de
Forgot to commit this file, sorry
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
7 |
1482
d9c5f5a43403
Run `semantic3` on imported modules, and emit new symbols with
Frits van Bommel <fvbommel wxs.nl>
parents:
1174
diff
changeset
|
8 // Determines whether the inliner will run in the -O<N> list of passes |
1173
b0f9652f31de
Forgot to commit this file, sorry
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
9 bool doInline(); |
1482
d9c5f5a43403
Run `semantic3` on imported modules, and emit new symbols with
Frits van Bommel <fvbommel wxs.nl>
parents:
1174
diff
changeset
|
10 // Determines whether the inliner will be run at all. |
d9c5f5a43403
Run `semantic3` on imported modules, and emit new symbols with
Frits van Bommel <fvbommel wxs.nl>
parents:
1174
diff
changeset
|
11 bool willInline(); |
1173
b0f9652f31de
Forgot to commit this file, sorry
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
12 |
b0f9652f31de
Forgot to commit this file, sorry
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
13 int optLevel(); |
b0f9652f31de
Forgot to commit this file, sorry
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
14 |
b0f9652f31de
Forgot to commit this file, sorry
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
15 bool optimize(); |
b0f9652f31de
Forgot to commit this file, sorry
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
16 |
1174
0b26cfb2d445
Add newlines to end of file.
Christian Kamm <kamm incasoftware de>
parents:
1173
diff
changeset
|
17 #endif |
0b26cfb2d445
Add newlines to end of file.
Christian Kamm <kamm incasoftware de>
parents:
1173
diff
changeset
|
18 |