Commit Graph

3071 Commits

Author SHA1 Message Date
kai
e556882be4 Simplify code for LLVM 3.4.
Introduces a compability function instead of a #if/#endif cascade.
2013-06-16 18:22:45 +02:00
kai
683294cec9 Fix a typo in Linux code. 2013-06-16 17:57:25 +02:00
Kai Nacke
de1c3b7f01 Merge pull request #397 from redstar/llvm34
Make ldc compatible with LLVM 3.4
2013-06-15 11:54:12 -07:00
kai
f1c71e4bac Make ldc compatible with LLVM 3.4
Development of LLVM 3.4 started with a cleanup of the path class (PathV1).
The changes here let ldc compile at least with rev. 184039 of LLVM.
2013-06-15 19:52:29 +02:00
Kai Nacke
fe455fe1a8 Merge pull request #400 from redstar/ldmd34
Make ldmd compatible with LLVM 3.4
2013-06-15 10:51:37 -07:00
kai
9f921b25d9 Make ldmd compatible with LLVM 3.4
Development of LLVM 3.4 started with a cleanup of the path class (PathV1).
The changes here let ldmd compile at least with rev. 184039 of LLVM.
2013-06-15 19:13:45 +02:00
Kai Nacke
03ec8eefbd Merge pull request #399 from redstar/travis
Add LLVM 3.2/3/4 to Travis CI.
2013-06-15 09:18:44 -07:00
kai
2b4744f2f2 Add LLVM 3.2/3/4 to Travis CI.
Changes the Travis CI configuration to use the following packages:
- LLVM 3.1 from precise
- LLVM 3.2 from precise-proposed
- LLVM 3.3 and 3.4 from llvm.org snapshot

LLVM 3.4 builds are allowed to fail because this is a development snaphot.
Reorganizes the cmake command line, too.
2013-06-15 17:24:36 +02:00
kai
32cf5318a4 Add llvm-config-3.4 to list of llvm-config names.
The LLVM 3.4 development ccycle has started. We should be prepared
for a distribution which starts to use this name.
2013-06-15 16:12:09 +02:00
David Nadlinger
981a6af17e Remove dead declaration. 2013-06-12 20:16:05 +02:00
David Nadlinger
5b5ad8e0f7 Add some no-op virtual destructors to silence GCC warning. 2013-06-12 20:16:05 +02:00
David Nadlinger
9a016a1002 Refactor struct initializers codegen.
This not only reduces code duplication, but the unification
also enables code a la StructLiteralExp to handle classes
(for CTFE class constant support in 2.063).
2013-06-12 20:16:05 +02:00
David Nadlinger
2cebe6408c Divided ir/irtypestruct.* in general aggregate and struct specific part.
This is just to improve clarity, as it was rather non-obvious
what of the code also applied to classes before.

IrTypeAggr::createInitializerConstant would currently belong in
IrTypeStruct, but this will be refactored anyway.
2013-06-12 17:17:09 +02:00
David Nadlinger
abc6c147dc Fix potential latent struct initialization bug.
Apparently the initializer array never was actually
unsorted so far.
2013-06-12 17:16:52 +02:00
David Nadlinger
5dadec2e70 Remove raw address from log output.
Makes comparing logs harder.
2013-06-12 17:16:46 +02:00
David Nadlinger
55d7fc708e Remove leftover declaration. 2013-06-12 17:16:39 +02:00
David Nadlinger
f2f3c751b3 Renamed IrStruct to IrAggr, as it is also used for classes.
The class-specific parts should probably be factored out.
2013-06-12 17:16:35 +02:00
David Nadlinger
28f39cbdad Remove superfluous Expression::toConstElem overrides.
The error message can be printed by the non-overridden
Expression::toConstElem just as well.
2013-06-12 17:16:31 +02:00
David Nadlinger
e0d78ef0e3 Make irtype.h compile without needing other includes first. 2013-06-12 17:15:55 +02:00
David Nadlinger
39637c844f Merge pull request #395 from klickverbot/remove-disableoptimization
Remove CastExp::disableOptimization.
2013-06-11 11:34:35 -07:00
David Nadlinger
9ad88ef713 Remove CastExp::disableOptimization. 2013-06-11 18:14:13 +02:00
David Nadlinger
354e2713e6 Merge pull request #391 from klickverbot/symoffexp
Re-enable SymOffExp.
2013-06-10 16:35:04 -07:00
David Nadlinger
978c2c1b6a Re-enable SymOffExp and remove associated LLVM-only modifications. 2013-06-11 00:40:48 +02:00
David Nadlinger
b389a3b791 Add virtual destructor to EnclosingHandler to silence warnings. 2013-06-11 00:13:48 +02:00
David Nadlinger
f5e276d6a6 Revert meaning of AddExp/MinExp for pointers to DMD default.
It might be worth considering to move the stride multiplication
down to the glue layer in the upstream sources. But assigning a
different meaning to AST nodes was a giant maintenance
liability, especially with regard to CTFE.
2013-06-10 22:49:01 +02:00
David Nadlinger
049f784e5f Remove extra semicolons after macro invocation.
Silences some Clang warnings.
2013-06-10 19:54:19 +02:00
David Nadlinger
bf0e03df98 Also avoid i1 in TupleExp::toElem. 2013-06-10 19:49:52 +02:00
David Nadlinger
f7aac5201b Remove unused extra argument to overload checking functions. 2013-06-07 21:23:19 +02:00
David Nadlinger
4971321caf Revert "Add debug info for enums."
This reverts commit 001a39642f, as
it leads to debug mode crashes in rt.lifetime and other modules.

