Commit Graph

2713 Commits

Author SHA1 Message Date
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
26e6503258 Fix struct literal rvalue change 2013-01-30 07:13:12 +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
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 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
kai
6cb782791e Fix build warnings 2013-01-27 00:38:17 +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
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
sgraf812
98669eef5b using rsp instead of esp
Using esp resulted in crashes on x64.
2013-01-26 13:24:13 +01:00
kai
ad4e0e57d2 Added new LLVM 3.3 intrinsics 2013-01-25 19:42:19 +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 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
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
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
81aee147cf Fold in ctlz/cttz updates. 2013-01-12 01:23:55 +01:00
David Nadlinger
f02e4b1925 Fix overly conservative inlining prediction.
A "statementsToo" flag was added to DMD, which disables inlining
of pretty much any functions that actually return a value – set it
to false for our purposes.

The other parts of the diff are just cosmetic.
2013-01-12 01:23:55 +01:00
kai
6ddb524b91 More LLVM 3.3 changes 2013-01-11 22:46:36 +01:00
kai
a11459bc31 "The Great Renaming" continues.
More changes to match the renamed files of LLVM 3.3.
2013-01-06 17:17:30 +01:00
kai
82a3216619 Simplify code.
The code to generate a constant string is too complex. Just use the
method provided by LLVM.
The complexity was introduced during a LLVM refactoring....
2013-01-04 14:35:24 +01:00
David Nadlinger
d694e37f4a Fix test suite builds: backport copyright year change. 2013-01-04 01:43:56 +01:00
David Nadlinger
2f8705f4d6 Don't pass file name to executable on '-run'. 2013-01-04 01:42:01 +01:00
David Nadlinger
615a2b5839 LDMD: Fixed -run parameter parsing. 2013-01-03 21:12:56 +01:00
kai
272e7b7a55 Follow "The Great Renaming" in LLVM 3.3
This time VMCore was renamed to IR. Several top level include
files were moved to new subfolder IR.
2013-01-03 08:52:23 +01:00
David Nadlinger
1caf4c9c26 Handle plain AA type <-> AA struct return type mismatch.
GitHub: Fixes #214.
2012-12-31 12:10:46 +01:00
David Nadlinger
08708917bc D1 build fix.
The workaround could later be merged to D1 if the same problem
starts to appear there as well.
2012-12-31 06:27:11 +01:00
David Nadlinger
dc7e328356 Merge druntime TypeInfo declaration fix.
GitHub: Fixes #250.
2012-12-31 05:57:05 +01:00
David Nadlinger
39e3e3a678 Replace template symbol module fix with more localized hack.
This reverts commit c4adbedcc, which would have fixed the
problem at its roots, but caused strange template function
attribute inference failures in D-YAML, presumably due to
the different order of semantic3 execution on the templates.
2012-12-31 05:46:29 +01:00
kai
2898e5cac3 Add support for PPC 128bit doubledouble type.
On a PowerPC target the datatype real is mapped to PPC 128bit doubledouble type.
Please note that this yet does not work if you cross compile from a different
architecture.
2012-12-30 17:18:36 +01:00
kai
ce47e5a083 Change in core.stdc.stdarg for PPC64 2012-12-30 17:18:11 +01:00
kai
e684d10ac7 Cleanup of complex type handling.
- replace if .. else cascades with swicth
- replace assert(0) with llvm_unreachable as default case
- add some whitespaces in parameter lists
2012-12-30 14:56:53 +01:00
kai
a3975b7f47 Replace llvm::Function.getFnAttributes with llvm::Function.getAttributes.
This is a recent change in LLVM 3.3.
2012-12-30 14:27:51 +01:00
David Nadlinger
c4adbedcc6 Emit template symbols into correct module during many-at-once compilation.
Previously, it could happen that regular symbols referenced
only as part of a template instance (e.g. a lambda passed as
an alias parameter) were not even emitted in the wrong module,
but not at all because mustDefineSymbol would return false to
them when being analyzed during codegen of the wrong module.

This issue might affect incremental compilation with DMD as
well, and the fix should be discussed with the upstream devs.

GitHub: Fixes #249.
2012-12-30 02:37:54 +01:00
David Nadlinger
87e72d27b3 Cleanup: Added missing include, killed superfluous newline in debug log. 2012-12-30 02:36:54 +01:00
kai
b571d7a6c5 Add core.stdc.stdarg support for PPC64 2012-12-29 02:47:54 +01:00
kai
14b48bdca4 Add some comments to ABI interface 2012-12-28 20:41:05 +01:00
David Nadlinger
f1f0486b6e Implement ordered delegate comparisons.
GitHub: Fixes #256.
2012-12-28 18:08:49 +01:00
David Nadlinger
33093a7403 Factor out TOK to icmp predicate conversion into helper method. 2012-12-28 18:08:49 +01:00
kai
7b5055b2a2 Started to add support for PPC64 in druntime 2012-12-28 05:50:50 +01:00
David Nadlinger
b25b46f65b Merge test case update. 2012-12-27 23:28:01 +01:00
David Nadlinger
eac742b9f7 Don't create IrType twice for aggregate arrays with forward references.
GitHub: Fixes #257.
2012-12-27 23:22:46 +01:00
kai
e8a084f9ae Add palignr and pshufb to x86_32 2012-12-26 21:27:19 +01:00