Commit Graph

7698 Commits

Author SHA1 Message Date
Jinsong Ji
e09833c6e9 [UpdateChecks] Add support for armv7-apple-darwin
armv7-apple-darwin was not supported well, the script can't generate
checks.

https://reviews.llvm.org/D60601/new/#inline-568671

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364668 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-28 18:07:19 +00:00
Reid Kleckner
6452ae9617 [compiler-rt] Rename lit.*.cfg.* -> lit.*.cfg.py.*
These lit configuration files are really Python source code. Using the
.py file extension helps editors and tools use the correct language
mode. LLVM and Clang already use this convention for lit configuration,
this change simply applies it to all of compiler-rt.

Reviewers: vitalybuka, dberris

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364591 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-27 20:56:04 +00:00
Vitaly Buka
7687273d4e [GN] Update build file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364583 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-27 19:55:22 +00:00
Vitaly Buka
6dfbf1efb2 [GN] Set exit code to 1 if changes are needed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364582 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-27 19:55:21 +00:00
Nico Weber
83d25842b0 gn build: Follow-up to r364491 "[GN] Update build files"
- Merge r364427 (GSYM lib) more: It was missing the new unit test
  (as pointed out by llvm/utils/gn/build/sync_source_lists_from_cmake.py),
  and it had some superfluous deps not present in the cmake build.

- Merge r364474 (clang DependencyScanning lib) more: The deps didn't
  quite match cmake.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364501 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-27 06:08:57 +00:00
Vitaly Buka
2f93dab1ae [GN] Fix check-llvm
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364493 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-27 01:35:47 +00:00
Vitaly Buka
fd46f2294b [GN] Update build files
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364491 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-27 01:34:19 +00:00
Jinsong Ji
8d8d121460 [UpdateTestChecks][NFC] Remove entries with same prefix
Matching is 'lossy', triples with same prefix can be dropped.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364471 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-26 20:35:19 +00:00
Clement Courbet
6f6d98e186 Revert "r364412 [ExpandMemCmp][MergeICmps] Move passes out of CodeGen into opt pipeline."
Breaks sanitizers:
    libFuzzer :: cxxstring.test
    libFuzzer :: memcmp.test
    libFuzzer :: recommended-dictionary.test
    libFuzzer :: strcmp.test
    libFuzzer :: value-profile-mem.test
    libFuzzer :: value-profile-strcmp.test

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364416 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-26 12:13:13 +00:00
Clement Courbet
e0fc543f4c [ExpandMemCmp][MergeICmps] Move passes out of CodeGen into opt pipeline.
This allows later passes (in particular InstCombine) to optimize more
cases.

One that's important to us is `memcmp(p, q, constant) < 0` and memcmp(p, q, constant) > 0.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364412 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-26 11:50:18 +00:00
Nico Weber
04f6b4ef8c gn build: Merge r364387
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364411 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-26 11:44:54 +00:00
Nico Weber
615e00618a gn build: Merge r364386
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364409 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-26 11:35:28 +00:00
Nico Weber
bafb499a2f gn build: Merge r364389
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364408 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-26 11:33:56 +00:00
Peter Collingbourne
40a575fd11 gn build: Merge r364288.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364374 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-26 01:52:22 +00:00
Erich Keane
8910947d9a Teach TableGen Intrin Emitter to handle LLVMPointerType<llvm_any_ty>
r363233 rewrote a bunch of the Intrin Emitter code, however the new
function to update the arg codes did not properly consider a pointer to
an any.  This patch adds that logic.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364364 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-26 00:08:22 +00:00
Jinsong Ji
85cf93877d [PowerPC][UpdateTestChecks] powerpc- triple support
There are quite some old testcases with powerpc- triple,
we should add this triple support so that we can update them with script.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364213 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-24 18:00:34 +00:00
Petr Hosek
43f3f95395 [GN] Generation failure caused by trailing space in file name
When I executed gn.py gen out/gn I got the following error:

ERROR at //compiler-rt/lib/builtins/BUILD.gn:162:7: Only source, header, and object files belong in the sources of a static_library. //compiler-rt/lib/builtins/emutls.c  is not one of the valid types.
      "emutls.c ",
      ^----------
