Commit Graph

3353 Commits

Author SHA1 Message Date
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
David Nadlinger
2e0941c194 Add names for globals to make LDC compile against LLVM 3.1. 2013-06-15 16:16:47 +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
e9d7c10109 Align our copy of TypeInfo code to upstream DMD version. 2013-06-15 15:11:17 +02:00
David Nadlinger
a7882a8ae6 Fix another few issues caused by the upstream v2.063.1 retagging. 2013-06-15 15:08:19 +02:00
David Nadlinger
0e49a57a5f More upstream DMD alignment. 2013-06-15 15:06:57 +02:00
David Nadlinger
c813ccdcf7 Small debug diagnostics improvements. 2013-06-15 15:04:48 +02:00
David Nadlinger
66e9427f88 Backport StructLiteralExp::toChars infinite recursion fix.
We absolutely need this for log output/debugging.
2013-06-15 15:04:48 +02:00
David Nadlinger
7874c95cdc Remove unused StructLiteralExp::constType variable. 2013-06-15 15:04:48 +02:00
David Nadlinger
bca5dac669 Fixed ClassReferenceExp codegen, handle self-referential literals. 2013-06-15 15:04:48 +02:00
David Nadlinger
041e8e8b54 Remove LDC-specific .classinfo AST rewrite.
Apart from reducing the diff to upstream DMD, this also fixes a
"cannot interpret" CTFE issue.
2013-06-14 21:49:44 +02:00
David Nadlinger
3035735bc9 FuncDeclaration::canInline diff reduction.
The new arguments to the call in DtoLinkage do not exactly
match what was there before, but have been harmonized with
the other canInline call.
2013-06-14 19:14:19 +02:00
David Nadlinger
4f1374e211 Fold in testsuite merge fixes. 2013-06-14 17:44:08 +02:00
David Nadlinger
eb14970fd0 Minor nested context doc comment improval. 2013-06-14 17:10:50 +02:00
David Nadlinger
349305cd1d Fix array op argument evaluation order regression.
Fixes DMD testcase 'arrayop'.
2013-06-14 17:02:58 +02:00
David Nadlinger
9dc387aa91 Do not invoke postblit twice on struct literal creation.
The frontend seems to explicitly insert __cpctor now.

Fixes DMD testcase 'sdtor'.
2013-06-14 16:43:41 +02:00
David Nadlinger
86563a2ee1 Allow casting AAs to bool.
Fixed DMD testcase 'nulltype'.
2013-06-14 16:01:09 +02:00
David Nadlinger
9c0514a9b1 Correctly load context for nested class members with own nested context.
Fixes DMD testcase 'xtest46'.
2013-06-14 15:49:15 +02:00
David Nadlinger
4901877d24 Handle side-effects in TupleExp::e0.
Fixes DMD testcase 'aliasthis'.
2013-06-14 15:03:24 +02:00
David Nadlinger
83415eeeb8 Minor debug log fixes. 2013-06-14 15:03:24 +02:00
David Nadlinger
cbe2c45b83 Fold in rudimentary rt.sections implementation. 2013-06-14 15:03:24 +02:00
David Nadlinger
c64c4f479a Handle static array typed SliceExps.
Fixes DMD testcase 'testbounds2'.
2013-06-13 18:45:07 +02:00
David Nadlinger
48f784eda8 Fold in out-of-source test build adaption changes. 2013-06-13 00:17:39 +02:00
David Nadlinger
95b34c3625 zext bool to i8 in makeLValue. 2013-06-12 20:39:34 +02:00
David Nadlinger
bc910004a4 Adapt codegen to removal of old _d_invariant from druntime.
We should think about using symbolic constants for runtime function
names though, this is not maintainable in the long run.
2013-06-12 20:34:50 +02:00
David Nadlinger
4c788699ae Initial, incomplete ClassReferenceExp::toConstElem implementation.
Allows us to get through a Phobos build without errors.
2013-06-12 20:23:27 +02:00
David Nadlinger
b1465ae7e3 Extended DtoLinkage comments. 2013-06-12 20:16:37 +02:00
David Nadlinger
d3f89f81a8 Never emit naked functions as available_externally. 2013-06-12 20:16:37 +02:00
David Nadlinger
d7526157ab Expression::optimize everything to resolve manifest constants in inline asm. 2013-06-12 20:16:37 +02:00
David Nadlinger
2ebf677661 Handle explicit AddrExp for naked asm memory references. 2013-06-12 20:16:37 +02:00
David Nadlinger
a9e620d428 Work around invalid special ref var initializations in 2.063. 2013-06-12 20:16:37 +02:00
David Nadlinger
fd3c696d94 Call Expression::init() during startup.
Was added in 2.063.
2013-06-12 20:16:37 +02:00
David Nadlinger
33245282ef More trivial DMD diff reduction. 2013-06-12 20:16:37 +02:00
David Nadlinger
24e3abff34 Unions are always static since Issue 9244. 2013-06-12 20:16:37 +02:00
David Nadlinger
6898d0fa4a Removed last bit of interpret.c diff. 2013-06-12 20:16:37 +02:00
David Nadlinger
ab7ffa9988 Removed obsolete importprot members. 2013-06-12 20:16:37 +02:00
David Nadlinger
4d3f9333c6 Never make functions without body available_externally. 2013-06-12 20:16:37 +02:00
David Nadlinger
292caa1438 Merge the 2.063 frontend. 2013-06-12 20:16:37 +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