1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
Commit Graph

1747 Commits

Author SHA1 Message Date
LLVM GN Syncbot
24ae2470e3 [gn build] Port 9a5af541ee05 2021-03-16 14:03:53 +00:00
LLVM GN Syncbot
b19c601bda [gn build] Port 4f198b0c27b0 2021-03-16 02:41:16 +00:00
LLVM GN Syncbot
4791deff1c [gn build] Port ecf6466f01c5 2021-03-15 23:01:19 +00:00
Nico Weber
b7c9aa8059 [gn build] merge af2796c76d2f a bit more
The default is fine on non-Win, but on Win this needs an explicit
setting now that lit no longer has the right default.
2021-03-15 18:20:54 -04:00
Nico Weber
19f76964c4 [gn build] merge 9bcf0eff99 2021-03-15 17:05:05 -04:00
Nico Weber
f75a03ef22 [gn build] kind of merge af2796c76d2f
Good enough for now. If we need more, we'll do the usual
platform-dependent hardcoding that in practice works for everything else
too.
2021-03-15 17:01:00 -04:00
Nico Weber
4f01a02f9f [gn build] (semi-manually) port b136a74efc54 2021-03-15 12:51:12 -04:00
LLVM GN Syncbot
54ae663167 [gn build] Port 13e49dcee48f 2021-03-15 15:24:41 +00:00
Stephen Kelly
9bf084b8f1 [AST] Add generator for source location introspection
Generate a json file containing descriptions of AST classes and their
public accessors which return SourceLocation or SourceRange.

Use the JSON file to generate a C++ API and implementation for accessing
the source locations and method names for accessing them for a given AST
node.

This new API can be used to implement 'srcloc' output in clang-query:

  http://ce.steveire.com/z/m_kTIo

The JSON file can also be used to generate bindings for other languages,
such as Python and Javascript:

  https://steveire.wordpress.com/2019/04/30/the-future-of-ast-matching

In this first version of this feature, only the accessors for Stmt
classes are generated, not Decls, TypeLocs etc.  Those can be added
after this change is reviewed, as this change is mostly about
infrastructure of these code generators.

Also in this version, the platforms/cmake configurations are excluded as
much as possible so that support can be added iteratively.  Currently a
break on any platform causes a revert of the entire feature.  This way,
the `OR WIN32` can be removed in a future commit and if it breaks the
buildbots, only that commit gets reverted, making the entire process
easier to manage.

Differential Revision: https://reviews.llvm.org/D93164
2021-03-15 10:52:44 +00:00
Stephen Kelly
ec57b30294 Revert "[AST] Add generator for source location introspection"
This reverts commit 91abaa1f8d97e8efa249c31686fd643ff5f1e2c2.
2021-03-15 01:16:10 +00:00
Stephen Kelly
84c98ffec3 [AST] Add generator for source location introspection
Generate a json file containing descriptions of AST classes and their
public accessors which return SourceLocation or SourceRange.

Use the JSON file to generate a C++ API and implementation for accessing
the source locations and method names for accessing them for a given AST
node.

This new API can be used to implement 'srcloc' output in clang-query:

  http://ce.steveire.com/z/m_kTIo

The JSON file can also be used to generate bindings for other languages,
such as Python and Javascript:

  https://steveire.wordpress.com/2019/04/30/the-future-of-ast-matching

In this first version of this feature, only the accessors for Stmt
classes are generated, not Decls, TypeLocs etc.  Those can be added
after this change is reviewed, as this change is mostly about
infrastructure of these code generators.

Also in this version, the platforms/cmake configurations are excluded as
much as possible so that support can be added iteratively.  Currently a
break on any platform causes a revert of the entire feature.  This way,
the `OR WIN32` can be removed in a future commit and if it breaks the
buildbots, only that commit gets reverted, making the entire process
easier to manage.

