Commit Graph

1687 Commits

Author SHA1 Message Date
LLVM GN Syncbot 14bda035ab [gn build] Port c28622fbf3 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 6fd5ccff72 2021-02-17 00:53:56 +00:00
LLVM GN Syncbot 76609f17ce [gn build] Port c761fe77bd 2021-02-16 22:13:03 +00:00
LLVM GN Syncbot f350fe8c55 [gn build] Port ecea7218fb 2021-02-16 19:23:52 +00:00
LLVM GN Syncbot abb7570235 [gn build] Port 310b35304c 2021-02-16 19:23:52 +00:00
LLVM GN Syncbot b2db4934ed [gn build] Port 40cc63ea6e 2021-02-16 14:23:58 +00:00
LLVM GN Syncbot 72af70127c [gn build] Port 9510b09402 2021-02-16 09:12:07 +00:00
LLVM GN Syncbot dfa6fdb0b6 [gn build] Port 5786f64a4e 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 656ead1fb7 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 cb2d2ae56a 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 ba3ea9c60f 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 ed98676fa4 2021-02-11 12:41:29 -05:00
Nico Weber 1739e7ed69 [gn build] Port 7e3b9aba60 2021-02-11 11:54:51 -05:00
Nico Weber 78717f56ba [gn build] Port b4993cf54d 2021-02-11 07:20:21 -05:00
Nico Weber ec4fb5bcd3 [gn build] (manually) port e89fcbfad6 2021-02-10 08:59:07 -05:00
LLVM GN Syncbot 76748b67d1 [gn build] Port 40c261c41c 2021-02-09 09:19:31 +00:00
LLVM GN Syncbot 71a79e7b4b [gn build] Port 87104faac4 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 be0efa1f23 2021-02-06 16:40:55 +00:00
Nico Weber 5f76044c25 [gn build] enable new pass manager more, follow-up to 39ceb5c9cf 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 2303e93e66.
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 0609f257dc 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 fcf03e7280 2021-02-03 05:46:53 +00:00
LLVM GN Syncbot 2569ab4deb [gn build] Port 4f58b1bd29 2021-02-02 22:57:59 +00:00
LLVM GN Syncbot 313a36130f [gn build] Port b63cd4db91 2021-02-01 14:24:45 +00:00
Nico Weber 229c1cff51 [gn build] port e90e455d2a 2021-01-29 08:36:19 -05:00
Nico Weber 64ced3ce89 [gn build] (semi-manually) port 2ff8662b5d 2021-01-29 06:48:17 -05:00
Nico Weber eae50bb210 [gn build] (manually) port 081c1db02d more 2021-01-28 13:32:49 -05:00
Nico Weber 8c54583b2e [gn build] (manually) port 3b625060fc 2021-01-28 13:26:37 -05:00
Nico Weber 658398c842 [gn build] (semi-manually) port 081c1db02d 2021-01-28 13:05:10 -05:00
LLVM GN Syncbot e19ec9ca41 [gn build] Port 0b50fa9945 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 bb9eb19829 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 9595a7ff55 for platforms without prebuilts 2021-01-26 19:19:31 -05:00
LLVM GN Syncbot da9a3540e2 [gn build] Port 1e634f3952 2021-01-26 20:48:31 +00:00
LLVM GN Syncbot 96f09aa2fb [gn build] Port 4edf35f11a 2021-01-26 19:12:09 +00:00
LLVM GN Syncbot 12b34ffc35 [gn build] Port e123cd674c 2021-01-25 20:11:10 +00:00
LLVM GN Syncbot d5c4de40c6 [gn build] Port 0057cc5a21 2021-01-23 14:07:39 +00:00
LLVM GN Syncbot dbf87da739 [gn build] Port 2325157c05 2021-01-23 13:38:51 +00:00
LLVM GN Syncbot 083088d136 [gn build] Port 622eaa4a4c 2021-01-22 21:40:40 +00:00