Commit Graph

7502 Commits

Author SHA1 Message Date
Nico Weber 4f431337c8 gn build: Merge r359050 more
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@359058 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-24 00:59:24 +00:00
Nico Weber 064cbbfc2b gn build: Merge r359050
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@359056 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-24 00:44:14 +00:00
Fangrui Song 46622a5909 Use llvm::stable_sort
While touching the code, simplify if feasible.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358996 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-23 14:51:27 +00:00
Nico Weber b1c6cd2e14 gn build: Merge r358944
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358993 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-23 14:32:18 +00:00
Nico Weber 7dcce62314 gn build: Merge r358949
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358991 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-23 14:31:15 +00:00
Nico Weber aca745e756 gn build: Merge r358869
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358912 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-22 19:25:40 +00:00
Nico Weber 4247b8cf91 gn build: Re-run git ls-files '*.gn' '*.gni' | xargs llvm/utils/gn/gn.py format
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358862 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-21 20:14:21 +00:00
Nico Weber ccf549467d gn build: Merge r358749
Since the symlinks list for llvm-symbolizer is now never empty,
the :symlinks target no longer needs an explicit dep on :llvm-symbolizer
-- there will be at least one dep on a symlink, and each symlink depends
on :llvm-symbolizer already.

Since llvm-symbolizer:symlinks now produces symlinks that check-llvm
uses, make llvm/test depend on the symlink target.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358861 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-21 20:08:45 +00:00
Nico Weber e6ad146f24 gn build: Merge r358818 (JITLink)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358860 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-21 19:45:37 +00:00
Nico Weber a138d18baa gn build: Fix build after r358837
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358851 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-21 14:07:13 +00:00
Petr Hosek deabfea0bc [gn] Move Features.inc to clangd, create a config for it
ClangdLSPServer and clangd unittests now include Features.inc so we
need to append the target_gen_dir that contains it to their
include_dirs. To do so, we use a public config that's applied to
any target that depends on the features one.

Differential Revision: https://reviews.llvm.org/D60919

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358837 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-21 01:09:15 +00:00
Vitaly Buka b0b325969c Update GN files to build with r358103
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358790 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-19 22:27:50 +00:00
Petr Hosek 4a926e0ed8 [gn] Support dots in CMake paths in the sync script
Some file paths use dots to pick up sources from parent directories.

Differential Revision: https://reviews.llvm.org/D60734

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358774 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-19 18:29:17 +00:00
Nico Weber bbf8cdf093 gn build: Merge r358722
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358755 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-19 13:18:41 +00:00
Nico Weber 5c6d8a9541 gn build: Merge r358691
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358754 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-19 13:16:26 +00:00
Nico Weber f66a264796 gn build: Merge r358607
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358670 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-18 14:27:38 +00:00
Nico Weber 556c106483 gn build: Merge r358633
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358669 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-18 14:26:52 +00:00
Nico Weber 39e5a21c6c gn build: Merge r358620
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358668 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-18 14:25:45 +00:00
Nico Weber da0ed1e7c8 gn build: Merge r358554
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358578 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-17 13:40:57 +00:00
Dmitri Gribenko 44940eda85 Fixed error message printing in write_cmake_config.py
Summary:
Previously, write_cmake_config.py would raise an error while printing
the error, because `leftovers` in "'\n'.join(leftovers)" is a tuple.

Subscribers: mgorny, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D60766

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358557 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-17 06:11:27 +00:00
Nico Weber 354a46b7a0 gn build: Merge r358422
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358486 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-16 12:54:43 +00:00
Nico Weber fa92040aa7 gn build: Merge r358390
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358397 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-15 11:25:23 +00:00
Simon Tatham a2f0069dea [TableGen] Include schedule model name in diagnostic.
If you have more than one schedule model in your TableGen target
definitions, then the diagnostic "No schedule information for
instruction 'foo'" is rather unhelpful, because it doesn't tell you
_which_ schedule model is missing the necessary information (or, as it
might be, missing the UnsupportedFeatures definition that would stop
it thinking it needed it).

Extended the message to include the name of the schedule model that
it's complaining about.

Reviewers: nhaehnle, hfinkel, javedabsar, efriedma, javed.absar

Reviewed By: javed.absar

