Martin Kinkelin
030123410a
Add support for LLVM 9.0.0
...
Including some of Nicholas' fixes in #3144 .
2019-09-25 03:42:18 +02:00
Martin Kinkelin
e52199469f
Upgrade front-end & libs to v2.087.0-beta.1
2019-06-21 15:39:45 +02:00
Martin Kinkelin
3e0e98607f
Fix C assert calls for uClibc
...
Resolves #3078 .
2019-05-31 11:14:13 +02:00
Martin Kinkelin
1c3cb2bade
Refactoring: Replace isMusl() by triple.isMusl()
...
As LLVM 3.9 is the min required version now.
2019-05-31 10:49:45 +02:00
Martin Kinkelin
ef2bbfa09b
Fix DIP1008
...
Invoke _d_newThrowable for exception allocation & initialization, and
increase the reference count in LDC-specific _d_throw_exception for MSVC
targets. Fixes runnable/test19317.d.
2019-04-25 22:16:20 +02:00
Martin Kinkelin
0dbd7ded60
Adapt to switch error lowering to object.__switch_error!()
...
The _d_switch_error function has been removed from druntime.
2019-04-23 22:41:44 +02:00
Martin Kinkelin
3817ab0595
Upgrade front-end & libs to v2.086.0-beta.1
2019-04-23 22:13:13 +02:00
Martin Kinkelin
5e93ed0dfd
Upgrade front-end & libs to v2.085.0-beta.1
2019-03-01 18:19:00 +01:00
Martin Kinkelin
33cadfaca6
Remove ldc.arrayinit & streamline _d_array_slice_copy/_d_arraycast_len with upstream
2019-01-07 15:54:26 +01:00
Martin Kinkelin
32ecbdd266
Upgrade front-end & libs to v2.084.0-beta.1
2018-12-18 02:31:57 +01: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
40cf784cbe
Misc. merge fixes, minor adaptions
2018-08-17 21:31:53 +02:00
Martin
e337cec78a
Slightly refactor RTTIBuilder
2018-04-04 19:59:10 +02:00
Martin
4c1154703e
Improve LoC propagation for error messages in gen/runtime.cpp
2018-04-04 19:59:10 +02:00
Martin
bd623f028a
Redirect access to remaining TypeInfo subtypes through gen/runtime
2018-04-04 19:59:10 +02:00
Martin
d8f60d2f5c
Redirect access to object.d type declarations through gen/runtime
...
Not all type declarations yet (e.g., some TypeInfo subtypes are still
accessed directly), but those already wrapped as LazyType in the
gen/runtime.cpp module (with check and proper error msg in case object.d
doesn't contain a required declaration).
2018-04-04 19:59:10 +02:00
Martin
081b681776
Forward-declare runtime functions lazily
...
Thereby deferring requirements wrt. object.d declarations (Object,
Throwable, TypeInfo, TypeInfo_Class, TypeInfo_Struct...) and paving the
way for a minimal druntime.
This also greatly reduces the `-vv` output for tiny code samples, e.g.,
reduced test cases.
2018-04-04 19:59:10 +02:00
Martin Kinkelin
5e4d04faad
Call _Unwind_Resume() directly (except for ARM EABI) ( #2642 )
...
This fixes the 32-bit std.file unittests on Linux with enabled
optimizations. Quoting the SysV ABI docs:
> This is the only routine in the unwind library which is expected to be
> called directly by generated code: it will be called at the end of a
> landing pad in a "landing-pad" model.
The remaining LDC-specific ARM EABI wrapper (_d_eh_resume_unwind()) is
implemented in assembly (ldc/eh_asm.S), preserving registers apparently.
2018-04-04 19:58:06 +02:00
joakim-noah
04cd029bb9
Pull in Musl's assert function for betterC mode. ( #2604 )
2018-03-04 20:48:07 +01:00
Oleg Nykytenko
907dae171a
Solaris: fix assert for betterC build. ( #2566 )
...
* Solaris: fix assert for betterC build.
* Added parens to avoid relying on operator precedence rules.
2018-02-09 16:07:07 +00:00
Martin
197e65efde
Merge branch 'master' into merge-2.078
...
Conflicts:
driver/main.cpp
gen/cl_helpers.h
gen/declarations.cpp
runtime/druntime
tests/d2/dmd-testsuite
2018-01-20 11:20:17 +01:00
Johan Engelen
f2d9ff3424
Add DMD-style function trace profiling. ( #2477 )
2018-01-14 22:22:59 +01:00
Martin
e1e5229f2a
Clean up more unused runtime function declarations
2018-01-07 05:37:31 +01:00
Martin
f9575686e1
Get rid of obsolete runtime functions
...
For array comparisons (new) and the _adReverse family.
2018-01-07 05:03:37 +01:00
Martin
b83780538f
Adapt to new string-switch lowering
...
Now all done in the front-end, no need for us to handle it manually
anymore. This also fixes tests/semantic/dcompute.d.
2018-01-07 01:43:12 +01:00
Johan Engelen
7e7de7a69e
Move instrumentation options into their own .h/.cpp files. ( #2472 )
2017-12-28 11:44:51 +01:00
Martin
dfe45715ba
Enable catching C++ exceptions for non-MSVC targets
2017-11-26 18:41:01 +01:00
Martin
c378636fcf
druntime: Use adapted upstream DWARF EH
2017-11-26 18:40:21 +01:00
Martin
b59849ab28
Android: Use proper C assert function signature
2017-11-19 18:56:21 +01:00
Martin
aa97794dc6
Annotate C assert function with nounwind attribute
2017-10-25 00:38:05 +02:00
Martin
30b858781b
-betterC: Use C assert function
...
Instead of druntime's _d_assert[_msg], _d_arraybounds and
_d_switch_error.
Tested by dmd-testsuite's runnable/cassert and compilable/betterCarray.
2017-10-25 00:38:05 +02:00
Martin
c251170912
Rename DtoMangled... to getIRMangled...
2017-10-07 14:06:17 +02:00
Martin
192649326d
Remove dead code
2017-10-07 14:06:17 +02:00
Martin
c9a3be1295
Let TargetABI fix up LLVM mangles for more special symbols
...
For ModuleInfos, ModuleRefs, InterfaceInfos, interface vtables & thunks.
2017-10-07 14:06:17 +02:00
Martin
0b28925e9a
Win32: Remove extra leading underscore from D symbol mangling
...
This is compatible with DMD.
2017-10-07 14:06:17 +02: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
Martin
1fb269f940
Drop support for LLVM < 3.7
2017-07-16 02:18:00 +02:00
Martin
5f0e83824b
Update 2 hardcoded strings used in error messages
2017-06-17 19:49:54 +02:00
David Nadlinger
747f7a3dfa
clang-format files touched in d01a91f7
[nfc]
...
Some housekeeping on files that recently saw large changes anyway.
2017-05-24 21:35:40 +01:00
Martin
d01a91f755
Allow multiple occurrences for almost all command-line flags
...
Except for `-sanitize` and `-cache-prune*`.
2017-05-23 20:53:57 +02:00
Johan Engelen
ba1ed88b55
Remove magic +1 constant for parameter indexing. ( #2120 )
...
Remove magic +1 constant for parameter indexing.
LLVM may change the indexing offset in the future. See http://llvm.org/viewvc/llvm-project?view=revision&revision=302060
2017-05-20 08:48:48 +02:00
Johan Engelen
64df1687a8
Fix LLVM 5.0 compilation.
2017-04-14 12:55:19 +02:00
Johan Engelen
9e394e4f99
Fix LLVM 5.0 build. ( #2050 )
...
llvm::AttributeSet was renamed to llvm::AttributeList
2017-03-29 22:26:17 +02:00
Johan Engelen
bd09cdc659
Optimize static array comparisons to a memcmp call for types for which this is valid.
...
Resolves #1632
2017-03-01 00:37:48 +01:00
Johan Engelen
d49acaca27
Fix -finstrument-functions. The wrong return address was used.
2017-01-08 22:30:38 +01:00
Rainer Schuetze
99d455226e
fix build against LLVM master: llvm/Bitcode/ReaderWriter.h has been split and renamed
2016-11-13 11:05:53 +01:00
LemonBoy
596fc82254
Implement -finstrument-functions.
...
Closes #1839 .
2016-11-06 23:17:04 +01:00
kinke
498cf6df8d
Merge pull request #1833 from kinke/reenableRuntimeFunctionsCheck
...
Re-check existing runtime function declarations for matching type
2016-10-23 02:13:24 +02:00
David Nadlinger
c083a67e3e
Mark _d_throw_exception as cold/noreturn
...
`noreturn` have been inferred already by the `unreachable` following
the call, but being explicit can't hurt.
2016-10-21 23:04:00 +01:00
Martin
d7b45f7c7d
Revert "Revert "Check existing runtime function declarations for matching type""
...
This reverts commit 2de6538241
.
2016-10-15 23:30:07 +02:00