Commit Graph

6390 Commits

Author SHA1 Message Date
David L. Jones
07f3fba316 [lit/Win] Check if a path was found before attempting to use it.
Summary:
This appears to break some bots, when getToolsPath fails to find some or
all of the tools (for example, an incomplete GnuWin32 installation).

Reviewers: zturner, modocache

Subscribers: sanjoy, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313854 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-21 01:26:16 +00:00
Zachary Turner
1e4a125226 [lit] Make lit support config files with .py extension.
Many editors and Python-related diagnostics tools such as
debuggers break or fail in mysterious ways when python files
don't end in .py.  This is especially true on Windows, but
still exists on other platforms.  I don't want to be too heavy
handed in changing everything across the board, but I do want
to at least *allow* lit configs to have .py extensions.  This
patch makes the discovery process first look for a config file
with a .py extension, and if one is not found, then looks for
a config file using the old method.  So for existing users, there
should be no functional change.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313849 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-21 00:24:52 +00:00
Zachary Turner
ce7bcb2090 [lit] Undo the patch to stop writing pyc files.
The problems on the bots appear to be resolved and this was
determined to not be the culprit.  Removing this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313807 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-20 20:31:24 +00:00
Zachary Turner
e44429964b [TableGen] Some optimizations to TableGen.
This changes some STL data types to corresponding LLVM
data types that have better performance characteristics.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313783 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-20 18:01:40 +00:00
Zachary Turner
76fe1ec310 [lit] Reverse path list when updating environment vars.
Bug pointed out by EricWF.  This would construct a path where
items would be added in the wrong order, potentially leading
to using the wrong tools for testing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313765 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-20 17:08:20 +00:00
Zachary Turner
890c0e43c1 Make lit stop writing pyc files.
Many svn-based buildbots seem to be getting stuck continually
in tree conflicts due to the output of pyc files.  I'm disabling
these as a temporary measure in an attempt to get everything
stable again.

I'll try to remove this code once I understand the problem
better.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313698 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-19 23:50:28 +00:00
Craig Topper
cdcb6d16fc [TableGen] Generate formatted DAGISelEmitter without relying on formatted_raw_ostream.
The generated DAG isel file currently makes use of formatted_raw_ostream primarily for generating a hierarchical representation while also skipping over the initial comment that contains the current index.

It was reported in D37957 that this formatting might be slow due to the need to keep track of column numbers by monitoring all the written data for new lines.

This patch attempts to rewrite the emitter to make use of simpler formatting mechanisms to generate a fairly similar output. The main difference is that the number in the index comment is now right justified and padded with spaces inside the comment. Previously we appended the spaces after the comment.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313674 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-19 21:03:57 +00:00
Krzysztof Parzyszek
7e1bf43cb7 Recommit r313647 now that GCC seems to accept the offering
Add some member types to MachineValueTypeSet::const_iterator so that
iterator_traits can work with it.

Improve TableGen performance of -gen-dag-isel (motivated by X86 backend)

The introduction of parameterized register classes in r313271 caused the
matcher generation code in TableGen to run much slower, particularly so
in the unoptimized (debug) build. This patch recovers some of the lost
performance.

Summary of changes:
- Cache the set of legal types in TypeInfer::getLegalTypes. The contents
  of this set do not change.
- Add LLVM_ATTRIBUTE_ALWAYS_INLINE to several small functions. Normally
  this would not be necessary, but in the debug build TableGen is not
  optimized, so this helps a little bit.
- Add an early exit from TypeSetByHwMode::operator== for the case when
  one or both arguments are "simple", i.e. only have one mode. This
  saves some time in GenerateVariants.
- Finally, replace the underlying storage type in TypeSetByHwMode::SetType
  with MachineValueTypeSet based on std::array instead of std::set.
  This significantly reduces the number of memory allocation calls.

I've done a number of experiments with the underlying type of InfoByHwMode.
The type is a map, and for targets that do not use the parameterization,
this map has only one entry. The best (unoptimized) performance, somewhat
surprisingly came from std::map, followed closely by std::unordered_map.
DenseMap was the slowest by a large margin.
Various hand-crafted solutions (emulating enough of the map interface
not to make sweeping changes to the users) did not yield any observable
improvements.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313660 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-19 18:42:34 +00:00
Krzysztof Parzyszek
fcedb0e885 Revert "Improve TableGen performance of -gen-dag-isel (motivated by X86 backend)"
It breaks a lot of bots due to missing "__iterator_category".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313651 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-19 17:55:07 +00:00
Krzysztof Parzyszek
b6c562401c Move "(void)variable" closer to the assertion that uses it, NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313649 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-19 17:47:53 +00:00
Krzysztof Parzyszek
2e76b8570f Improve TableGen performance of -gen-dag-isel (motivated by X86 backend)
The introduction of parameterized register classes in r313271 caused the
matcher generation code in TableGen to run much slower, particularly so
in the unoptimized (debug) build. This patch recovers some of the lost
performance.