Subscribers: javed.absar, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D60559


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358389 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-15 10:06:26 +00:00
Nico Weber 7fcf5b534e gn build: Merge r358297
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358366 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-14 23:23:14 +00:00
Nico Weber 64b44dedca gn build: Merge r358243
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358365 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-14 23:21:58 +00:00
Nico Weber 7ee0b2f572 gn build: Merge r358272
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358364 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-14 23:19:32 +00:00
Michal Gorny f2af3ceff5 [llvm] [lit] Add target-x86* features
Add a 'target-x86' and 'target-x86_64' feature sthat indicates that
the default target is 32-bit or 64-bit x86, appropriately.  Combined
with 'native' feature, we're going to use this to control x86-specific
LLDB native process tests.

Differential Revision: https://reviews.llvm.org/D60474

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358177 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-11 14:58:39 +00:00
Roman Lebedev 4e72ab8b66 [TableGen] Introduce !listsplat 'binary' operator
Summary:
```
``!listsplat(a, size)``
    A list value that contains the value ``a`` ``size`` times.
    Example: ``!listsplat(0, 2)`` results in ``[0, 0]``.
```

I plan to use this in X86ScheduleBdVer2.td for LoadRes handling.

This is a little bit controversial because unlike every other binary operator
the types aren't identical.

Reviewers: stoklund, javed.absar, nhaehnle, craig.topper

Reviewed By: javed.absar

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D60367

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358117 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-10 18:26:36 +00:00
Roman Lebedev d146b93789 [kate] Add '!mul' operator that was introduced in D58775
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358116 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-10 18:26:23 +00:00
Nico Weber 396f459f95 gn build: Fix Windows builds after r357797
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@358004 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-09 14:02:02 +00:00
Craig Topper 5011b0f51b [X86] Remove check on isAsmParserOnly from EVEX2VEX tablegenerator. NFCI
There are no instructions VEX or EVEX instructions that set this field.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357973 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-09 07:40:19 +00:00
Craig Topper b30723027b [X86] Have EVEX2VEX tablegenerator use HasVEX_L and HasEVEX_L2 fields instead of the composite EVEX_LL field. Remove the EVEX_LL field. NFCI
The composite existed to simplify some other tablegen code and not really in an
important way. Remove the combined field and just calculate the vector size
using two ifs.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357972 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-09 07:40:14 +00:00
Craig Topper f8b5355aad [X86] Use VEX_WIG for VPINSRB/W and VPEXTRB/W to match what is done for EVEX.
The instruction's document this as W0 for the VEX encoding. But there's a
footnote mentioning that VEX.W is ignored in 64-bit mode. And the main VEX
encoding description says the VEX.W bit is ignored for instructions that are
equivalent to a legacy SSE instruction that uses REX.W to select a GPR which
would apply here.

By making this match EVEX we can remove a special case of allowing EVEX2VEX to
turn an EVEX.WIG instruction into VEX.W0.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357971 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-09 07:40:10 +00:00
Craig Topper 49d4f2cd68 [X86] Split the VEX_WPrefix in X86Inst tablegen class into 3 separate fields with clear meanings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357970 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-09 07:40:06 +00:00
Nico Weber e51a6f1706 gn build: Merge r357905
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357907 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-08 12:43:46 +00:00
Nico Weber 070c4bb390 gn-build: Re-run git ls-files '*.gn' '*.gni' | xargs llvm/utils/gn/gn.py format
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357906 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-08 12:42:37 +00:00
Petr Hosek 003add3c66 [gn] Support for per-target runtime directory layout
This change also introduces the clang_enable_per_target_runtime_dir
to enable the use of per-target runtime directory layout which is the
equivalent of LLVM_ENABLE_PER_TARGET_RUNTIME_DIR CMake option.

Differential Revision: https://reviews.llvm.org/D60332

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357850 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-06 23:05:56 +00:00
Nico Weber f3c71e3d75 gn build: Pacify gn format
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357830 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-05 23:57:10 +00:00
Petr Hosek a47974f1b9 [gn] Support for building compiler-rt builtins
This is support for building compiler-rt builtins, The library build
should be complete for a subset of supported platforms, but not all
CMake options have been replicated in GN.

We always use the just built compiler to build all the runtimes, which
is equivalent to the CMake runtimes build. This simplifies the build
configuration because we don't need to support arbitrary host compiler
and can always assume the latest Clang. With GN's toolchain support,
this is significantly more efficient than the CMake runtimes build.