See //compiler-rt/lib/BUILD.gn:3:5: which caused the file to be included.
    "//compiler-rt/lib/builtins",
    ^---------------------------
It turns out to be that the latest gn doesn't accept ill-format file name. And the emutls.c above has a trailing space.
Remove the trailing space should work.

Patch By: myhsu
Differential Revision: https://reviews.llvm.org/D63449

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364162 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-23 23:12:10 +00:00
Peter Collingbourne
fd3d2d94f1 gn build: Merge r364046.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364116 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-22 00:03:53 +00:00
Vitaly Buka
da9b59dae2 [GN] Fix check-clang by disabling plugins
We can't link Analysis/plugins without -fPIC

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364016 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-21 09:54:32 +00:00
Vitaly Buka
4dd240da59 [GN] Put libcxx include into the same place as cmake to fix Driver/print-file-name.c test
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364015 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-21 09:54:31 +00:00
Vitaly Buka
d8ba01e7c9 [GN] Fix build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364004 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-21 02:15:07 +00:00
Nico Weber
f49faebedd gn build: Merge r363948
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363960 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-20 18:18:40 +00:00
Philip Reames
26df96a0c7 [Util] Add a helper script for converting -print-before-all output into a file based equivelent
Simple little utility which takes a opt logfile generated with "opt -print-before-all -print-module-scope -o /dev/null <args> 2&>1", and splits into a series of individual "chunk-X.ll" files. The intended purpose is to help automate one step in failure reduction.

The imagined workflow is:

    New crasher bug reported against clang or other frontend
    Frontend run with -emit-llvm equivalent and manually confirmed that opt -O2 <emit.ll> crashes
    Run this splitter script
    Manually map pass name to invocation command (next on the to automate list)
    Run bugpoint on last chunk file + manual command

I chose to dump every chunk rather than only the last since miscompile debugging frequently requires either manual step by step reduction, or cross feeding IR into different compiler versions. Not an immediate target, but there may be applications.

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



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363884 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-19 22:05:47 +00:00
Peter Collingbourne
3e7c8a9acd gn build: Merge r363757.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363865 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-19 19:11:23 +00:00
Peter Collingbourne
d3a9dda294 gn build: Merge r363848.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363864 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-19 19:11:14 +00:00
Peter Collingbourne
f2506466d2 gn build: Merge r363846.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363863 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-19 19:11:05 +00:00
Peter Collingbourne
91db7a7580 gn build: Merge r363794.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363862 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-19 19:10:56 +00:00
Peter Collingbourne
f43e6f57b1 gn build: Merge r363680.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363861 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-19 19:10:47 +00:00
Peter Collingbourne
6b9664a15e gn build: Merge r363712.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363860 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-19 19:10:38 +00:00
Daniel Sanders
10df6f5ff3 Re-commit r363744: [tblgen][disasm] Allow multiple encodings to disassemble to the same instruction
It seems macOS lets you have ArrayRef<const X> even though this is apparently
forbidden by the language standard (Thanks MSVC++ for the clear error message).
Removed the problematic const's to fix this.

(It also seems I'm not receiving buildbot emails anymore and I'm trying to find
 out why. In the mean time I'll be polling lab.llvm.org to hopefully see if/when
 failures occur)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363753 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-18 23:34:46 +00:00
Jordan Rupprecht
9001929846 Revert [tblgen][disasm] Allow multiple encodings to disassemble to the same instruction
This reverts r363744 (git commit 9b2252123d1e79d2b3594097a9d9cc60072b83d9)

This breaks many buildbots, e.g. http://lab.llvm.org:8011/builders/clang-atom-d525-fedora-rel/builds/203/steps/build%20stage%201/logs/stdio

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363747 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-18 22:21:31 +00:00
Daniel Sanders
c46dd2b9d2 [tblgen][disasm] Allow multiple encodings to disassemble to the same instruction
Summary:
Add an AdditionalEncoding class which can be used to define additional encodings
for a given instruction. This causes the disassembler to add an additional
encoding to its matching tables that map to the specified instruction.

