kai
df4a245040
Resolve mismatch between object.di and typinfo.cpp on 64bit non-x86 systems.
...
On Windows x86_64, class TypeInfo_Struct contains 2 additional fields
(m_arg1/m_arg2) which are used for the X86_64 System V ABI varargs
implementation. They are not present on any other os.
This commit changes an assertion which did not check for the os and therefore
broke on 64bit non-86 systems like ppc64.
2012-12-21 22:05:28 +01:00
kai
5f37ae30cf
LLVM 3.3: class Attributes is renamed to Attribute.
...
Some other renamings took place in "llvm/Attributes.h" but only this causes
compile errors in LDC.
Also uses new location of "llvm/IRBuilder.h".
2012-12-21 17:32:17 +01:00
David Nadlinger
9d9f827efb
Set irtype for underlying function type when building delegate types.
...
This fixes the problem of arg_nest disappearing when DtoType
is called on such types, e.g. as part of metadata generation.
2012-12-21 00:32:07 +01:00
David Nadlinger
7be9c5c5c7
dgc2stack: LLVM 3.2 compatibility.
2012-12-20 23:52:25 +01:00
David Nadlinger
8913898b5e
dgc2stack: Demote LLVM "tail" calls when promoting an allocation.
...
Referencing alloca'd memory in tail calls is invalid IR. This was
not caught by the verifier, but produced misoptimizations due to
wrong alias analysis results.
2012-12-20 23:52:25 +01:00
David Nadlinger
4da1427c19
Enable USE_METADATA by default.
2012-12-20 23:52:25 +01:00
David Nadlinger
bc541a4421
Added D2/druntime support to gc2stack.
2012-12-20 23:52:25 +01:00
David Nadlinger
ebbbfdd4ac
Metadata/gc2stack compile fixes to accomodate LLVM API changes.
2012-12-20 23:52:24 +01:00
David Nadlinger
a3a511ca55
Refactored IrType construction to use static get() method.
...
This also allows us to enable the assert in IrType::IrType.
Unfortunately, this is mostly a "peace of mind" commit, there
doesn't seem to have been a bug actually caused by the transitory
duplicate IrTypePointer/IrTypeStruct instances.
The remaining xyz2llvm static methods are not exactly pretty,
they should probably just be folded into get.
2012-12-20 23:52:09 +01:00
David Nadlinger
464c695814
Renamed IrType::get/IrType::getD, treat classes as the special case they are.
2012-12-20 23:52:09 +01:00
David Nadlinger
aa4543465d
Actually run DMD test suite in 32 bit mode on x86_64 multilib builds.
...
Yet another regression gone unnoticed because CMake functions
silently accept extra arguments.
2012-12-20 03:57:04 +01:00
David Nadlinger
4804cbcdbb
Cleanup: Removed unused variable.
2012-12-20 03:29:06 +01:00
David Nadlinger
89809fdde3
Cleanup: Silence another "maybe-undefined" warning.
...
Also makes the assert in line 775 actually work.
2012-12-20 02:10:32 +01:00
David Nadlinger
0be65aa49b
Add back line accidentally removed in 289bb57a.
2012-12-20 02:07:11 +01:00
David Nadlinger
06f9efd763
Enable -Wextra by default.
2012-12-20 01:21:10 +01:00
David Nadlinger
4118cddd1f
Cleanup: GCC warning fixes.
2012-12-20 01:21:10 +01:00
David Nadlinger
ab357a41c7
Removed useless debug log messages.
2012-12-20 01:21:10 +01:00
David Nadlinger
59a4a02e49
Cleanup: Avoid signed/unsigned comparisons.
...
The ones ones left are for DMD-defined constants.
2012-12-20 01:21:09 +01:00
David Nadlinger
189115fa98
Cleanup: Move definitions for irfuncty.h to new irfuncty.cpp.
2012-12-20 01:03:01 +01:00
David Nadlinger
0efa499b22
Cleanup: Actually use forward-declared types.
2012-12-20 01:00:59 +01:00
David Nadlinger
fca550e534
Cleanup: Remove warning overrides and fix two more warnings.
2012-12-20 01:00:57 +01:00
David Nadlinger
0cd78dd579
Cleanup: Clang warning fixes.
...
No warnings left on a '-Wall' build except for a single tautological
compare in gen/asm-x86-32.h, which indeed seems like a bug.
2012-12-20 01:00:55 +01:00
David Nadlinger
289bb57adf
Cleanup: Fix "braces around initializaion of subobject" warnings.
...
The two ASM implementations should really be merged, as they
are very similar except for the added registers/instructions.
2012-12-20 01:00:51 +01:00
David Nadlinger
87a4fd06d5
Enable -Wall only for LDC-specific parts of the code.
...
LDC files including DMD headers are still not handled.
2012-12-19 23:21:47 +01:00
David Nadlinger
e174916328
Don't create unused gen/ directory.
2012-12-19 23:08:47 +01:00
David Nadlinger
f68e914da6
Workaround for ICE due to auto return type not being inferred.
...
GitHub: Fixes #217 .
2012-12-19 22:55:18 +01:00
David Nadlinger
6e6e03b154
Fold in testsuite fix.
2012-12-19 22:14:13 +01:00
David Nadlinger
fb363972f0
Fix handling of NewExpression for structs with constructors.
...
The frontend treats the constructor as returning a reference to
the new instance, we just want the memory, i.e. a pointer.
GitHub: Fixes #246 .
2012-12-19 20:57:52 +01:00
David Nadlinger
db59b30eda
Slight rewrite to make intent cleaner.
...
No functionality change intended, although it might make the last
commit unnecessary.
2012-12-19 20:38:54 +01:00
David Nadlinger
9cbfc604c7
Fix ICE with closures in member functions.
...
I chose to fix the problem this way because it increases uniformity
between 'this' and normal explicit parameters. Another possibility
would be to just change the type determinatin code in
DtoCreateNestedContextType to not expect the value to be already
present, because it doesn't need it when isVthisPtr is true anyway.
GitHub: Fixes #217 .
2012-12-19 20:27:19 +01:00
David Nadlinger
080d0cef0f
Debug log formatting fix.
2012-12-19 19:49:03 +01:00
David Nadlinger
e068df24b2
Workaround for AA literal initialization ICE.
...
Just executing toConstElem speculatively in
AssocArrayLiteralExp::toElem probably isn't the best idea
anyway, I would not be surprised if there are other similar bugs.
GitHub: Fixes #248 .
2012-12-19 02:09:19 +01:00
David Nadlinger
03c77865d0
Fix parallel druntime/Phobos build.
2012-12-19 01:50:48 +01:00
David Nadlinger
2988bc46e0
Removed long obsolete (and broken) LLVM IR annotation code.
...
If someone wants to redo this properly, an idea that actually works
would be to use a custom llvm::AssemblyAnnotationWriter.
2012-12-19 01:50:48 +01:00
kai
c250b8b208
Remove virtual keyword not present in DMD source.
...
The virtual keyword is not required when overriding a virtual method.
This commit sync the LDC source with DMD source.
2012-12-18 23:10:30 +01:00
kai
d4521c15c6
Wrap LDC specific code in #ifdef INLLVM / #endif
2012-12-18 18:12:11 +01:00
David Nadlinger
9cfda3a6e9
Also merge ldc.* DDoc fixes into master.
2012-12-17 22:58:29 +01:00
kai
393d142a78
Revert "Wrap LDC specific code in #ifdef IN_LLVM/#endif"
...
This reverts commit d92a1842b1 .
2012-12-17 09:35:29 +01:00
kai
d92a1842b1
Wrap LDC specific code in #ifdef IN_LLVM/#endif
2012-12-17 00:12:06 +01:00
kai
ca2cc75567
Mark LDC changes and remove unused debug? switches.
...
The Param struct is very different between DMD and LDC. This is a start
to mark the differences. This also includes identifying unused switches
- like the debug? switches.
2012-12-17 00:08:46 +01:00
kai
6de735e578
Whitespace fixes
2012-12-17 00:08:06 +01:00
kai
d9bf7d717b
Add more quotes to CMakeLists.txt.
...
A recent changes in LLVM 3.3 triggered this one.
2012-12-16 20:21:17 +01:00
David Nadlinger
95c7a6b525
Merge pre-release cleanup changes.
2012-12-16 19:52:04 +01:00
David Nadlinger
647cd6311b
New NG/ML/forum.
2012-12-16 19:49:42 +01:00
David Nadlinger
b713afe9c4
Cleaned up version output.
...
I removed the copyright notice. I don't think we are obliged to
display it for DMD; on the other hand, if we do, we might also
have to display the libconfig one (LGPL). Thus, this seemed like
the better choice.
The indentation is to align with the registered target output,
which we cannot control.
2012-12-16 18:08:19 +01:00
David Nadlinger
2f54d8ec86
Fixed LDMD help output indentation.
2012-12-16 18:07:53 +01:00
kai
25e229b7bd
Druntime update on llvm.intrinsics
2012-12-16 18:04:48 +01:00
David Nadlinger
1bb14c45d2
Removed trailing whitespace.
2012-12-16 17:19:15 +01:00
David Nadlinger
9458911839
Added LLVM-style license headers to all our files.
2012-12-16 17:19:14 +01:00
David Nadlinger
8b7320c7c2
Removed last instance of CRLF newlines.
2012-12-16 17:19:14 +01:00