Martin
0c0c1ecaf5
Rename DVarValue to DLValue
2016-06-13 22:30:15 +02:00
Martin
963a10b225
Let DValue types handle memory-only types consistently
...
I.e., disallow memory-only values from being represented as DImValues
and disallow getRVal() for such types instead of returning the address.
2016-06-13 22:30:14 +02:00
Martin
039560bd83
Introduce DtoRVal/DtoLVal convenience functions
...
No functional changes intended.
2016-06-13 22:30:13 +02:00
Johan Engelen
9955d8e4e4
For LDC_inline_ir
functions: instantiate a new "alwaysinline" function for each call, which is the current behavior for inline ASM too.
...
When certain attributes are applied to the calling function, like "unsafe-fp-math", the inlined inlineIR function has to have the same attributes otherwise the calling function attribute will be reset to the safe merge of the two: "false". Because the same inlineIR function can be called in different functions using an alias definition, a new function (with possibly different attributes) has to be instantiated upon every call.
Related GH issue #1438
2016-04-21 10:16:33 +02:00
Kai Nacke
763b196a72
Merge remote-tracking branch 'origin/master' into merge-2.070
2016-03-24 22:40:31 +01:00
Martin
88dcb4349a
Refactor setting linkage type and COMDAT
2016-03-20 16:37:44 +01:00
David Nadlinger
90c213b52e
Adapt to changed StringExp API
...
Not tested yet. There is also quite a bit of potential for
further cleanup of the glue layer string manipulation code.
2016-02-14 19:35:40 +01:00
Johan Engelen
69595d41e7
Fix building against LLVM trunk
2015-12-18 13:07:32 +01:00
Rainer Schuetze
f5e99a53aa
fix building against LLVM master
2015-12-08 20:17:32 +01:00
Martin
eacc5ee303
Adapt to recent LLVM 3.8 change
2015-12-04 14:18:31 +01:00
David Nadlinger
9df487edff
gen/ir: clang-tidy the world
2015-11-02 11:30:40 +02:00
David Nadlinger
44b0f7b615
driver/gen/ir: clang-format the world
...
This uses the LLVM style, which makes sense for sharing code
with other LLVM projects. The DMD code we use will soon all
be in D anyway.
2015-11-02 00:28:01 +02:00
Martin
90197d6c72
Simplify working with LLVM attributes
2015-11-01 16:19:27 +01:00
Martin
60d676e2a1
Drop support for LLVM < 3.5
...
This allows to clean up the code a little.
2015-10-30 22:24:05 +01:00
kai
cf8875fad1
Fix for issue #988 .
...
Starting with LLVM 3.7, linkage and COMDAT are 2 different concepts.
This means that LinkageODROnce does not put the object into a COMDAT.
On Windows this resulted in linker error messages.
This PR places all template functions, TypeInfo objects and other
objects into a COMDAT.
2015-09-09 16:46:49 +02:00
David Nadlinger
0922254dd1
Directly emit IR into same llvm::Module instead of using Linker
...
GitHub: Fixes #970 .
2015-06-14 21:36:35 +02:00
David Nadlinger
de73a30f05
Factor out inline IR handling code into gen/inlineir.{cpp, h}
...
It is the only part that will continue to use the IR linker.
2015-06-14 21:27:21 +02:00