Johan Engelen
3ec79179b4
PGO: refactor such that there can be IR-based and frontend-based PGO.
2018-01-15 23:59:14 +01:00
Martin
cfad799f48
Merge 2.078.0 front-end and stdlibs
2018-01-06 01:39:18 +01:00
Johan Engelen
f86e33f1d0
Remove LDC_WITH_PGO
. ( #2476 )
...
It's no longer needed, all our builds have it set to true.
2017-12-29 23:54:32 +01:00
kinke
6d6167d83d
MSVC: Emit ModuleInfo references into .minfo section ( #2383 )
...
Instead of the legacy linked list.
2017-10-25 00:15:40 +02:00
Johan Engelen
e34ac614f6
Move the call to the D-style code-coverage constructor (registration of code coverage for the current module) to the "ictor" constructors that are not included in cycle detection. ( #2382 )
...
Resolves issue #2177 .
2017-10-25 00:14:28 +02:00
Martin
c251170912
Rename DtoMangled... to getIRMangled...
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
Joakim
c0c4b7d6cb
Switch Android onto the sectionELF style of module registry, following upstream, but leave out the dso_registry stuff that's unused on Android.
2017-06-25 09:06:46 +05:30
Martin
383c2d3a59
Range-ify usages of front-end Arrays
2017-06-04 00:29:44 +02:00
kinke
151e83dc6b
Fix C++ warnings ( #2140 )
2017-05-26 13:45:15 +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
Martin
95c1d38e2e
Integrate module gen/programs into driver/tool
2017-03-13 23:31:32 +01:00
Martin
dca21939e1
Merge 2.072.2 front-end
...
The part needing most attention was ddmd.root.ctfloat, ddmd.target (incl.
gen/target.cpp) and ddmd.builtin. The front-end is now prepared for
elaborate compile-time floating-point types to allow for proper cross-
compilation.
This version still uses the host's `real` type for compile-time reals,
except for MSVC hosts, which still use 64-bit doubles (when compiled with
DMD host compiler too).
Some other changes:
* semantic*() of Statements extracted from statement.d to statementsem.d
* mangle() -> mangleToBuffer()
* Identifier::string -> toChars()
* Token::float80value => floatvalue
* Dsymbol::isAggregateMember() => isMember()
* BoolExp is no more
* ddmd.root.ctfloat: LDC-specific CTFE builtins
2017-01-29 15:48:03 +01:00
Ivan Butygin
a26bfc1223
Refactor code to hide direct IrFunction->func usage and add convenient functions ( #1911 )
2017-01-17 22:40:32 +01:00
Martin
29d52f0362
Sync command-line options and descriptions with DMD
2016-12-20 22:08:23 +01:00
LemonBoy
62a2252028
Implement the betterC switch like DMD does.
...
Namely, don't emit the ModuleInfo.
2016-11-25 17:40:35 +01:00
Johan Engelen
7deae74d89
Only emit llvm.used _once_ when compiling multiple D modules into one LLVM module.
2016-10-26 21:59:18 +09:00
Johan Engelen
eb0f97aaf1
ELF: Use magic linker symbol names for begin/end of .minfo.
2016-10-17 09:52:33 +02:00
David Nadlinger
bb2b648d8e
Shared library support for OS X ( #1705 )
2016-10-15 16:17:39 +01:00
Martin
94d607acb2
Streamline output filenames with DMD
...
Incl. functional changes, especially wrt. preserved paths for object files
(previously only when creating a static/dynamic library, now only if
specifying the -op switch).
2016-09-07 09:53:35 +02:00
Martin
aed881350a
Refactor output filename generation/validation
2016-09-07 09:53:35 +02:00
Martin
41fb7830df
Remove LDC-specific global.obj_ext_alt
...
No functional changes intended.
2016-08-28 21:41:04 +02:00
David Nadlinger
d47bdb234a
gen: Use single ldc.register_dso function for both module ctor/dtor
...
This reduces the size of a statically linked Phobos-based
Hello World by 11 kB on Linux x86_64.
Also creates a header file for gen/module.cpp, which has been
renamed to "modules" such as not to conflict with the frontend
header file.
2016-08-18 16:28:41 +02:00