Alexey Prokhin
c5e9784863
Updated to dmdfe 2.051
2011-01-05 18:21:40 +03:00
Alexey Prokhin
1c59eed83a
Check for lower slice bound when bounds checking is enabled
2011-01-03 16:50:08 +03:00
Alexey Prokhin
fd52810f1a
Fixed initialization of static arrays
2011-01-03 16:50:08 +03:00
Alexey Prokhin
47239d9058
Work on support for variadic arguments. Updated headers in druntime/import.
2011-01-02 19:14:52 +03:00
Alexey Prokhin
4b34601a79
Make sure that a l-value of a binassign expressions is only evaluated once.
2011-01-02 17:38:40 +03:00
Alexey Prokhin
023b55a772
Run postblit constructors for elements of an array.
2010-12-30 14:04:24 +03:00
Alexey Prokhin
fbbb832187
Added suppport for custom allocators for structs.
2010-12-19 13:02:09 +03:00
Alexey Prokhin
e7c880cd08
Store the right context frame in nested structs and classes.
2010-12-19 12:13:00 +03:00
Alexey Prokhin
7e6807b0df
Fixed calling of _d_delmemory() and _d_delinterface()
2010-12-17 12:55:28 +03:00
Alexey Prokhin
349a6c1c3f
Fixed calling of final methods of interfaces
2010-12-17 12:55:28 +03:00
Alexey Prokhin
bb644d5c91
Fix for delegates.
...
The following code works correctly now:
auto dg = &super.virtualFunc();
2010-12-15 21:47:22 +03:00
Alexey Prokhin
c47bfbcc32
Implemented mod operator for complex numbers
2010-12-15 20:30:38 +03:00
Alexey Prokhin
6d22dd7999
Updated to 2.050
2010-11-08 16:55:35 +03:00
Alexey Prokhin
59d1ec5e0b
Another fix for nested context in structs.
2010-11-05 11:55:23 +03:00
Alexey Prokhin
20b2b4b7f5
Added missing calls of postBlit
2010-11-04 12:50:19 +03:00
Alexey Prokhin
d7047f639e
Rehash associative array right after its creating (DMD seems to be doing the same)
2010-11-03 19:46:19 +03:00
Alexey Prokhin
3943b2866b
Fixed nested context for delegates initialized in structs and classes
2010-11-02 13:22:19 +03:00
Alexey Prokhin
2fe8635e5a
Struct constructors are supported now
2010-11-02 13:22:10 +03:00
Alexey Prokhin
360a99caa9
Resolving nested context for structs.
...
* * *
Another fix for nested structs
* * *
Yet another fix for nested structs
2010-11-02 13:21:36 +03:00
Alexey Prokhin
e3afcf8a8d
Workaround for a bug in llvm 2.8 which appears only when all optimizations are off
2010-11-02 13:20:21 +03:00
Alexey Prokhin
24c92d3a7c
CallExp::cacheLvalue is back
2010-10-30 20:51:31 +04:00
Eldar Insafutdinov
f95fa16f58
fix compile errors
2010-10-29 22:58:11 +01:00
Alexey Prokhin
e4c3179d43
Different fixes: phobos compiles now
2010-10-28 14:53:01 +04:00
Alexey Prokhin
b1e5993873
Started work on phobos
2010-10-27 18:13:46 +04:00
Alexey Prokhin
4d7a6eda23
Different fixes for d2
2010-10-07 22:35:32 +04:00
Moritz Warning
c151d37365
fixes #434 :: add llvm 2.8 support
2010-10-23 13:38:26 +02:00
Kelly Wilson
b38845e88e
Apply patch from klickverbot. This is his 'proper fix' patch for bug #395 .
2010-03-08 23:37:40 -07:00
Christian Kamm
9cd32549c4
Improve array append performance.
...
Actually use the appropriate runtime function, instead of just
growing the array by one!
2010-02-14 10:11:05 +01:00
Robert Clipsham
98e869c7ec
Fixed DStress tests nocompile/c/{const_32_B.d,const_32_C.d}.
...
Updated the runtest script to build libtangobos-partial.a if it hasn't already been built.
Added in signbit() and va_arg!()() to libtangobos-partial.a so more of the phobos dependent DStress tests pass.
2009-11-08 16:16:17 +00:00
Moritz Warning
b7c0c9e25e
allow forward referencing, fix #361
2009-09-09 20:13:17 +02:00
Benjamin Kramer
d24643bb50
Avoid some unecessary heap allocations by using llvm's StringRef class.
2009-08-14 01:43:30 +02: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
Tomas Lindquist Olsen
84f820b442
Added framework for writing a static printf call checker for bearophile to implement.
2009-08-06 16:52:43 +02:00
Benjamin Kramer
4c5457ba61
getNullValue is in Constant again
...
Requires LLVM >= r77721
2009-07-31 23:01:29 +02:00
Benjamin Kramer
0a1d467ac7
getTrue/getFalse were moved back to ConstantInt
...
Requires LLVM >= r77685
2009-07-31 19:11:07 +02:00
Benjamin Kramer
652a4b39c0
ConstantAggregateZero moved back to LLVM 2.5-style API
...
Requires LLVM >= 77635
2009-07-31 01:16:30 +02:00
Benjamin Kramer
66101517d7
LLVMContext changes up to r77366
2009-07-30 15:25:10 +02:00
Benjamin Kramer
a398cd39b3
ConstantInt::get{True,False} moved to LLVMContext
...
Non-breaking build fix for LLVM r76533. Also fixes a context related
bug in GarbageCollect2Stack.
2009-07-21 13:11:39 +02:00
Benjamin Kramer
d7049de966
More factory methods moved to LLVMContext
2009-07-15 18:09:41 +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
5658d9bb38
Emit file and line info for 'Array operation ... not recognized' error.
...
Fixes #326 .
2009-06-22 19:31:25 +02:00
Christian Kamm
265cbea170
Make == for associative arrays test for equality, not identity.
...
_aaEq was added to runtime/internal/aaA.d which forwards to
TypeInfo_AssociativeArray.equals in genobj.d. On the codegen side, DtoAAEquals
was added to gen/aa.cpp and is called from EqualExp::toElem in gen/toir.cpp.
I assume that the frontend will produce an error if == is used on associative
arrays of different type.
This fixes DMD bug 1429.
2009-06-21 19:05:24 +02:00
Frits van Bommel
62dee01d35
Implement equality comparison for associative arrays. The semantics aren't in
...
the spec, but DMD does a simple pointer comparison. Complaints about this go to
http://d.puremagic.com/issues/show_bug.cgi?id=1429 :P.
2009-06-21 00:12:29 +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
e54d75354c
Cannot take the address of a slice or struct literal as a constant expression.
2009-06-14 12:27:51 +02:00
Christian Kamm
dbe949ede6
More DtoType -> DtoTypeNotVoid for getting the array element llvm type.
2009-06-12 21:34:35 +02:00
Frits van Bommel
1958e17734
Rewrite StructLiteralExp::toElem
to store individual fields instead of
...
generating a constant to fill the entire struct with a single `store`.
This is much more efficient at compile time (fixing #320 ) and vastly reduces
the size of the emitted code. Since LLVM no longer needs to keep the data for
all fields in "registers" until the store happens, it should also be more
efficient at run time in cases where the fields aren't assigned with constants.
There's also some code clean-up by removing duplicated logic.
2009-06-06 20:16:13 +02:00