Commit Graph

10050 Commits

Author SHA1 Message Date
LLVM GN Syncbot 12903dbf9e [gn build] Port 0fda4c4745b8 2021-05-14 04:56:03 +00:00
Reid Kleckner b409d78956 [gn] Don't pass -fprofile-instr-generate to linker on Windows
Avoids a warning from the linker. The user still has to put the resource
directory on the linker search path, and I can't find a clean way to do
that automatically in gn.
2021-05-13 16:04:11 -07:00
Nico Weber 9d6d3a623d [gn build] (manually) port 92f9852fc99b, clang-repl 2021-05-13 08:53:53 -04:00
LLVM GN Syncbot 50ff07dfa0 [gn build] Port d8b37de8a478 2021-05-13 05:32:35 +00:00
Craig Topper f3f2380881 [ValueTypes] Rename MVT::getVectorNumElements() to MVT::getVectorMinNumElements(). Fix some misuses of getVectorNumElements()
getVectorNumElements() returns a value for scalable vectors
without any warning so it is effectively getVectorMinNumElements().
By renaming it and making getVectorNumElements() forward to
it, we can insert a check for scalable vectors into getVectorNumElements()
similar to EVT. I didn't do that in this patch because there are still more
fixes needed, but I was able to temporarily do it and passed the RISCV
lit tests with these changes.

The changes to isPow2VectorType and getPow2VectorType are copied from EVT.

The change to TypeInfer::EnforceSameNumElts reduces the size of AArch64's isel table.
We're now considering SameNumElts to require the scalable property to match which
removes some unneeded type checks.

This was motivated by the bug I fixed yesterday in 80b9510806cf11c57f2dd87191d3989fc45defa8

Reviewed By: frasercrmck, sdesmalen

Differential Revision: https://reviews.llvm.org/D102262
2021-05-12 07:46:45 -07:00
Amara Emerson ee460561e0 [AArch64][GlobalISel] Support truncstorei8/i16 w/ combine to form truncating G_STOREs.
This needs some tablegen changes so that we can actually import the patterns properly.

Differential Revision: https://reviews.llvm.org/D102204
2021-05-11 11:33:03 -07:00
LLVM GN Syncbot 36ab8e15c2 [gn build] Port e5d483f28a3a 2021-05-11 00:19:33 +00:00
LLVM GN Syncbot cc1727321f [gn build] Port 3b8d2be52725 2021-05-10 23:06:37 +00:00
qixingxue 6f4e26278d [TableGen] Remove redundant Error: in msg (NFC)
Since calling `PrintFatalError` will automatically add `error: `
prefix in the message printed, there is no need having an extra
`ERROR:` prefix in the argument passed.

Differential Revision: https://reviews.llvm.org/D102151
Reviewed By: Paul-C-Anagnostopoulos
2021-05-10 21:18:37 +08:00
Xiang1 Zhang 38ab3a2d9f [X86] Support AMX fast register allocation
Differential Revision: https://reviews.llvm.org/D100026
2021-05-08 14:21:11 +08:00
Xiang1 Zhang f668ad4ced Revert "[X86] Support AMX fast register allocation"
This reverts commit 77e2e5e07d01fe0b83c39d0c527c0d3d2e659146.
2021-05-08 13:43:32 +08:00
Xiang1 Zhang fe856bad78 [X86] Support AMX fast register allocation 2021-05-08 13:27:21 +08:00
Arthur Eubanks 6acb684b54 [lit] Bump up the Windows process cap from 32 to 60
At 61 or over, I see messages like

  File "...\Python\Python39\lib\multiprocessing\connection.py", line 816, in _exhaustive_wait
    res = _winapi.WaitForMultipleObjects(L, False, timeout)

  ValueError: need at most 63 handles, got a sequence of length 64

60 seems to work for me.

If this causes issues for anybody else, feel free to revert.
2021-05-07 18:13:38 -07:00
Arthur Eubanks 9df931e590 Revert "lit: revert 134b103fc0f3a995d76398bf4b029d72bebe8162"
This reverts commit d319005a3746a7661c8c9a3302266b6ff7cf61be.

Causing messages like:

  File "...\Python\Python39\lib\multiprocessing\connection.py", line 816, in _exhaustive_wait
    res = _winapi.WaitForMultipleObjects(L, False, timeout)
