Commit Graph
3055 Commits
Author SHA1 Message Date
kai f806ec0ed5 Attribute holds no longer multiple values in LLVM 3.3.
The solution is to replace Attribute with AttrBuilder in IrFuncTyArg.
Then the argument attributes can be easily manipulated and transformed
into the final AttributeSet.
2013-02-03 15:09:36 +01:00
kai 0ff8d2f9f1 Fix a compile error with LLBM 3.3 2013-02-03 12:29:32 +01:00
kai 6f224c3fdb Fix some compile warnings for LLVM 3.0 2013-02-03 12:26:48 +01:00
kai 23f3fd18f1 Merge branch 'master' into merge-2.061-2 2013-02-03 10:54:57 +01:00
Kai Nacke b1cdbda82b Merge pull request #279 from redstar/attr
Replace AttributeWithIndex for LLVM 3.3.
2013-02-02 14:13:23 -08:00
kai fffb23f7ce Replace AttributeWithIndex for LLVM 3.3.
The helper class AttribteWithIndex is gone in LLVM 3.3. Instead a
combination of AttrBuilder and AttributeSet must be used.
2013-02-02 22:04:19 +01:00
kai bfc23acf30 Merge branch 'master' into merge-2.061-2 2013-02-02 15:27:51 +01:00
Kai Nacke a79d7e13d0 Merge pull request #278 from redstar/maint
Small changes
2013-02-02 06:24:35 -08:00
kai 9081102f24 Use AttrBuilder for LLVM >= 3.2.
Due to a misunderstanding of the new semantics of the Attribute(s) class,
this class was used in places where class AttrBuilder should be used.
2013-02-02 15:01:13 +01:00
kai 045d50deb5 Replace SmallVector/vector with C array for type lists 2013-02-02 15:01:13 +01:00
kai c174f6d689 Fix struct literal rvalue change 2013-01-30 07:14:49 +01:00
kai 26e6503258 Fix struct literal rvalue change 2013-01-30 07:13:12 +01:00
David Nadlinger e43759cbc7 Merge pull request #273 from kinke/merge-2.061-2
Merged x86 and x86_64 assembly parsers.
2013-01-29 04:53:15 -08:00
kai 9a0df005f3 Add ABI infrastructure for PPC64.
The generic ABI works well with PPC64 except for LLVM PR 14779.
(http://llvm.org/bugs/show_bug.cgi?id=14779)
The new ABI infrastucture is based on the UnknownTargetABI. The
PPC64 specific parts coming soon.
2013-01-28 22:08:25 +01:00
kai 9390374f4d AttributeSet::get(... AttributeWithIndex ...) is now private.
AttributeWithIndex is really going away in LLVM 3.3. This is a
horrible hack to keep everything compiling. Attribute handling
needs some rework.
2013-01-28 22:08:25 +01:00
kai b2a19959bf Add ABI infrastructure for PPC64.
The generic ABI works well with PPC64 except for LLVM PR 14779.
(http://llvm.org/bugs/show_bug.cgi?id=14779)
The new ABI infrastucture is based on the UnknownTargetABI. The
PPC64 specific parts coming soon.
2013-01-28 22:01:29 +01:00
Martin 25b6b3abf2 Remove AsmOpInfo::takesLabel(), add FIXME comment. 2013-01-28 21:05:48 +01:00
David Nadlinger c432712d72 Update runtime version to 2.061. 2013-01-28 21:03:49 +01:00
Martin 8a463444ab Fix negated sc->func->naked for x64 and remove !IN_LLVM block. 2013-01-28 20:00:08 +01:00
kai 145e1b5b24 AttributeSet::get(... AttributeWithIndex ...) is now private.
AttributeWithIndex is really going away in LLVM 3.3. This is a
horrible hack to keep everything compiling. Attribute handling
needs some rework.
2013-01-28 19:20:57 +01:00
kai 69d5576141 Merge branch 'master' into merge-2.061-2
Conflicts:
	gen/runtime.cpp
2013-01-28 06:58:26 +01:00
Kai Nacke e7e699870e Merge pull request #274 from redstar/runtime
Replace vector/SmallVector with C array for parameter lists.
2013-01-27 21:56:09 -08:00
kai 145978bb51 Replace vector/SmallVector with C array for parameter lists.
This has several advantages:
- the code is shorter
- no need to specify number of elements
- only ArrayRef object is created
2013-01-27 23:12:37 +01:00
Martin 62cb04f6f6 Merged x86 and x86_64 assembly parsers. 2013-01-27 15:31:26 +01:00
kai a817a85bf8 Merge branch 'master' into merge-2.061-2 2013-01-27 00:38:47 +01:00
kai 6cb782791e Fix build warnings 2013-01-27 00:38:17 +01:00
kai a3fcdafd1f Merge branch 'master' into merge-2.061-2
Conflicts:
	gen/runtime.cpp
2013-01-27 00:20:21 +01:00
Kai Nacke de596d994c Merge pull request #272 from redstar/tollvm
Replace std::vector with llvm::SmallVector and C arrays in gen/tollvm.cpp.
2013-01-26 15:17:01 -08:00
kai 28e3a4d80f Replace std::vector with llvm::SmallVector in gen/tollvm.cpp. 2013-01-27 00:13:20 +01:00
Kai Nacke 6e3d847ca0 Merge pull request #271 from redstar/runtime
Replace std::vector with llvm::SmallVector in gen/runtime.cpp.
2013-01-26 12:20:56 -08:00
kai ed5ede3fda Replace std::vector with llvm::SmallVector in gen/runtime.cpp.
The vector arrays for the parameter lists are a perfect fit for
llvm::SmallVector: the vector size is small and known in advance.
2013-01-26 21:01:33 +01:00
kai e68a0fa2a6 Merge branch 'master' into merge-2.061-2 2013-01-26 17:40:24 +01:00
kai c0284bac2b 2nd attempt on the latest LLVM 3.3 changes.
The previous commit only worked on Windows.
2013-01-26 17:34:08 +01:00
kai 26385c55fe More LLVM 3.3 changes to the AttributeSet class. 2013-01-26 16:27:20 +01:00
kai b2f4ac0772 Do not mix release and debug build for MSVC 2013-01-26 15:52:55 +01:00
kai dc69c67bbe Merge branch 'master' into merge-2.061-2 2013-01-26 13:24:33 +01:00
sgraf812 98669eef5b using rsp instead of esp
Using esp resulted in crashes on x64.
2013-01-26 13:24:13 +01:00
kai 6a02db791a Add new LLVM 3.3 intrinsics 2013-01-25 20:25:32 +01:00
kai ad4e0e57d2 Added new LLVM 3.3 intrinsics 2013-01-25 19:42:19 +01:00
kai bc182ab901 Merge branch 'master' into merge-2.061-2 2013-01-24 07:35:58 +01:00
kai b4aca21422 More LLVM 3.3 changes.
There is ongoing rework on the AttributeSet class. Also the constructor
of APFloat changed.
2013-01-23 18:22:45 +01:00
kai cb22044f58 Merge branch 'master' into merge-2.061-2
Conflicts:
	dmd2/interpret.c
2013-01-21 18:06:13 +01:00
Kai Nacke 4005410794 Merge pull request #268 from redstar/endian
Make frontend endian-aware.
2013-01-21 00:11:32 -08:00
kai 55560bf382 Make frontend endian-aware.
In many parts the DMD frontend assumes a little endian CPU. In some
parts there are checks for endianess but they are incomplete and the
used definition is wrong. (Test for endianess will be removed in dmd
2.062.)
In this commit I add the required #if's and also add a CMake test for
endianess because there is no single compiler definition to check for.
2013-01-21 08:41:21 +01:00
kai b158749083 Merge branch 'master' into merge-2.061-2 2013-01-13 12:03:18 +01:00
David Nadlinger 9e9acb9c4b Split Travis test execution into debug and release tests.
Hopefully enough to reliably make it below the time limit,
even if the load distribution is not quite symmetric.
2013-01-12 18:33:18 +01:00
David Nadlinger 7974c33c61 Merge branch 'master' into merge-2.061-2. 2013-01-12 14:31:54 +01:00
David Nadlinger 4a6444c320 Revert "Fix overly conservative inlining prediction".
The commit itself should be fine, but the more aggressive
inlining being done on the GC code (due to the gcbits functions
being in available in gc.gcx) seems to have uncovered a
misoptimization bug in LLVM (at least in 3.2) on x86, leading to
various unit tests failing in relase mode.

This reverts part of commit f02e4b1925.
2013-01-12 14:30:59 +01:00
David Nadlinger 30caa4bfe6 Merge branch 'master' into merge-2.061-2 2013-01-12 01:27:02 +01:00
David Nadlinger 81aee147cf Fold in ctlz/cttz updates. 2013-01-12 01:23:55 +01:00