Differential Revision: https://reviews.llvm.org/D93164
2021-03-15 00:00:29 +00:00
Stephen Kelly
9a84a85fd4 Revert "[AST] Add generator for source location introspection"
This reverts commit 477e4b974653f92960c0bf569d88da7baacef68a.
2021-03-14 22:51:45 +00:00
Stephen Kelly
99ea2ede68 [AST] Add generator for source location introspection
Generate a json file containing descriptions of AST classes and their
public accessors which return SourceLocation or SourceRange.

Use the JSON file to generate a C++ API and implementation for accessing
the source locations and method names for accessing them for a given AST
node.

This new API can be used to implement 'srcloc' output in clang-query:

  http://ce.steveire.com/z/m_kTIo

The JSON file can also be used to generate bindings for other languages,
such as Python and Javascript:

  https://steveire.wordpress.com/2019/04/30/the-future-of-ast-matching

In this first version of this feature, only the accessors for Stmt
classes are generated, not Decls, TypeLocs etc.  Those can be added
after this change is reviewed, as this change is mostly about
infrastructure of these code generators.

Also in this version, the platforms/cmake configurations are excluded as
much as possible so that support can be added iteratively.  Currently a
break on any platform causes a revert of the entire feature.  This way,
the `OR WIN32` can be removed in a future commit and if it breaks the
buildbots, only that commit gets reverted, making the entire process
easier to manage.

Differential Revision: https://reviews.llvm.org/D93164
2021-03-14 22:32:42 +00:00
Nico Weber
4d1294714b Revert "[gn build] (manually) kind of merge d627a27d26"
This reverts commit 5123327edab15bacb44a63a874d9d379d4873407.
d627a27d26 was reverted in e0f70a8a979f.
2021-03-14 12:18:22 -04:00
Nico Weber
a70aec2a37 [gn build] (manually) kind of merge d627a27d26
This only merges the no-op generator part for now.
2021-03-14 09:19:44 -04:00
Nico Weber
3e5de0519f Revert "[gn build] (manually) port bcdd40f802a5"
This reverts commit 0bd9d9aa3ce06268b565369b9e71b636792d35e0.
bcdd40f802a5 was reverted in 4f9cc1512d51af607
2021-03-12 15:04:20 -05:00
Nico Weber
d1f2a244f8 [gn build] (manually) port bcdd40f802a5 2021-03-12 12:15:52 -05:00
LLVM GN Syncbot
ff7a1a2d1e [gn build] Port 5433a79176a3 2021-03-11 18:35:32 +00:00
Nico Weber
0c13fbf3c6 [gn build] (manually) Port d6a0560bf258 2021-03-10 21:56:59 -05:00
LLVM GN Syncbot
52826a6281 [gn build] Port 4f16e177e104 2021-03-10 23:36:48 +00:00
Sriraman Tallam
af0d8fe721 Remove original implementation of UniqueInternalLinkageNames pass.
D96109 was recently submitted which contains the refactored implementation of
-funique-internal-linakge-names by adding the unique suffixes in clang rather
than as an LLVM pass. Deleting the former implementation in this change.

Differential Revision: https://reviews.llvm.org/D98234
2021-03-10 11:57:40 -08:00
LLVM GN Syncbot
fdcc3569f9 [gn build] Port 5c26be214d9f 2021-03-08 21:01:52 +00:00
LLVM GN Syncbot
9d2b069616 [gn build] Port 5eb7a5814a5c 2021-03-08 20:33:54 +00:00
LLVM GN Syncbot
2e8b4d4c3b [gn build] Port 5509748f2ce5 2021-03-08 20:33:53 +00:00
LLVM GN Syncbot
c57d20ffa7 [gn build] Port 503343191e12 2021-03-08 20:33:53 +00:00
Nico Weber
6d06088eb6 [gn build] (manually) port ebe6161c54b9 2021-03-08 14:56:41 -05:00
Nico Weber
cef0f85d70 [gn build] allow setting clang_base_path to a source-absolute path
With this, you can set `clang_base_path = "//out/gn1"` in `out/gn2/args.gn` and
the build in out/gn2 will use clang and lld from out/gn1.