Summary of changes:
- Cache the set of legal types in TypeInfer::getLegalTypes. The contents
  of this set do not change.
- Add LLVM_ATTRIBUTE_ALWAYS_INLINE to several small functions. Normally
  this would not be necessary, but in the debug build TableGen is not
  optimized, so this helps a little bit.
- Add an early exit from TypeSetByHwMode::operator== for the case when
  one or both arguments are "simple", i.e. only have one mode. This
  saves some time in GenerateVariants.
- Finally, replace the underlying storage type in TypeSetByHwMode::SetType
  with MachineValueTypeSet based on std::array instead of std::set.
  This significantly reduces the number of memory allocation calls.

I've done a number of experiments with the underlying type of InfoByHwMode.
The type is a map, and for targets that do not use the parameterization,
this map has only one entry. The best (unoptimized) performance, somewhat
surprisingly came from std::map, followed closely by std::unordered_map.
DenseMap was the slowest by a large margin.
Various hand-crafted solutions (emulating enough of the map interface
not to make sweeping changes to the users) did not yield any observable
improvements.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313647 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-19 17:32:35 +00:00
Daniel Sanders
86721de9e5 [globalisel] Add support for intrinsic_w_chain.
This maps directly to G_INTRINSIC_W_SIDE_EFFECTS.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313627 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-19 12:56:36 +00:00
Zachary Turner
36409f3326 [lit] Use realpath when adding to the config map.
Since the path a user specifies to the llvm-lit script might be
different than the source tree they built from (since they could
be behind different symlinks), we need to use realpath to make
sure that path comparisons work as expected.

Even better would be to use a custom dictionary comparison with
actual file equivalence comparison semantics, but this is the
least friction to unbreak things for now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313594 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-18 23:36:35 +00:00
Zachary Turner
814f69e369 Fix inverted regex search.
I was using the pattern as the source string and vice versa
causing strange regular expression errors.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313590 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-18 23:14:15 +00:00
Zachary Turner
dd5485381d [lit] Fix a Python 3 compatibility issue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313580 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-18 22:30:45 +00:00
Zachary Turner
af03e798b8 [lit] Update clang and lld to use new config helpers.
NFC intended here, this only updates clang and lld's lit configs
to use some helper functionality in the lit.llvm submodule.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313579 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-18 22:26:48 +00:00
Benjamin Kramer
4bca09dc41 Remove uses of deprecated std::not1.
Lambdas are slightly more verbose, but also more readable. No
functionality change intended.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313482 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-17 11:19:53 +00:00
Zachary Turner
7906525848 Try to fix some failing bots.
It doesn't make sense to me why these bots are failing as the
traceback does not agree with the source code.  It's possible
something is stale or there is some other mysterious error,
but in any case hopefully this fixes it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313469 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-16 19:20:53 +00:00
Zachary Turner
4af1a22e52 Resubmit "Add a shared llvm.lit module that all test suites can use."
There were some issues surrounding Py2 / Py3 compatibility, but
I've now tested with both Py2 and Py3 and everything seems to
work.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313467 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-16 18:46:21 +00:00
Zachary Turner
d0c8c6186c [lit] Fix some Python 3 compatibility issues.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313466 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-16 18:45:44 +00:00
Zachary Turner
7e9d29db74 [lit] Fix the lit unit tests.
A few tests were manually constructing a LitConfig object, since
I added a new argument to it this was triggering some failures
I didn't detect.  `ninja check-lit` passes now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313461 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-16 15:48:30 +00:00
Zachary Turner
304372419a [lit] Add a single process mode.
This is helpful for debugging test failures since it removes
the multiprocessing pool from the picture.  This will obviously
slow down the test suite by a few orders of magnitude, so it
should only be used for debugging specific failures.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313460 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-16 15:31:34 +00:00
Chandler Carruth
b2acab96a2 [git] Update the llvm git helper script to work correctly with the
latest Python versions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313435 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-16 02:13:35 +00:00
Zachary Turner
591b934d84 Revert lit changes related to lit.llvm module.
It looks like this is going to be non-trivial to get working
in both Py2 and Py3, so for now I'm reverting until I have time
to fully test it under Python 3.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313429 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-16 00:52:49 +00:00
Zachary Turner
493ab405d6 [lit] Fix another Python 3 error.
Apparently we have a buildbot running Python 3.  This is going
to be fun :-/

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313428 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-16 00:43:16 +00:00
Zachary Turner
d9b70ae44f [lit] Better check for integral value.
Some versions of python don't have 'long'.  Use numbers.Number
instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313427 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-16 00:38:20 +00:00
Zachary Turner
6368f9154b Resubmit "[lit] Add a lit.llvm module that all llvm projects can use"
This was reverted alongside the revert of the lit/llvm-lit refactor,
but now that that has re-landed, I'm relanding this as well.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313426 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-16 00:25:58 +00:00
Zachary Turner
a0f1ea32df Resubmit "[lit] Force site configs to run before source-tree configs"
This is a resubmission of r313270.  It broke standalone builds of
compiler-rt because we were not correctly generating the llvm-lit
script in the standalone build directory.