Usage:
  def ADD1 : Instruction {
    bits<8> Reg;
    bits<32> Inst;

    let Size = 4;
    let Inst{0-7} = Reg;
    let Inst{8-14} = 0;
    let Inst{15} = 1; // Continuation bit
    let Inst{16-31} = 0;
    ...
  }
  def : AdditionalEncoding<ADD1> {
    bits<8> Reg;
    bits<16> Inst; // You can also have bits<32> and it will still be a 16-bit encoding
    let Size = 2;
    let Inst{0-3} = 0;
    let Inst{4-7} = Reg;
    let Inst{8-15} = 0;
    ...
  }
with those definitions, llvm-mc will successfully disassemble both of these:
  0x01 0x00
  0x10 0x80 0x00 0x00
to:
  ADD1 r1

Depends on D52366

Reviewers: bogner, charukcs

Reviewed By: bogner

Subscribers: nlguillemot, nhaehnle, llvm-commits

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363744 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-18 21:56:04 +00:00
Adrian McCarthy
2e02d2b3a3 Fix some lit test ResourceWarnings on Windows
When running LLDB lit tests on Windows, the system selects a debug version
of Python, which was issuing lots of ResourceWarnings about files that
weren't closed.  There are two kinds of them, and each test triggered one
of each.

This patch fixes one kind by ensuring TestRunner explicitly close the
temporary files created for routing stderr.  This is important on Windows
but has no net effect on Posix systems.

The remaining ResourceWarnings are more elusive; the bug may lie in
the Python library subprocess.py, and it may be Windows-specific.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363700 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-18 16:36:57 +00:00
Nico Weber
6ba6c1c9af gn build: Merge r363658
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363673 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-18 12:29:04 +00:00
Nico Weber
9ad1ee6fd3 gn build: Merge r363649
This reverts commit "gn build: Merge r363626" because r363626
was reverted in r363649.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363672 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-18 12:26:31 +00:00
Diogo N. Sampaio
5dae52e84b [NFC] Improve triple match of scripts that update tests
Summary:
The prior behavior of the triple matcher would stop
in the first matched triple. It was not possible to
create specific matches for sub-sets of a triple
(e.g aarch64-apple-darwin would never be used after
aarch64 was matched).

This patch:
1) Allows that specialized triples take priority,
considering that the string lenght of the triple
indentifies how specialized a triple is. If two
triples of same lenght match, the one matched first
prevails, preserving the old behavior.

2) Remove 20 duplicated triples of arm, thumb,
aarch64 options with same arguments, matching
the common prefix (aarch64, arm, thumb) of them.

3) Creates three new function matching regexes and
five triple options for arm64-apple-ios,
(arm|thumb)-apple-ios and thumb(v5)?-macho

Reviewers: lebedev.ri, RKSimon, MaskRay, gbedwell

Reviewed By: MaskRay

Subscribers: javed.absar, kristof.beyls, llvm-commits, carwil

Tags: #llvm

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363656 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-18 10:04:36 +00:00
Peter Collingbourne
bca91c8cab gn build: Merge r363626.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363634 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-17 23:39:31 +00:00
Peter Collingbourne
e6bda13f36 gn build: Merge r363483.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363610 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-17 20:03:11 +00:00
Peter Collingbourne
d07c0627e3 gn build: Merge r363584.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363609 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-17 19:59:16 +00:00
Nico Weber
c0de78b220 gn build: Merge r363541
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363583 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-17 17:45:12 +00:00
Nico Weber
f95bc3347d gn build: Merge r363530
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363549 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-17 12:18:27 +00:00
Nico Weber
29fd1c2a34 gn build: Merge r363444
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363505 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-16 02:24:01 +00:00
Matt Arsenault
ea0dabd2b6 UpdateTestChecks: Consider .section as end of function for AMDGPU
Kernels seem to go directly to a section switch instead of emitting
.Lfunc_end. This fixes including all of the kernel metadata in the
check lines, which is undesirable most of the time.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363452 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 20:40:15 +00:00
Nico Weber
b38f353791 gn build: Add NVPTX target
The NVPTX target is a bit unusual in that it's the only target without a
disassembler, and one of three targets without an asm parser (and the
first one of those three in the gn build). NVPTX doesn't have those
because it's not a binary format.