Specifically, the type check assertion in IntegerExp::toInteger
(at expression.c:2017) is hit.
2013-06-07 21:20:14 +02:00
David Nadlinger
bf4d679e1a More trivial upstream alignment. 2013-06-07 19:44:04 +02:00
David Nadlinger
dcfc61cf3f Merge pull request #386 from klickverbot/store-bool-as-i8
Store bool as i8.
2013-06-07 10:32:50 -07:00
kai
001a39642f Add debug info for enums.
Previously enums were reduced to the underlying type.
Now the symbolic constants can be used.
2013-06-07 16:37:57 +02:00
David Nadlinger
848dee32d4 Store bools as i8.
I really hope we can refactor this to use a less leaky
abstraction later – it should at least be possible to merge
voidToI8 and i1ToI8.
2013-06-07 03:20:54 +02:00
David Nadlinger
7e92984ebe Downgraded accepts-invalid workaround error to assertion.
Bug 9268 was fixed in 2.062.
2013-06-07 03:20:39 +02:00
David Nadlinger
946156742c Detab RTTIBuilder. 2013-06-07 03:20:39 +02:00
David Nadlinger
4369776b27 Minor DVarValue refactoring. 2013-06-07 03:20:39 +02:00
David Nadlinger
c7c1c25f15 DValue: struct->class.
This is in line with an incoming upstream change making all
polymorphic structs classes, and also matches common coding
conventions.
2013-06-07 03:20:39 +02:00
David Nadlinger
f35a4507d3 DValue: Do not uselessly inherit from Object. 2013-06-07 03:20:39 +02:00
David Nadlinger
b2f2afad29 LDMD: Made error message on compiler execution error clearer.
It is also triggered when the compiler exits with a signal, etc.
2013-06-07 03:20:32 +02:00
David Nadlinger
187899b5e6 Avoid emitting invalid IR for function type TypeInfo metadata.
This fixes LLVM debug builds of the DMD testsuite.
2013-06-07 02:58:04 +02:00
David Nadlinger
43e27d0dd1 Remove USE_METADATA.
It has been on by default for quite some time now.
2013-06-07 02:48:53 +02:00
David Nadlinger
9fbad3c4ba Removed tautological checks.
They were probably used during initial development of the
pass to be able to disable emission of the global reference
by setting TD_TypeInfo to -1.
2013-06-07 02:45:44 +02:00
David Nadlinger
af699bd76e Rename TD_Confirm to TD_TypeInfo.
The old name probably was a reference to the fact that the
metadata node is used to _confirm_ that a metadata record
found by name really belongs to a given TypeInfo instance,
but I found it to be rather non-intuitive.
2013-06-07 02:41:10 +02:00
David Nadlinger
1c883c5071 Do not generate invalid memcpy() for struct self assignment.
This catches only the most trivial case, need to investigate
this further.

See GitHub #385.
2013-06-07 02:23:00 +02:00
David Nadlinger
63759239fd Minor array copy refactoring. 2013-06-07 02:23:00 +02:00
David Nadlinger
a8ae435c69 Remove bogous DtoMemCpy assertion.
DtoMemCpy is called with identical pointer arguments in
some legal cases.
2013-06-07 02:23:00 +02:00
kai
23e21bedbb Merge branch 'vectordi' 2013-06-06 08:20:45 +02:00
kai
f589bb4271 Improve debug info for vector types and skeleton for enums.
Adds the missing array information. Printing vector values work now.
Also adds a skeleton for enum types.
2013-06-06 07:27:58 +02:00
David Nadlinger
25522ea8b0 Merge branch 'release-0.11.0'.
Conflicts:
	cmake/Modules/FindLLVM.cmake
	runtime/phobos
2013-06-05 17:50:16 +02:00
David Nadlinger
c41ef6b95e Fold in MinGW Phobos test update. v0.11.0 2013-06-05 17:46:40 +02:00