1691 Commits

Author SHA1 Message Date
Nico Weber
2f0f67afb2 [gn build] add a comment to the goma_dir arg 2021-02-17 19:36:36 -05:00
LLVM GN Syncbot
ebcf921e4a [gn build] Port 7397905ab0a0 2021-02-17 23:33:31 +00:00
Nico Weber
0dd2ffb392 [gn build] make WindowsManifestMerger.cpp build fine with sysroot
This already works in the cmake build.

Differential Revision: https://reviews.llvm.org/D96889
2021-02-17 15:03:46 -05:00
Nico Weber
6073f87d7f sysroot.py: add support for non-darwin platforms
CMAKE_SYSROOT works fine here, and `sysroot.py make-fake`
borders on trivial here, but I suppose it's still nice
to have a consistent script to set these up across platforms.

And these are the platforms where we can do real sysroot management one
day.

Differential Revision: https://reviews.llvm.org/D96882
2021-02-17 13:57:16 -05:00
LLVM GN Syncbot
14bda035ab [gn build] Port c28622fbf363 2021-02-17 18:30:02 +00:00
Nico Weber
44ea794cf9 build: Add LLVM_WINSYSROOT to make setting /winsysroot easy on Win
Also add a script for sysroot management. For now, it can only create
fake sysroots that just symlink to local folders. This is useful for
testing.

Differential Revision: https://reviews.llvm.org/D96868
2021-02-17 10:27:25 -05:00
LLVM GN Syncbot
f456959a93 [gn build] Port 6fd5ccff72ee 2021-02-17 00:53:56 +00:00
LLVM GN Syncbot
76609f17ce [gn build] Port c761fe77bdca 2021-02-16 22:13:03 +00:00
LLVM GN Syncbot
f350fe8c55 [gn build] Port ecea7218fb9b 2021-02-16 19:23:52 +00:00
LLVM GN Syncbot
abb7570235 [gn build] Port 310b35304cdf 2021-02-16 19:23:52 +00:00
LLVM GN Syncbot
b2db4934ed [gn build] Port 40cc63ea6eec 2021-02-16 14:23:58 +00:00
LLVM GN Syncbot
72af70127c [gn build] Port 9510b0940265 2021-02-16 09:12:07 +00:00
LLVM GN Syncbot
dfa6fdb0b6 [gn build] Port 5786f64a4ec8 2021-02-15 09:52:10 +00:00
Arlo Siemsen
080866470d Add ehcont section support
In the future Windows will enable Control-flow Enforcement Technology (CET aka shadow stacks). To protect the path where the context is updated during exception handling, the binary is required to enumerate valid unwind entrypoints in a dedicated section which is validated when the context is being set during exception handling.

This change allows llvm to generate the section that contains the appropriate symbol references in the form expected by the msvc linker.

This feature is enabled through a new module flag, ehcontguard, which was modelled on the cfguard flag.

The change includes a test that when the module flag is enabled the section is correctly generated.

The set of exception continuation information includes returns from exceptional control flow (catchret in llvm).

In order to collect catchret we:
1) Includes an additional flag on machine basic blocks to indicate that the given block is the target of a catchret operation,
2) Introduces a new machine function pass to insert and collect symbols at the start of each block, and
3) Combines these targets with the other EHCont targets that were already being collected.

Change originally authored by Daniel Frampton <dframpto@microsoft.com>

For more details, see MSVC documentation for `/guard:ehcont`
  https://docs.microsoft.com/en-us/cpp/build/reference/guard-enable-eh-continuation-metadata

Reviewed By: pengfei

Differential Revision: https://reviews.llvm.org/D94835
2021-02-15 14:27:12 +08:00
LLVM GN Syncbot
28315df073 [gn build] Port 656ead1fb7db 2021-02-14 19:23:24 +00:00
Arthur Eubanks
242304f3e2 [gn build] Add missing llvm-profgen dependency
Or else a clean build fails with missing Attributes.inc.
2021-02-12 12:44:17 -08:00
LLVM GN Syncbot
7ff0cbe41d [gn build] Port cb2d2ae56ae3 2021-02-12 18:40:40 +00:00
Lukas Sommer
6577cef9b0 [CodeGen] New pass: Replace vector intrinsics with call to vector library
This patch adds a pass to replace calls to vector intrinsics (i.e., LLVM
intrinsics operating on vector operands) with calls to a vector library.

Currently, calls to LLVM intrinsics are only replaced with calls to vector
libraries when scalar calls to intrinsics are vectorized by the Loop- or
SLP-Vectorizer.

With this pass, it is now possible to replace calls to LLVM intrinsics
already operating on vector operands, e.g., if such code was generated
by MLIR. For the replacement, information from the TargetLibraryInfo,
e.g., as specified via -vector-library is used.

This is a re-try of the original commit 2303e93e66 that was reverted
due to pass manager problems. Other minor changes have also been made.

Differential Revision: https://reviews.llvm.org/D95373
2021-02-12 12:53:27 -05:00
LLVM GN Syncbot
ac2627fd9a [gn build] Port ba3ea9c60f0f 2021-02-12 16:56:34 +00:00
Peter Collingbourne
e434fc0dde gn build: Support cross-compiling libunwind for Android.
- Usual cross-compilation fix: s/target_/current_/g

- Define _LIBUNWIND_IS_NATIVE_ONLY to enable unwinding past
  functions with return pointer authentication.