Setting `clang_base_path` to an absolute path (with e.g.
`clang_base_path = getenv("HOME") + "/src/..."`) should behave as before.

Differential Revision: https://reviews.llvm.org/D97989
2021-03-05 12:13:51 -05:00
LLVM GN Syncbot
19b1fd4d0e [gn build] Port a60d06d8b757 2021-03-05 11:09:38 +00:00
Nico Weber
9bd7831b75 [gn build] port b973e2e2f27e 2021-03-04 18:41:04 -05:00
LLVM GN Syncbot
e39ae82bd1 [gn build] Port 561abd83ffec 2021-03-04 22:58:35 +00:00
LLVM GN Syncbot
38fadd3afe [gn build] Port d7834556b7ad 2021-03-04 21:34:02 +00:00
Nico Weber
a392c9a7cc [gn build] port db06088d63f8 2021-03-04 16:33:24 -05:00
Nico Weber
0c1c0ffdba [gn build] port e9f9ec837d447857 2021-03-04 11:40:12 -05:00
LLVM GN Syncbot
a81b7fdeaf [gn build] Port d791695cb517 2021-03-04 11:17:51 +00:00
Stefan Gränitz
4479241a3b Revert "hack to unbreak check-llvm on win after D97335" in attempt for actual fix
This reverts commit 900f076113302e26e1939541b546b0075e3e9721 and attempts an actual fix: All failing tests for llvm-jitlink use the `-noexec` flag. The inputs they operate on are not meant for execution on the host system. Looking e.g. at the MachO_test_harness_harnesss.s test, llvm-mc generates input machine code with "x86_64-apple-macosx10.9".

My previous attempt in bbdb4c8c9bcef0e8db751630accc04ad874f54e7 disabled the debug support plugin for Windows targets, but what we would actually want is to disable it on Windows HOSTS.

With the new patch here, I don't do exactly that, but instead follow the approach for the EH frame plugin and include the `-noexec` flag in the condition. It should have the desired effect when it comes to the test suite. It appears a little workaround'ish, but should work reliably for now. I will discuss the issue with Lang and see if we can do better. Thanks @thakis again for the temporary fix.
2021-03-03 22:35:36 +01:00
Nico Weber
e45cab4d4c hack to unbreak check-llvm on win after https://reviews.llvm.org/D97335
fix attempt http://reviews.llvm.org/rGbbdb4c8c9bcef0e didn't work

The problem is that the test tries to look up
llvm_orc_registerJITLoaderGDBWrapper from the llvm-jitlink.exe
executable, but the symbol wasn't exported. Just manually export it
for now. There's a FIXME with a suggestion for a real fix.
2021-03-02 18:10:28 -05:00
Nico Weber
0cde944f58 [gn build] fix llvm-jitlink tests on linux after ef2389235c5dec0 2021-03-02 13:41:09 -05:00
Nico Weber
bdc0a8276c [gn build] (manually) port 99a6d003edbe 2021-03-02 10:31:59 -05:00
Nico Weber
f0eda1a2cd [gn build] Port f47ff8cff1ed 2021-03-02 10:31:59 -05:00
Nico Weber
84bbbf8474 [gn build] Port ef2389235c5d 2021-03-02 10:31:59 -05:00
David Green
454def1019 [ARM] Rename pass to MVETPAndVPTOptimisationsPass
This pass has for a while performed Tail predication as well as VPT
block optimizations. Rename the pass to make that clear.
2021-03-01 21:57:19 +00:00
Nico Weber
41497c5777 [libclang] Remove LIBCLANG_INCLUDE_CLANG_TOOLS_EXTRA
LIBCLANG_INCLUDE_CLANG_TOOLS_EXTRA causes clang-tools-extra tools
to be included in libclang, which caused a dependency cycle. The option
has been off by default for two releases now, and (based on a web search
and mailing list feedback) nobody seems to turn it on. Remove it, like
planned on https://reviews.llvm.org/D79599