The fixes incorporated here attempt to find llvm/utils/llvm-lit
from the source tree returned by llvm-config.  If present, it
will generate llvm-lit into the output directory.  Regardless,
the user can specify -DLLVM_EXTERNAL_LIT to point to a specific
lit.py on their file system.  This supports the use case of
someone installing lit via a package manager.  If it cannot find
a source tree, and -DLLVM_EXTERNAL_LIT is either unspecified or
invalid, then we print a warning that tests will not be able
to run.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313407 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 22:10:46 +00:00
Krzysztof Parzyszek
22b2c0d9c2 Fix selecting legal types in TypeInfer::getLegalTypes
Collect all legal types for all modes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313380 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 18:58:07 +00:00
Ilya Biryukov
ae3278a7b7 Added optional validation of svn sources to Dockerfiles.
Summary: This commit also adds a script to compute sha256 hashes of llvm checkouts.

Reviewers: klimek, mehdi_amini

Reviewed By: klimek

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313359 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 13:35:54 +00:00
Zachary Turner
b411a75bae Revert "[lit] Force site configs to run before source-tree configs"
This patch is still breaking several multi-stage compiler-rt bots.
I already know what the fix is, but I want to get the bots green
for now and then try re-applying in the morning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313335 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 02:56:40 +00:00
Tom Stellard
4d63668031 merge-request.sh: Update to use new "Fixed by Commit(s)" field
Summary:
This will be used instead of the url field to track which commits need
to be merged.

This patch also drops support for version 1.x of the bugzilla CLI tool.

Reviewers: hansw, hans

Reviewed By: hans

Subscribers: hans, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313334 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 02:25:22 +00:00
Zachary Turner
3cdfdbb5e8 [lit] Revert "Add a lit.llvm module that all llvm projects can use"
This is breaking due to some changes I forgot to merge in, so I'm
temporarily reverting them until I can re-test that this works.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313328 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 00:56:08 +00:00
Zachary Turner
065192f667 [lit] Remove some code that I forgot to remove.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313326 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 00:43:38 +00:00
Zachary Turner
d5831d289e [lit] Add a lit.llvm module that all test suites can use.
To further reduce duplicate code, this patch introduces a module
that configs can simply import and get access to a lot of useful
functionality such as setting up paths, adding features that are
useful across all projects, and other utility-type functions.

For now this only updates llvm's suite to use this new library,
but subsequent patches will update other projects.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313325 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-15 00:34:00 +00:00
Zachary Turner
b0f4ffc013 [lit] Fix some windows line endings that snuck in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313301 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-14 21:32:13 +00:00
Krzysztof Parzyszek
c84b8593fb Subtarget support for parameterized register class information
Implement "checkFeatures" and emitting HW mode check code.

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313295 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-14 20:44:20 +00:00
Benjamin Kramer
07d86e274d Remove usages of deprecated std::unary_function and std::binary_function.
These are removed in C++17. We still have some users of
unary_function::argument_type, so just spell that typedef out. No
functionality change intended.

Note that many of the argument types are actually wrong :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313287 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-14 18:33:25 +00:00
Krzysztof Parzyszek
952c41cc6e Silence warning about unused variable in release build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313273 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-14 17:08:26 +00:00
Krzysztof Parzyszek
db815646df TableGen support for parameterized register class information
This replaces TableGen's type inference to operate on parameterized
types instead of MVTs, and as a consequence, some interfaces have
changed:
- Uses of MVTs are replaced by ValueTypeByHwMode.
- EEVT::TypeSet is replaced by TypeSetByHwMode.

This affects the way that types and type sets are printed, and the
tests relying on that have been updated.

There are certain users of the inferred types outside of TableGen
itself, namely FastISel and GlobalISel. For those users, the way
that the types are accessed have changed. For typical scenarios,
these replacements can be used:
- TreePatternNode::getType(ResNo) -> getSimpleType(ResNo)
- TreePatternNode::hasTypeSet(ResNo) -> hasConcreteType(ResNo)
- TypeSet::isConcrete -> TypeSetByHwMode::isValueTypeByHwMode(false)

For more information, please refer to the review page.

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313271 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-14 16:56:21 +00:00
Zachary Turner
837d04db84 [lit] Force site configs to be run before source-tree configs
This patch simplifies LLVM's lit infrastructure by enforcing an ordering
that a site config is always run before a source-tree config.

