kai
aa4fe6a748
Remove DMDV1 and DMDV2.
2013-03-06 18:18:00 +01:00
David Nadlinger
0a96aea868
Sort includes according to style guidelines:
...
1. Main include corresponding to .cpp file, if any.
2. DMD and LDC includes.
3. LLVM includes.
4. System includes.
Also updated a few include guards to match the default format.
2013-02-07 21:20:55 +01:00
kai
a11459bc31
"The Great Renaming" continues.
...
More changes to match the renamed files of LLVM 3.3.
2013-01-06 17:17:30 +01:00
kai
272e7b7a55
Follow "The Great Renaming" in LLVM 3.3
...
This time VMCore was renamed to IR. Several top level include
files were moved to new subfolder IR.
2013-01-03 08:52:23 +01:00
Evangelos Foutras
984207e348
Fix llvm/IRBuilder.h include when using LLVM 3.2
2012-12-25 04:58:25 +02:00
David Nadlinger
8880645bf6
Typo fix.
...
Turns out I still had USE_METADATA=OFF in the CMake cache when
testing the previous commit.
2012-12-24 02:22:40 +01:00
David Nadlinger
a0971b7c4b
Use more portable integer log from LLVM.
2012-12-24 02:05:06 +01:00
David Nadlinger
8094e3c21b
dgc2stack: Added size limit for stack promotion.
2012-12-23 21:20:55 +01:00
kai
5f37ae30cf
LLVM 3.3: class Attributes is renamed to Attribute.
...
Some other renamings took place in "llvm/Attributes.h" but only this causes
compile errors in LDC.
Also uses new location of "llvm/IRBuilder.h".
2012-12-21 17:32:17 +01:00
David Nadlinger
7be9c5c5c7
dgc2stack: LLVM 3.2 compatibility.
2012-12-20 23:52:25 +01:00
David Nadlinger
8913898b5e
dgc2stack: Demote LLVM "tail" calls when promoting an allocation.
...
Referencing alloca'd memory in tail calls is invalid IR. This was
not caught by the verifier, but produced misoptimizations due to
wrong alias analysis results.
2012-12-20 23:52:25 +01:00
David Nadlinger
bc541a4421
Added D2/druntime support to gc2stack.
2012-12-20 23:52:25 +01:00
David Nadlinger
ebbbfdd4ac
Metadata/gc2stack compile fixes to accomodate LLVM API changes.
2012-12-20 23:52:24 +01:00
David Nadlinger
1bb14c45d2
Removed trailing whitespace.
2012-12-16 17:19:15 +01:00
David Nadlinger
9458911839
Added LLVM-style license headers to all our files.
2012-12-16 17:19:14 +01:00
kai
a7c7b514c0
Add changes for LLVM 3.2
...
- The Attributes class was changed again
- TargetData was renamed to DataLayout
Compiles again with LLVm 3.0, 3.1 and trunk(3.2).
2012-10-13 18:54:42 +02:00
kai
dbb5a34eda
Add changes for LLVM 3.2.
2012-07-29 17:31:50 +02:00
Alexey Prokhin
629f13929e
WIP: port to llvm 3.0
2011-10-25 15:43:39 +04:00
Robert Clipsham
2234264acf
Merged klickverbot's off-by-one fixes for D optimisation passes. Thanks.
2011-01-05 23:39:32 +00:00
Kelly Wilson
11cbacf9da
Fix for ticket #440 by klickverbot. Thx.
2011-01-02 00:42:10 -05:00
Alexey Prokhin
4d7a6eda23
Different fixes for d2
2010-10-07 22:35:32 +04:00
Moritz Warning
c151d37365
fixes #434 :: add llvm 2.8 support
2010-10-23 13:38:26 +02:00
Tomas Lindquist Olsen
1fac40d2bd
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.
2010-05-19 12:42:32 +02:00
Benjamin Kramer
8b6f11938a
Kill off StripMetaData.
2009-08-25 21:35:43 +02:00
Benjamin Kramer
c220dcac05
IntegerType is now contextifed.
...
Requires llvm >= 78969. resistor says this will be the last context API change :)
2009-08-14 00:39:18 +02:00
Benjamin Kramer
0a1d467ac7
getTrue/getFalse were moved back to ConstantInt
...
Requires LLVM >= r77685
2009-07-31 19:11:07 +02:00
Tomas Lindquist Olsen
d5d3ecdb05
Added back option to disable metadata generation and users. Set USE_METADATA to OFF in ccmake.
2009-07-31 11:28:31 +02:00
Benjamin Kramer
e34f07505b
use the new NamedMDNode class
...
this will need a LLVM >= r77619
2009-07-30 20:54:03 +02:00
Benjamin Kramer
66101517d7
LLVMContext changes up to r77366
2009-07-30 15:25:10 +02:00
Benjamin Kramer
3f0a0686a8
Value::getNameStart and Value::getNameLength were removed
2009-07-23 20:34:35 +02:00
Benjamin Kramer
27a9f93767
DOUT is deprecated, use DEBUG(errs()) instead
2009-07-27 11:44:01 +02:00
Benjamin Kramer
a398cd39b3
ConstantInt::get{True,False} moved to LLVMContext
...
Non-breaking build fix for LLVM r76533. Also fixes a context related
bug in GarbageCollect2Stack.
2009-07-21 13:11:39 +02:00
Benjamin Kramer
51c02d192a
Some minor cleanups
...
* remove an #ifdef USE_METADATA I accidently left in
* remove now unneeded llvm-version includes
* fix indentation in metadata.h
* prevent the "Found native target" message from interrupting ccmake
2009-07-20 18:16:11 +02:00
Benjamin Kramer
d7049de966
More factory methods moved to LLVMContext
2009-07-15 18:09:41 +02:00
Benjamin Kramer
076ef17159
Build fix for LLVM r75546 and r75559
2009-07-14 02:19:05 +02:00
Benjamin Kramer
0ee2f34611
Don't use llvm::getGlobalContext() anymore
2009-07-13 20:16:15 +02:00
Benjamin Kramer
8576788245
Get rid of USE_METADATA
2009-07-11 14:19:21 +02:00
Benjamin Kramer
45f7401a5b
Remove all of the now unecessary #if LLVM_REV
2009-07-11 14:09:33 +02:00
Christian Kamm
756a2cb2a1
Adjust LDC to work with the LLVMContext LLVM changes.
...
This means we now require a fairly new LLVM revision. I use 75234.
2009-07-10 21:30:02 +02:00
Frits van Bommel
5ecdf1a70a
Eliminate comparisons between GC allocations and constants. This removes some
...
`assert(this !is null)`s when member functions get inlined.
Also tweak pass order a bit.
2009-06-20 14:28:59 +02:00
Christian Kamm
8bcc2d9b3f
Increment the iterator before deleting redundant functions or globals in the StripExternals pass.
2009-06-11 21:48:10 +02:00
Frits van Bommel
1f7a2a7884
Teach stack promotion to walk the CFG when a potential reuse of an allocation
...
is found to see if it can actually happen instead of just assuming it will.
This allows it to catch cases like
{{{
int i;
Foo f;
while (cond(i))
f = new Foo(i++);
return f.value;
}}}
where it previously wouldn't because a phi using the allocation would appear in
the condition block to propagate it to the use after the loop.
2009-06-11 02:04:44 +02:00
Frits van Bommel
9ba306a42f
Oops, I accidentally pushed r1486 before the last touches were committed.
2009-06-08 13:52:45 +02:00
Frits van Bommel
b999f679a7
Teach -dgc2stack to promote GC allocations in simple loops to stack
...
allocations too. (A "simple" loop is one where the allocation isn't used in a
subsequent iteration)
This also means it's no longer necessary to run this pass multiple times.
Running it once after inlining should now catch all cases.
2009-06-08 12:35:55 +02:00
Frits van Bommel
96650855ed
Add a pass to strip the bodies of available_externally functions so string
...
literals and `TypeInfo`s only referenced by them can be deleted by `-globaldce`.
2009-06-07 16:00:13 +02:00
Frits van Bommel
c8b10643f9
Add some missing returns.
2009-05-30 23:48:22 +02:00
Frits van Bommel
a24a2201f1
Teach -dgc2stack to preserve the call graph. This should allow for more
...
efficient execution by the pass manager.
2009-05-28 02:14:01 +02:00
Benjamin Kramer
46b200a4ed
silence a gcc warning
2009-05-16 13:50:44 +02:00
Tomas Lindquist Olsen
f5d635dfc7
Adds explicit alignment information for alloca instructions in general, there's a few cases that still needs to be looked at but this should catch the majority. Fixes ticket #293 .
2009-05-14 13:26:40 +02:00
Frits van Bommel
e4e07baf87
Re-enable consistency check for fixed LLVM versions.
2009-05-11 15:48:33 +02:00