The CMake build checks for the existence of
{AsmParser,Disassembler}/CMakeLists.txt when setting
LLVM_ENUM_ASM_PARSERS / LLVM_ENUM_DISASSEBLERS
(http://llvm-cs.pcc.me.uk/CMakeLists.txt#744). The GN build doesn't want
to hit the disk for things like this, so instead I'm adding explicit
`targets_with_asm_parsers` and `targets_with_disassemblers` lists. Since
both are needed rarely, they are defined in their own gni files.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363437 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 18:07:00 +00:00
Nico Weber
ce52d84b19 gn build: Simplify Target build files
Now that the cycle between MCTargetDesc and TargetInfo is gone
(see revisions 360709 360718 360722 360724 360726 360731 360733 360735 360736),
remove the dependency from TargetInfo on MCTargetDesc:tablegen. In most
targets, this makes MCTargetDesc:tablegen have just a single use, so
inline it there.

For AArch64, ARM, and RISCV there's still a similar cycle between
MCTargetDesc and Utils, so the MCTargetDesc:tablegen indirection is
still needed there.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363436 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 17:58:34 +00:00
Michal Gorny
a2091d4165 [lit] Fix UnicodeEncodeError when test commands contain non-ASCII chars
Ensure that the bash script written by lit TestRunner is open with UTF-8
encoding when using Python 3.  Otherwise, attempt to write non-ASCII
characters causes UnicodeEncodeError.  This happened e.g. with
the following LLD test:

UNRESOLVED: lld :: ELF/format-binary-non-ascii.s (657 of 2119)
******************** TEST 'lld :: ELF/format-binary-non-ascii.s' FAILED ********************
Exception during script execution:
Traceback (most recent call last):
  File "/home/mgorny/llvm-project/llvm/utils/lit/lit/worker.py", line 63, in _execute_test
    result = test.config.test_format.execute(test, lit_config)
  File "/home/mgorny/llvm-project/llvm/utils/lit/lit/formats/shtest.py", line 25, in execute
    self.execute_external)
  File "/home/mgorny/llvm-project/llvm/utils/lit/lit/TestRunner.py", line 1644, in executeShTest
    res = _runShTest(test, litConfig, useExternalSh, script, tmpBase)
  File "/home/mgorny/llvm-project/llvm/utils/lit/lit/TestRunner.py", line 1590, in _runShTest
    res = executeScript(test, litConfig, tmpBase, script, execdir)
  File "/home/mgorny/llvm-project/llvm/utils/lit/lit/TestRunner.py", line 1157, in executeScript
    f.write('{ ' + '; } &&\n{ '.join(commands) + '; }')
UnicodeEncodeError: 'ascii' codec can't encode character '\xa3' in position 274: ordinal not in range(128)

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363388 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 13:31:48 +00:00
Nico Weber
f4057b6f1c Revert r363298 "[lit] Disable test on darwin when building shared libs."
It broke running check-lld on mac, see https://reviews.llvm.org/D61697

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363379 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 12:58:17 +00:00
Nico Weber
11004010bf gn build: Merge r363376
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363378 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 12:31:18 +00:00
Nico Weber
d2380d1dbb gn build: Merge r363204 (clang-scan-deps)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363353 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-14 04:26:01 +00:00
Craig Topper
b854e64f61 [X86Disassembler] Unify the EVEX and VEX code in emitContextTable. Merge the ATTR_VEXL/ATTR_EVEXL bits. NFCI
Merging the two bits shrinks the context table from 16384 bytes to 8192 bytes.

Remove the ATTRIBUTE_BITS macro and just create an enum directly. Then fix the ATTR_max define to be 8192 to reflect the table size so we stop hardcoding it separately.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363330 91177308-0d34-0410-b5e6-96231b3b80d8
2019-06-13 22:15:25 +00:00