A significant amount of the complexity from lit config files arises from
the fact that inside of a source-tree config file, we don't yet know if
the site config has been run.  However it is *always* required to run
a site config first, because it passes various variables down through
CMake that the main config depends on.  As a result, every config
file has to do a bunch of magic to try to reverse-engineer the location
of the site config file if they detect (heuristically) that the site
config file has not yet been run.

This patch solves the problem by emitting a mapping from source tree
config file to binary tree site config file in llvm-lit.py. Then, during
discovery when we find a config file, we check to see if we have a
target mapping for it, and if so we use that instead.

This mechanism is generic enough that it does not affect external users
of lit. They will just not have a config mapping defined, and everything
will work as normal.

On the other hand, for us it allows us to make many simplifications:

* We are guaranteed that a site config will be executed first
* Inside of a main config, we no longer have to assume that attributes
  might not be present and use getattr everywhere.
* We no longer have to pass parameters such as --param llvm_site_config=<path>
  on the command line.
* It is future-proof, meaning you don't have to edit llvm-lit.in to add
  support for new projects.
* All of the duplicated logic of trying various fallback mechanisms of
  finding a site config from the main config are now gone.

One potentially noteworthy thing that was required to implement this
change is that whereas the ninja check targets previously used the first
method to spawn lit, they now use the second. In particular, you can no
longer run lit.py against the source tree while specifying the various
`foo_site_config=<path>` parameters.  Instead, you need to run
llvm-lit.py.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313270 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-14 16:47:58 +00:00
Benjamin Kramer
e6834d6e1a [tblgen] Remove uses of std::ptr_fun, it's removed in C++17.
No functionality change intended.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313269 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-14 16:30:31 +00:00
Alexander Kornienko
87e117df59 Convenience/safety fix for llvm::sys::Execute(And|No)Wait
Summary:
Change the type of the Redirects parameter of llvm::sys::ExecuteAndWait,
ExecuteNoWait and other APIs that wrap them from `const StringRef **` to
`ArrayRef<Optional<StringRef>>`, which is safer and simplifies the use of these
APIs (no more local StringRef variables just to get a pointer to).

Corresponding clang changes will be posted as a separate patch.

Reviewers: bkramer

Reviewed By: bkramer

Subscribers: vsk, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313155 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-13 17:03:37 +00:00
Javed Absar
0a82c73f50 [MiSched|TableGen] : Tidy up and modernise. NFC.
Replacing with range-based loop and substituting 'using'.

Reviewed by: @MatzeB
Differential Revision: https://reviews.llvm.org/D37748



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313140 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-13 10:31:10 +00:00
Krzysztof Parzyszek
8440090177 Remove ancient, commented out code from TableGen, NFC
These pieces were commented out in r98534 and r129691, i.e. 6+ years ago.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313038 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-12 15:47:31 +00:00
Krzysztof Parzyszek
2ea93a22e5 Formatting changes, add LLVM_DUMP_METHOD to a dump function, NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313037 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-12 15:31:26 +00:00
Francis Ricci
48c5bd3c0d [TableGen] Ensure that __lsan_is_turned_off isn't removed by DCE in llvm-tblgen
Summary:
Since asan is linked dynamically on Darwin, the weak interface symbol
is removed by -Wl,-dead_strip.

Reviewers: kcc, compnerd, aaron.ballman

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312914 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-11 13:50:39 +00:00
Zvi Rackover
2890a7e4e3 Util: Improve update_llc_test_checks to scrub macosx-style assembly annotations
Summary:
In D37523 Sanjay pointed out that the tool does not scrub macosx-style 'End of Function' annotations,
where the comments begin with a double-#.

I tested this patch by verifying all existing occurences of 'End function' are scrubbed:
find ./test/CodeGen/X86 -name '*.ll' | xargs grep -l "End function" | xargs utils/update_llc_test_checks.py --llc-binary build/bin/llc

Reviewers: spatel, chandlerc, craig.topper

Reviewed By: spatel

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312678 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-06 23:04:28 +00:00
Craig Topper
911f6bba33 [TableGen] Teach tablegen to allow SDNPCommutable nodes with more than 2 operands.
Summary:
Tablegen already supports commutable instrinsics with more than 2 operands. There it just assumes the first two operands are commutable.

I plan to use this to improve the generation of FMA patterns in the X86 backend.

Reviewers: aymanmus, zvi, RKSimon, spatel, arsenm

Reviewed By: arsenm

Subscribers: arsenm, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312464 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-04 03:44:33 +00:00
Reid Kleckner
bf95626bdc [lit] Fix some issues with short paths in test discovery introduced in r312254
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312288 91177308-0d34-0410-b5e6-96231b3b80d8
2017-08-31 21:56:14 +00:00