Alexey Prokhin
c47bfbcc32
Implemented mod operator for complex numbers
2010-12-15 20:30:38 +03:00
Moritz Warning
c151d37365
fixes #434 :: add llvm 2.8 support
2010-10-23 13:38:26 +02:00
Christian Kamm
64a8e47ad6
Fix several 'reaches end of function' warnings by making fatal noreturn.
...
The warnings also pointed out a few genuine bugs. Replace some tabs with
spaces.
2009-11-06 21:51:41 +01: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
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
7dbe9baa37
Made is and !is use the same numeric comparison as == and !=, fixes #328
...
Factored out common code from EqualExp and IdentityExp into
DtoBinNumericEquals in binexp.cpp.
2009-06-16 23:00:27 +02:00
Christian Kamm
e03a897bad
Make sure complex -> integral casts are not used when casting to bool.
...
Error instead of assert on unimplemented cast.
2009-05-28 21:45:14 +02:00
Christian Kamm
803156b035
Allow complex -> integral casts.
2009-05-28 20:26:26 +02:00
Tomas Lindquist Olsen
36f6ebc77f
- Versioned Expresssion::toElem with #if IN_DMD/IN_LLVM.
...
- Eliminated the DLRValue DValue.
- Implemented proactive handling of l-value CastExpS.
- Minor tweak in runtime memory.d .
2009-03-28 05:00:43 +01:00
Christian Kamm
6efc9a3324
Get rid of DtoBoolean - use DtoCast(... Type::tbool) instead.
...
Fixed some casts to bool that were using truncation.
2008-11-22 18:35:52 +01:00
Christian Kamm
891d17e4b5
Applied easy part from wilsonk's x86-64 patch in #107
2008-10-30 11:08:34 +01:00
Christian Kamm
cd99e773f0
Make typedef'ed complex types work.
2008-10-01 19:15:17 +02:00
Christian Kamm
8645e103ef
Simplify complex number handling. Fixes bug with complex substraction.
2008-09-22 20:29:18 +02:00
Tomas Lindquist Olsen
d474fa027a
Fixed most regressions from last commit.
2008-09-10 12:33:33 -07:00
Tomas Lindquist Olsen
8e9b957bce
Complex number should now follow the D ABI on x86. They're also treated as first class values now. Big change.
2008-09-09 16:49:47 -07:00
Tomas Lindquist Olsen
9d7f16b967
Added pragma(llvmdc, "string") for misc per-module compiler configuration, currently "string" can only be "verbose" which forces -vv for module it appears in.
...
Reimplemented support for nested functions/class using a new approach.
Added error on taking address of intrinsic.
Fixed problems with the ->syntaxCopy of TypeFunction delegate exp.
Removed DtoDType and replaced all uses with ->toBasetype() instead.
Removed unused inplace stuff.
Fixed a bunch of issues in the runtime unittests, not complete yet.
Added mini tests.
2008-08-10 08:37:38 +02:00
Christian Kamm
8362b86c5a
Move AllocaInst creation into DtoAlloca helper. Will enable special zero-init of fp80 reals' padding.
2008-08-05 19:28:19 +02:00
Tomas Lindquist Olsen
9b45fc5533
Changed the handling of variadic intrinsics a bit.
...
Removed the -fp80 option and made real be 80bit floats on X86, this is what the D spec really says it should be and fixes a bunch of issues.
Changed the handling of parameter attributes to a bit more generalized approach.
Added sext/zext attributes for byte/short/ubyte/ushort parameters, fixes #60 .
Parameter attribs now properly set for intrinsic calls if necessary.
Made the tango.math.Math patch less intrusive.
Fixed/added some mini tests.
2008-08-01 17:59:58 +02:00
Christian Kamm
fc9ccb9f6a
Rework complex divison.
2008-07-30 16:48:35 +02:00
Christian Kamm
ad17af1e26
Rework complex addition, substraction and multiplication. Division may need the same.
...
Fixes run/c/cdouble_09_A,C,D and run/c/cfloat_09_A,C,D.
2008-07-27 17:53:49 +02:00
Christian Kamm
907a03a3be
Give error messages for invalid casts.
...
This required passing Loc information to certain functions.
Fixes nocompile/b/bug_cgcs_354_A/B.
2008-07-26 17:19:16 +02:00
Christian Kamm
25dea7a16e
[svn r385] Fix lvalue cast problems with -= and friends.
...
Fix complex DtoBoolean.
2008-07-14 22:48:03 +02:00
Christian Kamm
7e7441a5f8
[svn r380] Improve complex number support.
2008-07-14 17:22:43 +02:00
Christian Kamm
7250b0630c
[svn r324] Small indentation fixes.
...
Added end of line to complex.cpp.
2008-06-25 20:42:30 +02:00
Tomas Lindquist Olsen
8b83eda2a2
[svn r261] Fixed debug info for integer and floating local variables, can now be inspected in GDB.
...
Did a lot of smaller cleans up here and there.
Replaced more llvm::Foo with LLFoo for common stuff.
Split up tollvm.cpp.
2008-06-09 09:37:08 +02:00
Tomas Lindquist Olsen
d03c3a7757
[svn r233] Added: -oq command line option for writing fully qualified object names.
...
Added: started support for x86 80bit floating point.
Changed: aggregates passed by value now use the llvm 'byval' parameter attribute, also lays ground work for
using other attributes.
Changed: eliminated a lot more std::vectorS, these showed up pretty much at the top when profiling!
Changed: performed other misc. cleanups.
Changed: halt expression now call the new llvm trap intrinsic instead of an assert(0).
Changed: dstress suite now passes -O0 by default, this only eliminates unreferenced globals, which speeds up
linking quite a bit.
2008-06-05 06:38:36 +02:00
Tomas Lindquist Olsen
b4bb3aaec4
[svn r229] Updated the object.d implementation to the latest Tango.
...
Fixed a bunch of the built-in typeinfos for arrays, they did not inherit TypeInfo_Array.
Applied patch to tango/text/convert/Layout.d by fvbommel, closes #47 .
Cleaned up some type code.
Replaced uses of llvm::Type with LLType (a typedef), same for Value and Constant.
Fixed a few cases where typeinfo for user structs could be emitted multiple times, seems to still be some cases of this :/
2008-05-30 19:32:04 +02:00
Tomas Lindquist Olsen
3365b4c02f
[svn r221] Update: Switched to the 2.3 LLVM svn branch, http://llvm.org/svn/llvm-project/llvm/branches/release_23 .
...
Fixed: Implemented volatile statements. Uses the LLVM memory barrier intrinsic, closes #21 .
2008-05-13 17:58:11 +02:00
Tomas Lindquist Olsen
071bf5a629
[svn r180] Fixed complex negation, and tango.math.Math now compiles.
2008-05-05 20:28:59 +02:00
Tomas Lindquist Olsen
4505b9b006
[svn r137] Many fixes towards tango.io.Console working, but not quite there yet...
...
In particular, assertions has been fixed to include file/line info, and much more!
2008-01-14 05:11:54 +01:00
Tomas Lindquist Olsen
adab52fad9
[svn r111] Fixed most problems with complex number support and added typeinfo for them.
...
Added typeinfo ti_C.
Did some changes to the way expressions that have both lvalue and rvalue LLVM values are handled.
2007-11-20 00:02:35 +01:00
Tomas Lindquist Olsen
5e9f5034ff
[svn r108] Now basic suppport for complex types. =,+,-,*,/ are supported.
2007-11-19 02:58:58 +01:00