David Nadlinger
c02b38fe9a
Removed LLVM 3.0 compatibility code.
...
There might be still some pieces left here and there, and
there is certainly code that could be rewritten in a nicer
way with the 3.0 requirement out of the picture.
2013-05-31 20:48:38 +02:00
kai
1af71fa536
Fix LLVM 3.4 change to DIBuilder.createFunction().
...
DIBuilder.createFunction() now requires the return type to be of
subroutine type and consequently needs a DICompositeType.
2013-05-24 08:40:48 +02:00
kai
dce378ba75
Return type must be of type DIComposite.
2013-03-23 16:21:21 +01:00
kai
c8d98ad31c
More Dwarf debug code changes.
...
Add a fix for LLVM 3.3 (`createTemporaryType()` was removed) and add
linkage name to `createGlobalVariable()` (new in 3.3).
2013-03-23 15:40:29 +01:00
kai
7d65a311b1
More changes to std::vector usage.
...
Replace with std::vector with static array, llvm::SmallVector or
add code to reserve space.
2013-03-17 23:58:30 +01:00
kai
93c4cf3ea5
Replace more occurances of std::vector with an array.
2013-03-17 00:50:05 +01:00
kai
36be9b5af4
Better encoding of basic types.
...
The new code distinguishes between bool, int, char, float and complex types.
2013-03-16 21:35:03 +01:00
kai
46f8d999c5
Fix a LLVM 3.3 problem with debug info generation.
...
In some cases an assertion is triggered because the debug context of a
local variale is verified. It turns out that LLVM returns always false
for DISubprogram.Verify() if the return type is not a composite type.
Reading the Clang source it looks like the return type must be a
subroutine type. This commit introduces a dummy subroutine type to
define the return type.
2013-03-16 21:09:40 +01:00
kai
1e4a8fffc2
Remove DMDV1 and DMDV2.
2013-03-06 10:20:24 +01:00
kai
7fd4fc81c3
Fix LLVM 3.3 compile errors.
2013-02-25 21:18:10 +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
David Nadlinger
8ff3a8060a
Use llvm_unreachable instead of assert(0).
...
Also removed some unused functions.
2013-02-07 03:38:15 +01:00
David Nadlinger
39e3e3a678
Replace template symbol module fix with more localized hack.
...
This reverts commit c4adbedcc
, which would have fixed the
problem at its roots, but caused strange template function
attribute inference failures in D-YAML, presumably due to
the different order of semantic3 execution on the templates.
2012-12-31 05:46:29 +01:00
David Nadlinger
9458911839
Added LLVM-style license headers to all our files.
2012-12-16 17:19:14 +01:00
kai
2dbee75523
Prefer C++-style casts.
...
This is based on Item 2 of "More Effective C++". In general, the C++ cast operators are more expressive and easy to find,
e.g. by grep. Using const_cast also shuts up some compiler warnings.
2012-08-02 19:55:29 +02:00
kai
b53544b389
Simplify code by using the right type.
...
Removes some comditional compiling by replacing unsigned with llvm::Attributes.
2012-07-29 18:18:36 +02:00
kai
9bf65bc9a2
Start unification of master and llvm-3.1 branch.
2012-07-29 13:50:30 +02:00
Alexey Prokhin
f2ed2e96b0
Use optimized array operators implemented in druntime
2012-02-15 13:16:34 +04:00
Alexey Prokhin
91f4e5d015
Added emission of dwarf lexical blocks.
...
Also, dropped support for DISABLE_DEBUG_INFO definition.
2011-12-04 15:34:35 +04:00
Alexey Prokhin
b8721a8515
Emit debug info for variables that are used in nested functions
2011-12-03 23:45:58 +04:00
Alexey Prokhin
cedb4c0e68
When generating debug info, handle recursive types properly
2011-12-03 14:35:55 +04:00
Alexey Prokhin
6357c421ac
Updated ldc version and homepage
2011-12-03 13:52:05 +04:00
Alexey Prokhin
b97b32759e
Use LLVM Machine Code (MC) to emit object files. Finilize debug info
2011-10-25 15:43:49 +04:00
Alexey Prokhin
629f13929e
WIP: port to llvm 3.0
2011-10-25 15:43:39 +04:00
Alexey Prokhin
3a0dfac597
Fix file paths in debug info
2011-04-30 17:35:40 +04:00
David Nadlinger
8d545a18c1
Fix crash when declaration is coming without Loc from the front-end.
2011-04-20 19:30:43 +02:00
Kelly Wilson
72ea043124
Recommit klickverbot's patch for LLVM-2.9.
2011-04-20 09:28:37 -06:00
Kelly Wilson
7c81278b9c
Backed out changeset 5253bfbb3890
2011-04-20 00:28:23 -06:00
Kelly Wilson
b26b0f4196
Upgrade to LLVM-2.9. Thanks to David Nadlinger for the patch.
2011-04-19 21:57:15 -06:00
Moritz Warning
89aeb05042
apply fixed debug info fix, see #452 ; thanks to sokol
2011-01-14 14:38:38 +01:00
Moritz Warning
9ca6717b5b
revert 1826
2011-01-11 03:15:40 +01:00
Alexey Prokhin
38fe715638
Work on debug
2011-01-08 18:00:04 +03:00
Alexey Prokhin
f8bf67dc6e
Fixed a crash when compiling multiple files in one object file
2010-12-14 14:35:52 +03:00
Alexey Prokhin
c3ea7b27c6
Work on debug
2010-12-14 14:35:48 +03:00
Alexey Prokhin
bca5491974
A few fixes for debug
2010-10-31 12:11:16 +03:00
Alexey Prokhin
d0c7a5a3cb
Ported to new debug information format introduced in llvm 2.7
2010-10-30 20:57:32 +04: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
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
977fa551ee
Push the context through StructType::get.
...
Requires LLVM >= 78258. Also remove old #if's.
2009-08-06 01:47:39 +02:00
Benjamin Kramer
4c5457ba61
getNullValue is in Constant again
...
Requires LLVM >= r77721
2009-07-31 23:01:29 +02:00
Benjamin Kramer
66101517d7
LLVMContext changes up to r77366
2009-07-30 15:25:10 +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
331319dab1
Build fix for the latest LLVMContext changes (LLVM r75445)
...
This shouldn't break the build with older LLVM revs. We include
LLVMContext.h in gen/llvm.h now to make the transition a little bit
easier.
2009-07-13 12:17:58 +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
Christian Kamm
e0331c7b53
Make debug info work with newer LLVM.
2009-06-26 21:00:12 +02:00
Robert Clipsham
f13c5e82f5
Added a stripModifiers() function to remove shared|const|immutable storage classes in D2 (should eventually be moved to a dhelpers file rather than llvm helpers).
...
Replaced a few occurances of STCinvariant with STCimmutable.
2009-06-18 15:44:04 +01:00
Tomas Lindquist Olsen
2690f3cfd8
Add debug info for all class fields, including those from super classes...
2009-05-17 17:55:53 +02:00
Tomas Lindquist Olsen
3aeb56abec
Fixed compile unit for debug info for array operations, fixed ticket #280 .
2009-05-09 15:27:27 +02:00