ValueError: need at most 63 handles, got a sequence of length 74
2021-05-07 18:00:11 -07:00
Arthur Eubanks 1a92538daa [gn build] Manually port 5b158093e 2021-05-07 17:54:32 -07:00
Saleem Abdulrasool 363580b4e0 lit: revert 134b103fc0f3a995d76398bf4b029d72bebe8162
Revert the 32-process cap on Windows.  When testing with Swift, we found
that there was a time reduction for testing with the higher load.  This
should hopefully not matter much in practice.  In the case that the
original problem with python remains with a high subprocess count, we
can easily revert this change.
2021-05-07 10:22:43 -07:00
LLVM GN Syncbot 45d120b829 [gn build] Port 98e5ede60499 2021-05-07 09:15:50 +00:00
James Henderson 03789d321b [lit][test] Attempt fix when paths include symlink
Example of failure:
https://lab.llvm.org/staging/#/builders/126/builds/345/steps/5/logs/FAIL__lit___use-tool-search-env_py
2021-05-07 09:21:58 +01:00
Coelacanthus 9a8d215400 [TableGen] Use range-based for loops (NFC)
Use range-based for loops in TableGen.

Reviewed By: Paul-C-Anagnostopoulos

Differential Revision: https://reviews.llvm.org/D101994
2021-05-07 13:34:03 +08:00
LLVM GN Syncbot 6e72fd82c1 [gn build] Port 83af66e18e3d 2021-05-06 21:03:05 +00:00
Arthur Eubanks ce786f30a4 [gn build] Support compiler-rt/profile on Windows
Reviewed By: thakis

Differential Revision: https://reviews.llvm.org/D101961
2021-05-06 10:20:52 -07:00
James Henderson 593bccf28a [lit] Report tool path from use_llvm_tool if found via env variable
Previously, if the search_env argument was specified, and the tool was
found at that location, the path was not reported, unlike other
situations when this function was called. Adding the reporting makes the
function consistent.

Reviewed by: thopre

Differential Revision: https://reviews.llvm.org/D101896
2021-05-06 09:21:54 +01:00
Nico Weber 1917815d14 [gn build] (semi-manually) port 0b10bb7ddd3c more 2021-05-05 18:15:13 -04:00
Nico Weber 251ea083af [gn build] (semi-manually) port 0b10bb7ddd3c 2021-05-05 18:06:52 -04:00
Giorgis Georgakoudis f8c111d015 [Utils][NFC] Rename replace-function-regex in update_cc_test_checks
This patch renames the replace-function-regex to replace-value-regex to indicate that the existing regex replacement functionality can replace any IR value besides functions.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D101934
2021-05-05 14:19:30 -07:00
LLVM GN Syncbot 4f8dc0e8fe [gn build] Port 600686d75f55 2021-05-05 04:57:55 +00:00
LLVM GN Syncbot 795d87c4aa [gn build] Port f2018d6c16d1 2021-05-05 03:54:38 +00:00
Giorgis Georgakoudis 608838933b [Utils] Run non-filecheck runlines in-order in update_cc_test_checks
The script update_cc_test_checks runs all non-filechecked runlines before the filechecked ones. This creates problems since outputs of those non-filechecked runlines may conflict and that will fail the execution of update_cc_test_checks. This patch executes non-filechecked in the order specified in the test file to avoid this issue.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D101683
2021-05-04 12:06:03 -07:00
LLVM GN Syncbot 77a6a2e20b [gn build] Port 2021d272ad6c 2021-05-04 15:06:28 +00:00
Nico Weber d0f5fa8245 [clang] accept -fsanitize-ignorelist= in addition to -fsanitize-blacklist=
Use that for internal names (including the default ignorelists of the
sanitizers).

Differential Revision: https://reviews.llvm.org/D101832
2021-05-04 10:24:00 -04:00
LLVM GN Syncbot 972f33f6c0 [gn build] Port 1db4dbba24dd 2021-05-04 09:56:46 +00:00
LLVM GN Syncbot 006f3fb7f2 [gn build] Port ed51156084dd 2021-05-04 06:39:48 +00:00
LLVM GN Syncbot 744e7df7eb [gn build] Port 7310403e3cdf 2021-05-04 00:04:57 +00:00
Giorgis Georgakoudis a7fe8f828d [Utils] Add prof metadata to matched unnamed values
Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D101742
2021-05-03 15:15:34 -07:00
Jon Roelofs 88d0ab2b78 Partial revert of "Use std::foo_t rather than std::foo in LLVM." in googlebench
Since googlebench builds as c++11, the change there is incorrect and breaks the
googlebench build when the STL implementation is strict about std::enable_if_t
not being available in lesser c++ versions.