Differential Revision: https://reviews.llvm.org/D97693
2021-03-01 13:21:59 -05:00
Jez Ng
5415c595ac [lld-macho] Switch default to new Darwin backend
The new Darwin backend for LLD is now able to link reasonably large
real-world programs on x86_64. For instance, we have achieved
self-hosting for the X86_64 target, where all LLD tests pass when
building lld with itself on macOS. As such, we would like to make it the
default back-end.

The new port is now named `ld64.lld`, and the old port remains
accessible as `ld64.lld.darwinold`

This [annoucement email][1] has some context. (But note that, unlike
what the email says, we are no longer doing this as part of the LLVM 12
branch cut -- instead we will go into LLVM 13.)

Numerous mechanical test changes were required to make this change; in
the interest of creating something that's reviewable on Phabricator,
I've split out the boring changes into a separate diff (D95905). I plan to
merge its contents with those in this diff before landing.

(@gkm made the original draft of this diff, and he has agreed to let me
take over.)

[1]: https://lists.llvm.org/pipermail/llvm-dev/2021-January/147665.html

Reviewed By: #lld-macho, thakis

Differential Revision: https://reviews.llvm.org/D95204
2021-03-01 12:30:10 -05:00
Nico Weber
e616a03374 [libcxxabi] Fewer assumptions about path from libcxx to libcxxabi
This is useful for projects that pull in libcxx and libcxxabi and build
them using out-of-tree build files, but don't make them sibling
directories (or don't call the sibling directories libcxx and libcxxabi
for some reason).

Fixes PR49313.

Differential Revision: https://reviews.llvm.org/D97379
2021-02-26 09:10:18 -05:00
LLVM GN Syncbot
69ea57b8bc [gn build] Port 4753a69a316b 2021-02-25 23:16:39 +00:00
Ryan Prichard
9a2bf8053d [libunwind] unw_* alias fixes for ELF and Mach-O
Rename the CMake option, LIBUNWIND_HERMETIC_STATIC_LIBRARY, to
LIBUNWIND_HIDE_SYMBOLS. Rename the C macro define,
_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS, to _LIBUNWIND_HIDE_SYMBOLS,
because now the macro adds a .hidden directive rather than merely
suppress visibility annotations.

For ELF, when LIBUNWIND_HIDE_SYMBOLS is enabled, mark unw_getcontext as
hidden. This symbol is the only one defined using src/assembly.h's
WEAK_ALIAS macro. Other unw_* weak aliases are defined in C++ and are
already hidden.

Mach-O doesn't support weak aliases, so remove .weak_reference and
weak_import. When LIBUNWIND_HIDE_SYMBOLS is enabled, output
.private_extern for the unw_* aliases.

In assembly.h, add missing SYMBOL_NAME macro invocations, which are
used to prefix symbol names with '_' on some targets.

Fixes PR46709.

Reviewed By: #libunwind, phosek, compnerd, steven_wu

Differential Revision: https://reviews.llvm.org/D93003
2021-02-22 16:54:05 -08:00
LLVM GN Syncbot
0e6634d9e0 [gn build] Port 8f48ddd19358 2021-02-22 23:50:19 +00:00
LLVM GN Syncbot
7af76acc50 [gn build] Port e64fcdf8d53c 2021-02-22 20:19:04 +00:00
LLVM GN Syncbot
156b27c96a [gn build] Port 7dc7f0c2ecc0 2021-02-22 11:35:19 +00:00
LLVM GN Syncbot
d689ba9142 [gn build] Port 6e3071007b4c 2021-02-22 10:35:33 +00:00