Johan Engelen
91d306894e
Add support for LLVM 17. ( #4533 )
2023-12-03 19:07:31 +01:00
Martin Kinkelin
d6d79187e6
Merge fix: Adapt to removed error/warning members
2023-11-06 01:10:16 +01:00
Martin Kinkelin
a053480010
Misc. merge fixes (C++)
2023-11-06 00:33:57 +01:00
Martin Kinkelin
81ea49db13
Merge remote-tracking branch 'origin/master' into llvm16-2
2023-08-12 14:37:01 +02:00
Martin Kinkelin
9ce57807c0
Drop support for LLVM 9 and LLVM 10
2023-07-29 01:12:43 +02:00
Ikey Doherty
ad71070369
For LLVM >= 16, use std::optional APIs
...
Unfortunately when building with LLVM < 15, we're using C++-11,
so the std::optional bits are only available in C++-17.
Even more unfortunately we can't really override this, rather
inherit the fact of using C++-17 when using LLVM > 16.
Thus, we add a slightly messy conditional compilation situation
to allow usage of LDC on older LLVM versions, and with newer
LLVM/libcxx.
Signed-off-by: Ikey Doherty <ikey@serpentos.com>
2023-06-03 22:07:24 +01:00
Johan Engelen
93266c014a
Implement @ldc.attributes.noSplitStack ( #4382 )
2023-05-02 21:53:20 +02:00
Martin Kinkelin
710950246b
Fix compile errors for compiler itself
2023-02-12 17:47:37 +01:00
Johan Engelen
338f352bdb
Add ldc.attributes.callingConvention("...") ( #4299 )
...
Add ldc.attributes.callingConvention("...")
2023-01-19 22:44:19 +01:00
Martin Kinkelin
bdef01e7cc
Raise min LLVM version to 9.0
2022-04-25 23:11:48 +02:00
Martin Kinkelin
143d7b3171
Fix compile & link errors against LLVM 14
2022-03-30 13:51:18 +02:00
Nicholas Wilson
4349388563
Prepare for LLVM15: Headers, attributes ( #3936 )
...
`llvm::AttrBuilder` was changed to require an LLVMContext in its constructor, and can no longer be copied.
declare `DEBIG_TYPE` after includes for the GC2Stack pass as `llvm/Support/GenericDomTreeConstruction.h `(included from `llvm/IR/Dominators.h` `#define`s and `#undef`s it.
`llvm::DIBuilder::createExpression` now takes an `ArrayRef<uint64_t>` instead of `int64_t`. EmitLocalVariable has similarly changed
2022-03-11 16:38:49 +01:00
Martin Kinkelin
0fd5c6ec16
Merge pull request #3873 from kinke/no_reverse
...
Don't reverse parameters order for extern(D)
2022-03-08 17:03:17 +01:00
Johan Engelen
5d1080c26d
Fix @ldc.attributes.noSanitize compilation with -w -de
. ( #3930 )
2022-03-03 03:53:28 +01:00
Martin Kinkelin
4bd8dcd91b
Adapt to new TOK and EXP enum classes
2022-02-16 20:52:07 +01:00
Johan Engelen
6a56267699
Add @ldc.attributes.noSanitize UDA to selectively disable sanitizer instrumentation of functions. ( #3889 )
2022-01-01 14:27:36 +01:00
Martin Kinkelin
4fcbd692bb
Add @hidden UDA ( #3855 )
...
To hide a symbol in the sense of making it DSO-local. An `export`
visibility is stronger and overrides the UDA.
On non-Windows, also newly hide symbols (without `export`) with
linkonce_odr etc. linkage.
2021-10-23 17:50:18 +02:00
Nicholas Wilson
1568d0cdca
Fix compilation with LLVM 14 ( #3822 )
2021-09-17 16:41:49 +02:00
Martin Kinkelin
c0630840b7
Fix little C++ header regressions
2021-02-28 17:40:11 +01:00
Martin Kinkelin
079858f3b2
Upgrade frontend & libs to early v2.095.0 ( dlang/dmd@a4274b3c39 )
2020-11-27 17:45:13 +01:00
Martin Kinkelin
96b9cde428
Add support for LLVM 11
...
One major change is the removal of llvm::CallSite, which I've replaced
by llvm::CallBase*.
2020-09-26 01:04:50 +02:00
Martin Kinkelin
834f666ce5
Raise min LLVM version to 6.0 ( #3493 )
2020-07-13 20:42:50 +02:00
Fangrui Song
0a007a55f8
Fix StringRef conversion for LLVM 11 (777180a32b61070a10dd330b4f038bf24e916af1) ( #3305 )
2020-02-01 02:52:35 +01:00
Martin Kinkelin
26673c174f
Refactoring: Replace Expression::op check followed by static cast to Expression::is<ExpressionType> ( #3141 )
...
This may negatively impact performance, as the (final, i.e.,
non-virtual) Expression::is... family is implemented in D and not
available inline in the C++ headers.
2020-01-15 12:54:05 +01:00
Martin Kinkelin
1f5c442519
Revise recent adaptations to frontend refactorings
2020-01-06 17:01:31 +01:00
Martin Kinkelin
4ac7f0554b
Adapt to frontend refactorings
2019-12-22 16:29:45 +01:00
Martin Kinkelin
e52199469f
Upgrade front-end & libs to v2.087.0-beta.1
2019-06-21 15:39:45 +02:00
Martin Kinkelin
cc336d6df1
Support generic ldc.attributes.llvmAttr UDAs for function parameters
2019-03-31 20:59:54 +02:00
Martin Kinkelin
4a23399236
Aim for consistent #includes (order + dir prefix)
...
I surely missed a few.
2018-10-20 16:19:46 +02:00
Martin Kinkelin
7776c4081b
Upgrade frontend & libs to v2.083.0-beta.1
2018-10-20 16:19:46 +02:00
Martin Kinkelin
5c24f60cf9
Raise min LLVM version to 3.9 ( #2872 )
2018-10-15 22:31:59 +02:00
Martin Kinkelin
7224de5e0c
Upgrade LLVM to v7.0.0
2018-09-26 17:21:35 +02:00
Martin Kinkelin
c10cf86403
Add @naked UDA
...
Adding the LLVM `naked` function attribute and disabling LDC's
prologue/epilogue too.
2018-07-27 22:53:55 +02:00
Martin Kinkelin
f2c718d7a4
Make generic llvmAttr("name") UDA support non-string attributes too
...
As preparation for a trivial addition to ldc.attributes, probably more
to follow over time:
enum naked = llvmAttr("naked");
2018-07-12 01:46:25 +02:00
Ivan Butygin
cbeb2b45d6
@dynamicCompileEmit attribute ( #2747 )
2018-06-26 21:59:02 +03:00
Johan Engelen
66ad3791ef
Add the ldc.attributes.assumeUsed attribute corresponding to "attribute((used))” in GNU C. ( #2457 )
...
The attribute adds the symbol to `llvm.used`.
2017-12-28 16:29:46 +01:00
Nicholas Wilson
baf3654868
Fix compilation with most recent LLVM ( #2428 )
...
Fix LDC compilation with latest LLVM (Mostly renaming and moving headers).
2017-12-03 18:25:43 +08:00
Ivan
33c6cbb807
Renaming
2017-11-09 21:29:32 +03:00
Ivan
eb370e1e6a
Rename attributes
2017-11-09 21:05:45 +03:00
Ivan
044dd7bc9d
Fix typo
2017-11-02 20:22:52 +03:00
Ivan
a6d788cdb5
Set "target-cpu" and "target-features" function attributes to jit host except when they are set explicitly by user
2017-10-19 19:06:04 +03:00
Ivan
dc78564bf4
Merge remote-tracking branch 'origin/master' into runtime_compile_v5
2017-10-14 12:28:32 +03:00
Ivan
42f283c221
D dynamic compilation support
2017-08-27 17:42:55 +03:00
Martin
2616261fd2
Revise all LDC-specific errors/warnings/deprecs and insert backticks
...
For DMD's new syntax highlighting. I grepped in all .{h,cpp} files only.
2017-08-03 22:53:49 +02:00
Nicholas Wilson
69ad69e872
[dcomptue] semantic analysis & lit tests ( #2143 )
...
* CI & semantic analysis
* semantic and codegen tests
2017-05-29 16:02:17 +08:00
kinke
151e83dc6b
Fix C++ warnings ( #2140 )
2017-05-26 13:45:15 +02:00
Nicholas Wilson
ae6ff33fc1
[dcomptue] codegen ( #2126 )
...
* code generation
* simplify logic
* apply clang-format
* Undo completely inane choice by clang-format
* Guard the use of the command line args.
2017-05-24 08:55:32 +08:00
Rainer Schuetze
ae7f1a7f2c
fix buildinng against LLVM master ( #2111 )
2017-05-16 20:43:29 +02:00
Nicholas Wilson
9a3cb2b41e
Pooled IDs ( #2116 )
...
Use pooled identifiers for magic UDAs and dcompute. Fixes #2011
2017-05-16 17:10:41 +08:00
Johan Engelen
bc119d453b
Add specific warning for @fmf("contract") when it's not supported by LLVM
2017-04-20 22:55:08 +02:00