Commit Graph

1294 Commits

Author SHA1 Message Date
Alexey Prokhin
fdead0d154 Fixed #21 — Added -lib switch 2011-12-06 17:24:49 +04:00
Alexey Prokhin
859ae8481f That was committed by mistake 2011-12-06 14:43:05 +04:00
Alexey Prokhin
8b50928636 Fixed #37 — ICE: llvm::GlobalVariable::setInitializer assert failed 2011-12-06 13:55:01 +04:00
Alexey Prokhin
f8bf70ff7a Fixed an assert when compiling derelict.
The assert was triggered by a line similar to this:
   extern(C) void func(float[4] a1, float[4] a2, float[4] a3, float[4] a4, float[4] a5);
2011-12-06 13:14:57 +04:00
Alexey Prokhin
7da47c4ee8 Restored old behavior of initialization of llvm targets.
LDC initializes only a llvm host target and targets that were explicitly
requested when building the program.
2011-12-05 21:41:37 +04:00
Alexey Prokhin
bb3908f290 Fixed #36 — ICE: DValue::getLVal(): Assertion '0' failed 2011-12-05 13:19:33 +04:00
Alexey Prokhin
2980f703b1 Fixed #35 — ICE: postfix operation on typedef'd value 2011-12-05 13:09:10 +04:00
Alexey Prokhin
4b22221eb9 Fixed #34 - StructType::setBody assert isOpaque() failed 2011-12-05 13:07:13 +04:00
David Nadlinger
3916835380 Merge remote-tracking branch 'AlexeyProkhin/master' into merge-3.0
Conflicts:
	CMakeLists.txt
	druntime
	runtime/CMakeLists.txt
2011-12-04 18:38:09 +01:00
David Nadlinger
fe19ee84f5 Merge branch 'llvm3.0' into merge-3.0
Conflicts:
	gen/configfile.cpp
2011-12-04 18:16:36 +01:00
David Nadlinger
5458ebb0b2 Merge branch 'master' into merge-3.0 2011-12-04 18:15:21 +01:00
David Nadlinger
16cdb0c252 Whitespace cleanup. 2011-12-04 18:13:42 +01:00
David Nadlinger
d0ea856024 Emit all D inline asm labels as local labels.
On OS X, there is an actual significance to the distinction, which before lead e.g. to exception throwing in the below example being broken:

---
import core.exception;

void main() {
  asm {
    jmp Lfoo;
Lfoo:
    ;
  }
  throw cast(OutOfMemoryError)cast(void*)OutOfMemoryError.classinfo.init;
  assert(0);
}
---
2011-12-04 18:13:33 +01:00
Alexey Prokhin
cd732537e8 Fixed atomic_store and atomic_load instrinsics 2011-12-04 16:05:48 +04:00
Alexey Prokhin
784e3f1542 Fixed cases when debug info of a variable was emitted several times 2011-12-04 15:34:41 +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
1f3d9b98d0 Removed old hack for llvm 2.8, it is not required anymore 2011-12-03 14:20:54 +04:00
Alexey Prokhin
6357c421ac Updated ldc version and homepage 2011-12-03 13:52:05 +04:00
Alexey Prokhin
1f4de64360 Fixed appending to an array 2011-12-03 12:24:53 +04:00
Alexey Prokhin
014d6bdd4d Merged 2.056 2011-12-02 21:50:52 +04:00
Alexey Prokhin
250d8ed214 Sanity check — can't create a directory with an empty path 2011-12-02 13:59:49 +04:00
Alexey Prokhin
5e0a2b7761 Merge branch 'llvm3.0' into master 2011-12-02 13:26:31 +04:00
kai
8db112dd68 Stream for object file must have binary flags. 2011-11-27 21:26:44 +01:00
kai
a5b3dd29b5 Fixes 2 kinds of warnings.
1) The last parameter of getGetElementPtr() has type bool. In some instances, a 2 is used as parameter. This is converted to true.
2) Several loops use int instead of unsigned. This causes warning about signed/unsigned mismatch.