partial revert of: 1bd6123b781120c9190b9ba58b900cdcb718cdd1 (https://reviews.llvm.org/D74384)

Differential Revision: https://reviews.llvm.org/D101583
2021-05-03 07:49:30 -07:00
LLVM GN Syncbot 74312e44fa [gn build] Port 1527a5e4b483 2021-05-03 12:53:10 +00:00
Craig Topper b555d38aa1 [TableGen] Use sign rotated VBR for OPC_EmitInteger.
This allows for a much more efficient encoding for small negative
numbers by storing the sign bit first and negating the rest of
the bits. This was already being used for OPC_CheckInteger.

For every in tree target this affects, the table got smaller.
R600GenDAGISel.inc saw the largest reduction of 7K.

I did have to add a new opcode for StringIntegers used for
register class ids and subregister indices since we don't have the
integer value to encode. The enum name is emitted directly into
the table. Previously assumed the enum would expand to a positive
7-bit number. We might be able to just shift that right by 1 and
assume it is a positive 6 bit number, but that will need more
investigation.
2021-05-02 12:40:44 -07:00
LLVM GN Syncbot 6038981d86 [gn build] Port 1977c53b2ae4 2021-05-02 02:55:47 +00:00
LLVM GN Syncbot 43818b0f1b [gn build] Port 02c5ba867987 2021-05-01 00:09:37 +00:00
LLVM GN Syncbot 586fbcca5e [gn build] Port 2d28100bf2e4 2021-04-30 20:17:55 +00:00
LLVM GN Syncbot e687ab5c5d [gn build] Port c6f20d70a8c9 2021-04-30 17:30:08 +00:00
LLVM GN Syncbot ac096d1d93 [gn build] Port 7c17731596e9 2021-04-30 17:00:36 +00:00
LLVM GN Syncbot 6ae64271ea [gn build] Port 5a3309f82576 2021-04-30 17:00:35 +00:00
LLVM GN Syncbot 4628abad24 [gn build] Port 43bc584dc05e 2021-04-30 13:48:40 +00:00
Dominik Montada 4115608e9d [GISel] Teach TableGen to check predicates of immediate operands in patterns
Reviewed By: dsanders

Differential Revision: https://reviews.llvm.org/D91703
2021-04-30 10:18:45 +02:00
LLVM GN Syncbot 58df1159b1 [gn build] Port df323ba445f7 2021-04-29 16:59:58 +00:00
Benjamin Kramer 0c09b6edfc Revert "[X86] Support AMX fast register allocation"
This reverts commit 3b8ec86fd576b9808dc63da620d9a4f7bbe04372.

Revert "[X86] Refine AMX fast register allocation"

This reverts commit c3f95e9197643b699b891ca416ce7d72cf89f5fc.

This pass breaks using LLVM in a multi-threaded environment by
introducing global state.
2021-04-29 18:56:33 +02:00
Fraser Cormack 8bce4ebee8 [Utils][vim] Highlight 'vscale' constant
Reviewed By: awarzynski

Differential Revision: https://reviews.llvm.org/D101466
2021-04-29 08:53:30 +01:00
Craig Topper 20783a20c4 [TableGen] Remove predicate filtering from GenerateVariants.
After D100691, predicates should be cheap to compare again so
we don't need to filter anymore.

This is mostly just a revert of several patches going back to 2018.

Reviewed By: kparzysz

Differential Revision: https://reviews.llvm.org/D100695
2021-04-28 16:02:13 -07:00
Craig Topper c793cba446 [TableGen] Store predicates in PatternToMatch as ListInit *. Add string for HwModeFeatures
This uses to be how predicates were handled prior to HwMode being
added. When the Predicates were converted to a std::vector it
significantly increased the cost of a compare in GenerateVariants.
Since ListInit's are uniquified by tablegen, we can use a simple
pointer comparison to check for identical lists.

In order to store the HwMode, we now add a separate string to
PatternToMatch. This will be appended separately to the predicate
string in getPredicateCheck. A new getPredicateRecords is added
to allow GlobalISel and getPredicateCheck to both get the sorted
list of Records. GlobalISel was ignoring any HwMode predicates
before and still is.

There is one slight change here, ListInits with different predicate
orders aren't sorted so the filtering in GenerateVariants might
fail to detect two isomorphic patterns with different predicate
orders. This doesn't seem to be happening in tree today.

My hope is this will allow us to remove all the BitVector tracking
in GenerateVariants that was making up for predicates beeing
expensive to compare. There's a decent amount of heap allocations
there on large targets like X86, AMDGPU, and RISCV.

Differential Revision: https://reviews.llvm.org/D100691
2021-04-28 12:05:49 -07:00