Differential Revision: https://reviews.llvm.org/D60331

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357821 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-05 21:30:40 +00:00
Craig Topper 2310900b63 [X86] Merge the different Jcc instructions for each condition code into single instructions that store the condition code as an operand.
Summary:
This avoids needing an isel pattern for each condition code. And it removes translation switches for converting between Jcc instructions and condition codes.

Now the printer, encoder and disassembler take care of converting the immediate. We use InstAliases to handle the assembly matching. But we print using the asm string in the instruction definition. The instruction itself is marked IsCodeGenOnly=1 to hide it from the assembly parser.

Reviewers: spatel, lebedev.ri, courbet, gchatelet, RKSimon

Reviewed By: RKSimon

Subscribers: MatzeB, qcolombet, eraman, hiraditya, arphaman, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D60228

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357802 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-05 19:28:09 +00:00
Craig Topper d8286e45af [X86] Merge the different SETcc instructions for each condition code into single instructions that store the condition code as an operand.
Summary:
This avoids needing an isel pattern for each condition code. And it removes translation switches for converting between SETcc instructions and condition codes.

Now the printer, encoder and disassembler take care of converting the immediate. We use InstAliases to handle the assembly matching. But we print using the asm string in the instruction definition. The instruction itself is marked IsCodeGenOnly=1 to hide it from the assembly parser.

Reviewers: andreadb, courbet, RKSimon, spatel, lebedev.ri

Reviewed By: andreadb

Subscribers: hiraditya, lebedev.ri, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D60138

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357801 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-05 19:27:49 +00:00
Craig Topper d8490747ad [X86] Merge the different CMOV instructions for each condition code into single instructions that store the condition code as an immediate.
Summary:
Reorder the condition code enum to match their encodings. Move it to MC layer so it can be used by the scheduler models.

This avoids needing an isel pattern for each condition code. And it removes
translation switches for converting between CMOV instructions and condition
codes.

Now the printer, encoder and disassembler take care of converting the immediate.
We use InstAliases to handle the assembly matching. But we print using the
asm string in the instruction definition. The instruction itself is marked
IsCodeGenOnly=1 to hide it from the assembly parser.

This does complicate the scheduler models a little since we can't assign the
A and BE instructions to a separate class now.

I plan to make similar changes for SETcc and Jcc.

Reviewers: RKSimon, spatel, lebedev.ri, andreadb, courbet

Reviewed By: RKSimon

Subscribers: gchatelet, hiraditya, kristina, lebedev.ri, jdoerfert, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D60041

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357800 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-05 19:27:41 +00:00
Petr Hosek 4fb52f8a32 [gn] Rebase paths in symlink_or_copy against root_build_dir
We should be always rebasing paths against root_build_dir which is
the directory where scripts are run from, not root_out_dir which is
the current toolchain directory. The latter can result in invalid
paths when the action is being used from a non-default toolchain.

Differential Revision: https://reviews.llvm.org/D60330

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357798 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-05 19:13:54 +00:00
Petr Hosek ff27e9f183 [gn] Make -no-exceptions flag a config
This allows it to be disabled for targets that need exceptions
like libunwind, libc++abi and libc++.

Differential Revision: https://reviews.llvm.org/D60328

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357797 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-05 19:12:37 +00:00
Saleem Abdulrasool 5e9b0f4622 lit: make rm python 3 friendly (NFC)
Add some alterations for python 3 compatibility.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357789 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-05 18:00:49 +00:00
Nico Weber 226c868c6a gn build: Merge 357768 and 357770
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357783 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-05 17:05:54 +00:00
Nico Weber 5f868076d7 gn build: Merge r357719
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357781 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-05 16:57:34 +00:00
Saleem Abdulrasool 11ab360eb5 lit: support long paths on Windows
Use ctypes to call into SHFileOperationW with the extended NT path to allow us
to remove paths which exceed 261 characters on Windows. This functionality is
exercised by swift's test suite.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357778 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-05 16:48:00 +00:00
Nico Weber 0d753d008e gn build: Merge r357663
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357666 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-04 02:08:10 +00:00
Reid Kleckner fe2046590d [gn] Use "$link /lib" for archives instead of lib.exe
Summary:
This avoids the need to talk about lib.exe or llvm-lib.exe and it does
the right thing with LLD.

Reviewers: thakis

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D60155

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357660 91177308-0d34-0410-b5e6-96231b3b80d8
2019-04-04 00:31:19 +00:00