Kai Nacke
62137ca489
ldmd2 requires -lpthread and -lcurses, too.
...
This is a change to the LLVM CMake files from LLVM 3.5.
2013-12-19 19:16:08 +01:00
Kai Nacke
14ae04c573
Check for terminfo libary.
...
This fixes another link error on my ARM device.
2013-12-18 22:47:11 +01:00
Kai Nacke
c4cd972a6f
Use logic of LLVM to detect pthread library.
...
But still need to check if LLVM uses pthreads.
2013-12-18 22:25:13 +01:00
Kai Nacke
e82bd4614c
Check for pthreads library.
...
This fixes a link error on my ARM devices.
2013-12-18 21:36:00 +01:00
Kai Nacke
74630ed7f1
Simplify LLVM passes.
...
Use a typedef to minimize difference between LLVM 3.1 and Â3.2+.
Use IRBuilder method CreateMemCpy.
2013-12-16 15:00:00 +01:00
Kai Nacke
bac536a29c
Fix for issue #553 .
...
Check if a static array is accessed with a known index. In this case the
bounds check can be omitted.
2013-12-16 08:14:58 +01:00
Kai Nacke
d4f8092dde
Support LLVM 3.5.
...
LLVM 3.5 adds a new required component lto.
2013-12-13 07:41:22 +01:00
Kai Nacke
aeba90b9f9
Fix a clang warning
2013-12-08 18:59:17 +01:00
Kai Nacke
43acc1f9c8
Check if basic types are read from object.di before usage.
...
If object.di was not read or is incomplete then basic types may be missing.
This results in a crash if they are used during runtime initialization.
This fixes #551 .
2013-12-08 17:30:02 +01:00
Kai Nacke
a2d7c9f3ed
Only define version Android if compiling for this environment.
...
Android is a variant of Linux. In order to simplify the version coding,
only version Android is defined (version linux and version Posix are not).
2013-12-08 15:29:10 +01:00
Kai Nacke
0628a1f9f3
Exclude threadasm.S from build if CMake version is less than 2.8.5.
...
Assembler support was rewritten in CMake 2.8.5. The new functionality
is required to assemble the file, otherwise a bunch of error messages
is generated. The solution is to exclude the file from the build.
This is only a problem for non-x86 platforms (PPC, Mips).
General advise is to use at least CMake 2.8.5. This fixes #464 .
2013-12-08 15:24:42 +01:00
Kai Nacke
7bd1d4900c
Do not allow failures for LLVM 3.4 on Travis-CI.
...
LLVM 3.4rc2 has been released. As the last issue is fixed, we now start to
support LLVM 3.4.
Adds also a build for LLVM 3.5 (which is allowed to fail).
2013-12-05 12:07:56 +01:00
Kai Nacke
1f983f7c6a
Cherry-pick phobos commit to make std.math unit test IEEE 754 compliant
2013-12-05 11:11:37 +01:00
Kai Nacke
76199638c1
Fix null pointer derefence in LLVM 3.5
2013-12-05 08:40:04 +01:00
Kai Nacke
cc22116993
Add Android version identifier
2013-12-03 16:47:22 +01:00
Kai Nacke
37ee9962fd
Changes for LLVM 3.5
v0.12.1
2013-11-27 22:44:49 +01:00
Kai Nacke
d7d0ebb65c
Add new version identifiers if a sanitizer is specified.
2013-11-27 22:43:59 +01:00
Kai Nacke
7f017608a8
Use enum literal instead of constant
2013-11-26 07:56:50 +01:00
Kai Nacke
a81a98cb30
Fix type in pragma (LLVM 3.4 only)
2013-11-26 07:56:16 +01:00
Kai Nacke
1c3bcd1d2c
Added new LLVM 3.4 intrinsics
2013-11-25 22:46:55 +01:00
Kai Nacke
8a69b61632
Update to LLVM 3.5
2013-11-25 21:18:55 +01:00
Kai Nacke
2063b4ea89
Fix for issue #543 .
...
Immutables are constant values, too.
2013-11-14 21:21:04 +01:00
Kai Nacke
29e646ed9a
Fix error message in case object.di is not found.
2013-11-14 06:51:00 +01:00
kai
e6529cfd3d
[experimental] Add sanitizer options to LDC.
...
Add some of the sanitizer passes to LDC. This is not complete (linking must be
done using clang and the right `-fsanitize=` option) and may not be useful at
all.
If it proves to be usefull then a lot of other options (e.g. blacklist) must be
added.
2013-11-05 13:03:52 +01:00
kai
6fe28e1660
Small code modifications to Ir-Classes.
...
Adds some constructors and moves the code to the header file. Uses some of the new constructors.
A big problem with the source are the different strategies used for otherwise similar classes.
E.g. a IrField registers itself with the VarDeclaration. Same is required for IrParameter, but
in this case it is done by the caller.
2013-11-05 10:31:14 +01:00
kai
8d7f0bf0eb
Fix for issue #535 .
...
The symbols must have weak_odr linkage if they result from a template instantiation.
2013-11-04 02:21:05 +01:00
kai
8408afcf6d
Add SSE4.1, SSE4.2, AES and SHA opcodes.
...
Also adds comments for all AVX opcodes supported by DMD.
This fixes issue #514 .
2013-10-29 17:31:43 +01:00
Kai Nacke
c03ed8eea9
Merge pull request #532 from klickverbot/gc2stack-fixes
...
gc2stack: Cleanup, handle _d_allocmemory.
2013-10-27 23:14:31 -07:00
David Nadlinger
9f1c26b52a
gc2stack: Handle _d_allocmemory.
...
This allows us to clean up after inlining closures.
2013-10-27 17:05:19 +01:00
David Nadlinger
3539e201f8
gc2stack: Move TypeInfo handling code into FunctionInfo subclass.
...
This is to properly support calls that don't involve TypeInfo
at all, like it is already the case for _d_newclass, and will be
for _d_allocmemory.
2013-10-27 17:05:19 +01:00
David Nadlinger
5b9208ef85
gc2stack: Extract static size checking code into helper function.
2013-10-27 17:05:19 +01:00
David Nadlinger
e1a6d8144b
gc2stack: Replace return type bool with proper enum flag.
...
This makes the code much easier to read.
2013-10-27 15:43:12 +01:00
David Nadlinger
27b4f730aa
gc2stack: Remove unused safeToDelete mechanism.
2013-10-27 15:36:14 +01:00
Kai Nacke
5bf42f86aa
Remove -Werror from LLVM_CXXFLAGS.
...
This flag causes compile errors we can't fix.
2013-10-25 23:30:32 +02:00
kai
a73e4602ee
Simplify EmitMemSet in GarbageCollect2Stack.
...
Simply take advantage of the predefined `CreateMemSet()` function.
2013-10-25 23:28:29 +02:00
kai
835e972e6b
Fix va_arg handling.
...
The change of symbol emission ignored the fact that the va_arg intrinsic must be
handled in a special way. This commit corrects the omission (which leads to seg
faults on Linux/PPC64).
2013-10-25 16:15:52 +02:00
Kai Nacke
e5fe110280
Merge pull request #526 from klickverbot/newclass-signature
...
Correct signature of _d_newclass runtime call.
2013-10-23 21:43:11 -07:00
Kai Nacke
cdecb99891
Merge pull request #525 from klickverbot/fix-gc2stack-ir
...
Do not generate invalid IR in dgc2stack pass.
2013-10-23 21:42:51 -07:00
David Nadlinger
b052b30442
Correct signature of _d_newclass runtime call.
...
Fixes programs trying to directly access it (e.g. the
GtkD bindings). Not sure why this didn't come up earlier.
2013-10-24 00:27:09 +02:00
David Nadlinger
1f59740524
_d_allocclass -> "_d_newclass".
...
The define is a leftover from the times when we supported
both D1 and D2.
2013-10-24 00:25:36 +02:00
David Nadlinger
3d8e2e5e5c
Add virtual destructor to GarbageCollect2Stack to silence GCC warning.
2013-10-24 00:24:55 +02:00
David Nadlinger
36b70b68e8
Do not generate invalid IR in dgc2stack pass.
...
Branching to a block that starts with a landing pad
instruction is illegal.
GitHub: Fixes #524 .
2013-10-23 22:53:18 +02:00
Kai Nacke
287e089927
Add info to -version if compiled with address sanitizer
2013-10-23 02:53:53 +02:00
Kai Nacke
e6ffffdace
Files from DRV_SRC and DRV_HDR should be compiled with same flags as other files.
2013-10-23 01:26:28 +02:00
David Nadlinger
847b7ac611
Merge pull request #522 from redstar/sanitize
...
Build LDC with address sanitizer enabled.
2013-10-22 02:57:56 -07:00
David Nadlinger
66484b580a
Simplify git_describe to work on CMake 2.8.0.
...
FindGit doesn't seem to work as expected on Ubuntu 10.04
(GIT-NOTFOUND even though Git is installed and available
on the $PATH).
This implementation might be overly simplistic and it
should probably use find_program() to locate Git. We need
to revisit this after the 0.12.0 release is out.
v0.12.0
2013-10-21 23:35:28 +02:00
David Nadlinger
ad126e7155
Fix Git tag -> version string conversion on CMake 2.8.0.
...
This version is notably shipped with Ubuntu 10.04 LTS, used
for building the Linux release binaries.
2013-10-21 23:35:15 +02:00
Kai Nacke
6c7cedc484
Build LDC with address sanitizer enabled.
...
This commit adds an option to cmake to enable the address sanitizer if LDC is build with clang.
Specify -DSANITIZE=ON on the command line.
2013-10-21 19:49:39 +02:00
David Nadlinger
234772767a
Merge pull request #520 from klickverbot/ldmd-m32-m64
...
LDMD: Properly initialize Params::targetModel.
2013-10-21 05:43:59 -07:00
David Nadlinger
883fd768d3
LDMD: Properly initialize Params::targetModel.
2013-10-21 13:55:49 +02:00