Curiously, only Visual C++ complains about this. Nevertheless I think that the warnings should be fixed.
2011-11-23 19:01:04 +01:00
kai
aa20673c72 Fix indentation (TAB -> SPACE in 2 cases). 2011-11-21 20:47:38 +01:00
kai
1ecd536f45 Replace deprecated LLVM functions.
Several functions regarding file handling are deprecated. This commit replaces these functions with the new one from llvm::sys::fs and llvm::sys::path. It also removes some warnings about signed/unsigned mismatches.
2011-11-16 19:05:23 +01:00
David Nadlinger
1afc01df72 Whitespace cleanup. 2011-11-14 21:25:56 +01:00
David Nadlinger
abd1d160f4 Tabs->spaces. 2011-11-14 20:10:45 +01:00
Robert Clipsham
4add11b78f Fix bug #22. 2011-11-13 14:14:19 +00:00
David Nadlinger
2c7f77eabd Fixed leftover llvm::Type const qualifier. 2011-11-12 20:17:29 +01:00
David Nadlinger
ffe37c4a62 Merge remote-tracking branch 'upstream/llvm3.0' 2011-11-12 19:51:30 +01:00
David Nadlinger
dc46ae547c Merge remote-tracking branch 'upstream/ldc-merge-2.056'. 2011-11-12 19:31:19 +01:00
David Nadlinger
23f360c988 Use llvm::InitializeNativeTargetAsmPrinter() now that it is available.
This enables us to remove the whole ugly config file parsing hack.

Also includes some minor CMake beautifications (nobody should really be at 2.4 anymore, 2.6 is more than three years old now).
2011-11-12 18:42:01 +01:00
David Nadlinger
7eda270d6b Search for config next to the binary before trying global dirs.
This solves the problem of LDC picking up a pre-existing system-wide config when druntime and Phobos are compiled as part of the build process.

This order was intended by Christian in 919f8d6, but then backed out again in eb3cd887 with no comment as to why – I hope this doesn't have any unwanted implications.
2011-11-12 14:35:30 +01:00
David Nadlinger
5e18625266 Define MinGW in addition to mingw32 for consistency with GDC.
When we get Win64 support, it should be defined there as well.
2011-11-08 21:27:02 +01:00
Alexey Prokhin
4ab6869c50 Fix a crash which occurs when compiling std/conv.d with unittests 2011-11-01 17:06:13 +04:00
Alexey Prokhin
6ef7ee6d32 Unimplemented toConstElem is not a fatal error if errors are gagged.
Because ldc uses gagging to check whether an expression is constant.
2011-11-01 14:35:28 +04:00
Alexey Prokhin
22d0f00027 Rewritten DtoArrayInit().
It does not create calls to runtime functions and generates a faster code, especially if optimizations are on.
2011-11-01 14:31:00 +04:00
Alexey Prokhin
40fa7653e2 Sync TypeInfoClass flags with dmd 2011-11-01 12:07:59 +04:00
Alexey Prokhin
b52c224d57 Merge v2.056 2011-11-01 11:44:03 +04:00
Alexey Prokhin
7431d58702 Rewritten initialization of global variables. 2011-10-25 15:43:49 +04:00
Alexey Prokhin
66a30803f3 Fixed an assert in DtoNewClass when initializing an inner-class outer reference 2011-10-25 15:43:49 +04:00
Alexey Prokhin
bf463d61da Readded 'relocation-model' and 'code-model' options 2011-10-25 15:43:49 +04:00
Alexey Prokhin
45426ca60d Implemented atomic intrinsics for llvm 3.0
Unline older versions, llvm 3.0 provides atomic instructions, not intrinsics.
The patch wraps the instructions into intrinsics, so they will be accessible
from d code.
2011-10-25 15:43:49 +04:00
Alexey Prokhin
81426b8cc8 Fix DelegateExp::toElem return type 2011-10-25 15:43:49 +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
fb77c05dfd DMD Issue 3632 - modify float is float to do a bitwise compare 2011-09-15 13:56:22 +04:00