- Android needs two libunwind static libraries: one with symbols exported and
  one without. These both need to be in the same build tree so
  the libunwind_hermetic_static_library configuration option doesn't
  help here. Replace it with build rules that build both libraries.

- Install the libraries in the location that Android expects them to be.

Differential Revision: https://reviews.llvm.org/D96563
2021-02-11 21:47:33 -08:00
Nico Weber
18d38b2403 [gn build] port ed98676fa483 2021-02-11 12:41:29 -05:00
Nico Weber
1739e7ed69 [gn build] Port 7e3b9aba609f 2021-02-11 11:54:51 -05:00
Nico Weber
78717f56ba [gn build] Port b4993cf54d7f 2021-02-11 07:20:21 -05:00
Nico Weber
ec4fb5bcd3 [gn build] (manually) port e89fcbfad6a3 2021-02-10 08:59:07 -05:00
LLVM GN Syncbot
76748b67d1 [gn build] Port 40c261c41c4c 2021-02-09 09:19:31 +00:00
LLVM GN Syncbot
71a79e7b4b [gn build] Port 87104faac433 2021-02-09 01:14:44 +00:00
Nico Weber
69f5bd2ec5 [gn build] reformat all gn files
$ git ls-files '*.gn' '*.gni' | xargs llvm/utils/gn/gn.py format
2021-02-08 16:11:01 -05:00
LLVM GN Syncbot
4af73572c7 [gn build] Port be0efa1f2368 2021-02-06 16:40:55 +00:00
Nico Weber
5f76044c25 [gn build] enable new pass manager more, follow-up to 39ceb5c9cfe 2021-02-05 16:15:14 -05:00
Sanjay Patel
c981f6f8e1 Revert "[Codegen][ReplaceWithVecLib] add pass to replace vector intrinsics with calls to vector library"
This reverts commit 2303e93e666e13ebf6d24323729c28f520ecca37.
Investigating bot failures.
2021-02-05 15:10:11 -05:00
Lukas Sommer
2303e93e66 [Codegen][ReplaceWithVecLib] add pass to replace vector intrinsics with calls to vector library
This patch adds a pass to replace calls to vector intrinsics
(i.e., LLVM intrinsics operating on vector operands) with
calls to a vector library.

Currently, calls to LLVM intrinsics are only replaced with
calls to vector libraries when scalar calls to intrinsics are
vectorized by the Loop- or SLP-Vectorizer.

With this pass, it is now possible to replace calls to LLVM
intrinsics already operating on vector operands, e.g., if
such code was generated by MLIR. For the replacement,
information from the TargetLibraryInfo, e.g., as specified
via -vector-library is used.

Differential Revision: https://reviews.llvm.org/D95373
2021-02-05 14:25:19 -05:00
Arthur Eubanks
39ceb5c9cf [gn build] Turn on new pass manager by default
Matches cmake build
2021-02-05 09:11:07 -08:00
Louis Dionne
b51756819a [libc++] Rename include/support to include/__support
We do ship those headers, so the directory name should not be something
that can potentially conflict with user-defined directories.

Differential Revision: https://reviews.llvm.org/D95956
2021-02-04 10:16:33 -05:00
Nico Weber
26ca503bd2 [gn build] (manually) port 0609f257dc2e2c3 2021-02-04 06:52:55 -05:00
Arthur Eubanks
f020544601 [NewPM][HelloWorld] Move HelloWorld to Utils
To prevent creating a new component, which creates a new library.

Reviewed By: ychen

Differential Revision: https://reviews.llvm.org/D95907
2021-02-03 12:59:40 -08:00
LLVM GN Syncbot
b86e9c83a6 [gn build] Port fcf03e728007 2021-02-03 05:46:53 +00:00
LLVM GN Syncbot
2569ab4deb [gn build] Port 4f58b1bd2974 2021-02-02 22:57:59 +00:00
LLVM GN Syncbot
313a36130f [gn build] Port b63cd4db915c 2021-02-01 14:24:45 +00:00
Nico Weber
229c1cff51 [gn build] port e90e455d2a0cc 2021-01-29 08:36:19 -05:00
Nico Weber
64ced3ce89 [gn build] (semi-manually) port 2ff8662b5d16 2021-01-29 06:48:17 -05:00
Nico Weber
eae50bb210 [gn build] (manually) port 081c1db02dd2 more 2021-01-28 13:32:49 -05:00
Nico Weber
8c54583b2e [gn build] (manually) port 3b625060fc915 2021-01-28 13:26:37 -05:00
Nico Weber
658398c842 [gn build] (semi-manually) port 081c1db02dd2 2021-01-28 13:05:10 -05:00
LLVM GN Syncbot
e19ec9ca41 [gn build] Port 0b50fa99452f 2021-01-27 18:55:59 +00:00
Tom Stellard
5369517d20 Bump the trunk major version to 13
and clear the release notes.
2021-01-26 19:37:55 -08:00
LLVM GN Syncbot
1458987407 [gn build] Port bb9eb1982980 2021-01-27 01:23:23 +00:00
Nico Weber
65e2fa5060 [gn build] fix get.py change 2021-01-26 19:20:23 -05:00
Nico Weber
4dcb5c4403 [gn build] restore build command removed in 9595a7ff55b6 for platforms without prebuilts 2021-01-26 19:19:31 -05:00
LLVM GN Syncbot
da9a3540e2 [gn build] Port 1e634f3952aa 2021-01-26 20:48:31 +00:00
LLVM GN Syncbot
96f09aa2fb [gn build] Port 4edf35f11a9e 2021-01-26 19:12:09 +00:00