platform/upstream/llvm.git
2 years agoRevert "[AArch64][GlobalISel] Optimize conjunctions of compares to conditional compares."
Florian Hahn [Mon, 21 Feb 2022 10:52:09 +0000 (10:52 +0000)]
Revert "[AArch64][GlobalISel] Optimize conjunctions of compares to conditional compares."

This reverts commit 2a46450849de6904fc64f9a65303b20ca7fc9dbd.

This triggers the following assertion in an internal project:

    Assertion failed: (VRegInfo[Reg.id()].first.is<const TargetRegisterClass
    *>() && "Register class not set, wrong accessor"), function getRegClass,
    file MachineRegisterInfo.h, line 646.

I'll work with the author directly to get a reproducer.

2 years ago[AMDGPU] SILoadStoreOptimizer: avoid unbounded register pressure increases
Jay Foad [Fri, 28 Jan 2022 13:49:12 +0000 (13:49 +0000)]
[AMDGPU] SILoadStoreOptimizer: avoid unbounded register pressure increases

Previously when combining two loads this pass would sink the
first one down to the second one, putting the combined load
where the second one was. It would also sink any intervening
instructions which depended on the first load down to just
after the combined load.

For example, if we started with this sequence of
instructions (code flowing from left to right):

  X A B C D E F Y

After combining loads X and Y into XY we might end up with:

  A B C D E F XY

But if B D and F depended on X, we would get:

  A C E XY B D F

Now if the original code had some short disjoint live ranges
from A to B, C to D and E to F, in the transformed code
these live ranges will be long and overlapping. In this way
a single merge of two loads could cause an unbounded
increase in register pressure.

To fix this, change the way the way that loads are moved in
order to merge them so that:
- The second load is moved up to the first one. (But when
  merging stores, we still move the first store down to the
  second one.)
- Intervening instructions are never moved.
- Instead, if we find an intervening instruction that would
  need to be moved, give up on the merge. But this case
  should now be pretty rare because normal stores have no
  outputs, and normal loads only have address register
  inputs, but these will be identical for any pair of loads
  that we try to merge.

As well as fixing the unbounded register pressure increase
problem, moving loads up and stores down seems like it
should usually be a win for memory latency reasons.

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

2 years ago[Test] Add failing test for PR53969
Max Kazantsev [Mon, 21 Feb 2022 10:48:08 +0000 (17:48 +0700)]
[Test] Add failing test for PR53969

2 years agoIncrease the limit on parser diagnostics
Benjamin Kramer [Mon, 21 Feb 2022 10:43:40 +0000 (11:43 +0100)]
Increase the limit on parser diagnostics

We're really close to the limit
$ grep -c DIAG tools/clang/include/clang/Basic/DiagnosticParseKinds.inc
598

2 years ago[StableHashing] Hash vregs with multiple defs
Jay Foad [Fri, 18 Feb 2022 11:55:09 +0000 (11:55 +0000)]
[StableHashing] Hash vregs with multiple defs

This allows stableHashValue to be used on Machine IR that is
not in SSA form.

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

2 years ago[DebugInfo][test] XFAIL DebugInfo/Generic/no-empty-child-vars.ll on SPARC
Rainer Orth [Mon, 21 Feb 2022 10:23:15 +0000 (11:23 +0100)]
[DebugInfo][test] XFAIL DebugInfo/Generic/no-empty-child-vars.ll on SPARC

`DebugInfo/Generic/no-empty-child-vars.ll` `FAIL`s on SPARC.  As discussed
in D95617 <https://reviews.llvm.org/D95617>, this is yet another instance
of Issue #46473.

As was done for other failures due to this bug, this patch `XFAIL`s the test.

Tested on `sparcv9-sun-solaris2.11`.

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

2 years ago[RISCV] Add tests for SHFLI and UNSHFLI aliases in Zbp extension
Lian Wang [Mon, 21 Feb 2022 09:58:55 +0000 (09:58 +0000)]
[RISCV] Add tests for SHFLI and UNSHFLI aliases in Zbp extension

Supplement tests alias of SHFLI and UNSHFLI instructions.

RV32: zip8/zip4/zip2/unzip8/unzip4/unzip2

RV64: zip8.w/zip4.w/zip2.w/zip.w/zip8/zip4/zip2/zip/
      unzip8.w/unzip4.w/unzip2.w/unzip.w/unzip8/unzip4/unzip2/unzip

Reviewed By: craig.topper

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

2 years ago[VE] v512i1 mask arithmetic isel
Simon Moll [Mon, 21 Feb 2022 09:37:47 +0000 (10:37 +0100)]
[VE] v512i1 mask arithmetic isel

Packed vector and mask registers (v512) are composed of two v256
subregisters that occupy the even and odd element positions.  We add
packing support SDNodes (vec_unpack_lo|hi and vec_pack) and splitting of
v512i1 mask arithmetic ops with those.

Reviewed By: kaz7

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

2 years ago[C++20][Modules][1/8] Track valid import state.
Iain Sandoe [Thu, 11 Feb 2021 00:15:56 +0000 (00:15 +0000)]
[C++20][Modules][1/8] Track valid import state.

In C++20 modules imports must be together and at the start of the module.
Rather than growing more ad-hoc flags to test state, this keeps track of the
phase of of a valid module TU (first decl, global module frag, module,
private module frag).  If the phasing is broken (with some diagnostic) the
pattern does not conform to a valid C++20 module, and we set the state
accordingly.

We can thus issue diagnostics when imports appear in the wrong places and
decouple the C++20 modules state from other module variants (modules-ts and
clang modules).  Additionally, we attempt to diagnose wrong imports before
trying to find the module where possible (the latter will generally emit an
unhelpful diagnostic about the module not being available).

Although this generally simplifies the handling of C++20 module import
diagnostics, the motivation was that, in particular, it allows detecting
invalid imports like:

import module A;

int some_decl();

import module B;

where being in a module purview is insufficient to identify them.

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

2 years ago[ELF] Replace uncompressed InputSectionBase::data() with rawData. NFC
Fangrui Song [Mon, 21 Feb 2022 08:39:26 +0000 (00:39 -0800)]
[ELF] Replace uncompressed InputSectionBase::data() with rawData. NFC

In many call sites we know uncompression cannot happen (non-SHF_ALLOC, or the
data (even if compressed) must have been uncompressed by a previous pass).
Prefer rawData in these cases. data() increases code size and prevents
optimization on rawData.

2 years ago[mlir][linalg][bufferize][NFC] Move interface impl to Linalg Transforms
Matthias Springer [Mon, 21 Feb 2022 08:13:13 +0000 (17:13 +0900)]
[mlir][linalg][bufferize][NFC] Move interface impl to Linalg Transforms

This is for consistency with other dialects.

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

2 years ago[MLIR][LINALG] Add canonicalization pattern in `linalg.generic` op for static shape...
Prateek Gupta [Thu, 3 Feb 2022 15:55:30 +0000 (15:55 +0000)]
[MLIR][LINALG] Add canonicalization pattern in `linalg.generic` op for static shape inference.

This commit adds canonicalization pattern in `linalg.generic` op
for static shape inference. If any of the inputs or outputs have
static shape or is casted from a tensor of static shape, then
shapes of all the inputs and outputs can be inferred by using the
affine map of the static shape input/output.

Signed-Off-By: Prateek Gupta <prateek@nod-labs.com>
Reviewed By: mravishankar

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

2 years ago[mlir][OpenMP] Added assemblyFormat for SectionsOp
Shraiysh Vaishay [Mon, 21 Feb 2022 07:20:58 +0000 (12:50 +0530)]
[mlir][OpenMP] Added assemblyFormat for SectionsOp

This patch adds assemblyFormat for omp.sections operation.

Some existing functions have been altered to fit the custom directive
in assemblyFormat. This has led to their callsites to get modified too,
but those will be removed in later patches, when other operations get
their assemblyFormat. All operations were not changed in one patch for
ease of review.

Reviewed By: Mogball

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

2 years ago[RISCV] Fix the include search path order between sysroot and resource folder (Recomm...
Kito Cheng [Mon, 21 Feb 2022 06:06:19 +0000 (14:06 +0800)]
[RISCV] Fix the include search path order between sysroot and resource folder (Recommit again)

Resource folder[1] should include before sysroot[2] in general (Linux clang
toolchain, BareMetal clang toolchain, and GCC using that order), and that
prevent sysroot's header file override resource folder's one, this change is
reference from BareMetal::AddClangSystemIncludeArgs@BareMetal.cpp[3].

And also fix the behavior of `-nobuiltininc`.

[1] Include path from resource folder is something like this: `<toolchain-path>/lib/clang/13.0.0/include/`
[2] Include path from sysroot is something like this: `<toolchain-path>/riscv32-unknown-elf/include`
[3] https://github.com/llvm/llvm-project/blob/llvmorg-13.0.1/clang/lib/Driver/ToolChains/BareMetal.cpp#L193

Reviewed By: asb

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

The recommit fixes the Windows build failure due to path issue.

2 years agoRevert "[RISCV] Fix the include search path order between sysroot and resource folder...
Kito Cheng [Mon, 21 Feb 2022 06:56:50 +0000 (14:56 +0800)]
Revert "[RISCV] Fix the include search path order between sysroot and resource folder (Recommit)"

This reverts commit 47b1fa5fc48821eefefd157ed4af2f2cf3bacef4.

2 years ago[ARM] Remove unused lowerABS function. NFC
Craig Topper [Mon, 21 Feb 2022 06:35:30 +0000 (22:35 -0800)]
[ARM] Remove unused lowerABS function. NFC

This function was added in D49837, but no setOperationAction call
was added with it. The code is equivalent to what is done by the
default ExpandIntRes_ABS implementation when ADDCARRY is supported.
Test case added to verify this. There was some existing coverage
from Thumb2 MVE tests, but they started from vectors.

2 years ago[RISCV] Fix the include search path order between sysroot and resource folder (Recommit)
Kito Cheng [Mon, 21 Feb 2022 06:06:19 +0000 (14:06 +0800)]
[RISCV] Fix the include search path order between sysroot and resource folder (Recommit)

Resource folder[1] should include before sysroot[2] in general (Linux clang
toolchain, BareMetal clang toolchain, and GCC using that order), and that
prevent sysroot's header file override resource folder's one, this change is
reference from BareMetal::AddClangSystemIncludeArgs@BareMetal.cpp[3].

And also fix the behavior of `-nobuiltininc`.

[1] Include path from resource folder is something like this: `<toolchain-path>/lib/clang/13.0.0/include/`
[2] Include path from sysroot is something like this: `<toolchain-path>/riscv32-unknown-elf/include`
[3] https://github.com/llvm/llvm-project/blob/llvmorg-13.0.1/clang/lib/Driver/ToolChains/BareMetal.cpp#L193

Reviewed By: asb

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

The recommit fixes the Windows build failure due to path issue.

2 years agoRevert "[RISCV] Fix the include search path order between sysroot and resource folder"
Kito Cheng [Mon, 21 Feb 2022 06:25:49 +0000 (14:25 +0800)]
Revert "[RISCV] Fix the include search path order between sysroot and resource folder"

This reverts commit 079d13668bf1b7f929f1897af90f64caae41c81d.

2 years ago[RISCV] Fix the include search path order between sysroot and resource folder
Kito Cheng [Mon, 21 Feb 2022 06:06:19 +0000 (14:06 +0800)]
[RISCV] Fix the include search path order between sysroot and resource folder

Resource folder[1] should include before sysroot[2] in general (Linux clang
toolchain, BareMetal clang toolchain, and GCC using that order), and that
prevent sysroot's header file override resource folder's one, this change is
reference from BareMetal::AddClangSystemIncludeArgs@BareMetal.cpp[3].

And also fix the behavior of `-nobuiltininc`.

[1] Include path from resource folder is something like this: `<toolchain-path>/lib/clang/13.0.0/include/`
[2] Include path from sysroot is something like this: `<toolchain-path>/riscv32-unknown-elf/include`
[3] https://github.com/llvm/llvm-project/blob/llvmorg-13.0.1/clang/lib/Driver/ToolChains/BareMetal.cpp#L193

Reviewed By: asb

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

2 years ago[SelectionDAG][RISCV][ARM][PowerPC][X86][WebAssembly] Change default abs expansion...
Craig Topper [Mon, 21 Feb 2022 05:11:21 +0000 (21:11 -0800)]
[SelectionDAG][RISCV][ARM][PowerPC][X86][WebAssembly] Change default abs expansion to use sra (X, size(X)-1); sub (xor (X, Y), Y).

Previous we used sra (X, size(X)-1); xor (add (X, Y), Y).

By placing sub at the end, we allow RISCV to combine sign_extend_inreg
with it to form subw.

Some X86 tests for Z - abs(X) seem to have improved as well.

Other targets look to be a wash.

I had to modify ARM's abs matching code to match from sub instead of
xor. Maybe instead ISD::ABS should be made legal. I'll try that in
parallel to this patch.

This is an alternative to D119099 which was focused on RISCV only.

Reviewed By: RKSimon

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

2 years ago[STATEPOINT] Mark LR is early-clobber implicit def.
Serguei Katkov [Fri, 18 Feb 2022 11:10:14 +0000 (18:10 +0700)]
[STATEPOINT] Mark LR is early-clobber implicit def.

LR is modified at the moment of the call and before any use is read.

Reviewers: reames
Reviewed By: reames
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D120114

2 years agoReland [XCOFF][llvm-objdump] change the priority of symbols with the same address...
esmeyi [Mon, 21 Feb 2022 02:51:10 +0000 (21:51 -0500)]
Reland [XCOFF][llvm-objdump] change the priority of symbols with the same address by symbol types.

Fix the Buildbot failure #19373.

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

2 years ago[ISEL] remove unnecessary getNode(); NFC
Chen Zheng [Thu, 17 Feb 2022 13:57:53 +0000 (08:57 -0500)]
[ISEL] remove unnecessary getNode(); NFC

Reviewed By: RKSimon, craig.topper

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

2 years ago[RISCV][NFC] Add sched for some instructions in Zb extension
Lian Wang [Mon, 21 Feb 2022 01:58:08 +0000 (09:58 +0800)]
[RISCV][NFC] Add sched for some instructions in Zb extension

Add sched to brev8, zip and unzip instruction.

Reviewed By: craig.topper

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

2 years ago[SDAG] enable binop identity constant folds for sub
Luo, Yuanke [Fri, 18 Feb 2022 13:04:08 +0000 (21:04 +0800)]
[SDAG] enable binop identity constant folds for sub

This patch extract the sub folding from D119654 and leave only add
folding in that patch.

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

2 years ago[BOLT] Added fuzzer target (llvm-bolt-fuzzer)
Amir Ayupov [Mon, 21 Feb 2022 01:23:40 +0000 (17:23 -0800)]
[BOLT] Added fuzzer target (llvm-bolt-fuzzer)

This adds a target that would consume random binary as an
input ELF file.
TBD: add structured input support (ELF).

Build:
```
cmake /path/to/llvm-project/llvm -GNinja \
-DLLVM_TARGETS_TO_BUILD="X86;AArch64" \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_ASSERTIONS=1 \
-DCMAKE_C_COMPILER=<sanitizer-capable clang> \
-DCMAKE_CXX_COMPILER=<sanitizer-capable clang++> \
-DLLVM_ENABLE_PROJECTS="bolt"  \
-DLLVM_USE_SANITIZER=Address \
-DLLVM_USE_SANITIZE_COVERAGE=On
ninja llvm-bolt-fuzzer
```

Test Plan: ninja llvm-bolt-fuzzer

Reviewed By: maksfb

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

2 years ago[BOLT][NFC] Fix data race in ShrinkWrapping stats
Amir Ayupov [Sun, 20 Feb 2022 22:44:09 +0000 (14:44 -0800)]
[BOLT][NFC] Fix data race in ShrinkWrapping stats

Fix data race reported by ThreadSanitizer in clang.test:
```
ThreadSanitizer: data race /data/llvm-project/bolt/lib/Passes/ShrinkWrapping.cpp:1359:28
in llvm::bolt::ShrinkWrapping::moveSaveRestores()
```

The issue is with incrementing global counters from multiple threads.

Reviewed By: yota9

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

2 years ago[clang-format][NFC] Fix typos and inconsistencies
Krystian Kuzniarek [Mon, 21 Feb 2022 01:16:06 +0000 (17:16 -0800)]
[clang-format][NFC] Fix typos and inconsistencies

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

2 years agoDebugInfo: Add an assert about cross-unit references in dwo units
David Blaikie [Sun, 20 Feb 2022 22:52:33 +0000 (14:52 -0800)]
DebugInfo: Add an assert about cross-unit references in dwo units

This is helping me debug some issues with simplified template names

2 years ago[clang-tidy] Provide fine control of color in run-clang-tidy
Kesavan Yogeswaran [Sun, 20 Feb 2022 22:00:23 +0000 (22:00 +0000)]
[clang-tidy] Provide fine control of color in run-clang-tidy

D90110 modified the behavior of `run-clang-tidy` to always pass the
`--use-color` option to clang-tidy, which enabled colored diagnostics
output regardless of TTY status or .clang-tidy settings. This left the
user with no option to disable the colored output.

This presents an issue when trying to parse the output of run-clang-tidy
programmaticall, as the output is polluted with ANSI escape characters.

This PR fixes this issue in two ways:
1. It restores the default behavior of `run-clang-tidy` to let
   `clang-tidy` decide whether to color output. This allows the user to
   configure color via the `UseColor` option in a .clang-tidy file.
2. It adds mutually exclusive, optional `-use-color` and `-no-use-color`
   argument flags that let the user explicitly set the color option via
   the invocation.

After this change the default behavior of `run-clang-tidy` when no
.clang-tidy file is available is now to show no color, presumably
because `clang-tidy` detects that the output is being piped and defaults
to not showing colored output. This seems like an acceptable tradeoff
to respect .clang-tidy configurations, as users can still use the
`-use-color` option to explicitly enable color.

Fixes #49441 (50097 in Bugzilla)

Reviewed By: njames93

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

2 years ago[clang-format][docs] Fix incorrect 'clang-format 13' configuration ...
Krystian Kuzniarek [Sun, 20 Feb 2022 20:07:53 +0000 (21:07 +0100)]
[clang-format][docs] Fix incorrect 'clang-format 13' configuration ...

...options markers

Note: Option 'IndentRequiresClause' was previously known as
'IndentRequires' but the version marker should still indicate
'clang-format 15' as this option most recent name wasn't accessible
earlier and it would produce:
error: unknown key 'IndentRequiresClause'

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

2 years ago[clang-format][NFC] Return early in ContinuationIndenter::mustBreak
Björn Schäpers [Sun, 2 Jan 2022 20:42:08 +0000 (21:42 +0100)]
[clang-format][NFC] Return early in ContinuationIndenter::mustBreak

We can return as early as possible and only calculate IsComparison if we
really need to. Also cache getPrecedence() instead of querying it at
most 4 times.

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

2 years ago[clang-format] Fixed handling of requires clauses followed by attributes
Björn Schäpers [Tue, 15 Feb 2022 21:59:23 +0000 (22:59 +0100)]
[clang-format] Fixed handling of requires clauses followed by attributes

Fixes https://github.com/llvm/llvm-project/issues/53820.

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

2 years agoRevert "[clang-format] Avoid inserting space after C++ casts."
Marek Kurdej [Sun, 20 Feb 2022 21:18:16 +0000 (22:18 +0100)]
Revert "[clang-format] Avoid inserting space after C++ casts."

This reverts commit e021987273bece6e94bc6f43b6b5232de10637c8.

This commit provokes failures in formatting tests of polly.
Cf. https://lab.llvm.org/buildbot/#/builders/205/builds/3320.

That's probably because of `)` being annotated as `CastRParen` instead of `Unknown` before, hence being kept on the same line with the next token.

2 years ago[clang-format] Avoid inserting space after C++ casts.
Marek Kurdej [Fri, 18 Feb 2022 17:24:14 +0000 (18:24 +0100)]
[clang-format] Avoid inserting space after C++ casts.

Fixes https://github.com/llvm/llvm-project/issues/53876.

This is a solution for standard C++ casts: const_cast, dynamic_cast, reinterpret_cast, static_cast.

A general approach handling all possible casts is not possible without semantic information.
Consider the code:
```
static_cast<T>(*function_pointer_variable)(arguments);
```
vs.
```
some_return_type<T> (*function_pointer_variable)(parameters);
// Later used as:
function_pointer_variable = &some_function;
return function_pointer_variable(args);
```
In the latter case, it's not a cast but a variable declaration of a pointer to function.
Without knowing what `some_return_type<T>` is (and clang-format does not know it), it's hard to distinguish between the two cases. Theoretically, one could check whether "parameters" are types (not a cast) and "arguments" are value/expressions (a cast), but that might be inefficient (needs lots of lookahead).

Reviewed By: MyDeveloperDay, HazardyKnusperkeks, owenpan

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

2 years agoFix extraneous whitespace addition in line comments on clang-format directives
Luis Penagos [Sun, 20 Feb 2022 20:35:47 +0000 (21:35 +0100)]
Fix extraneous whitespace addition in line comments on clang-format directives

Fixes https://github.com/llvm/llvm-project/issues/53844.
I believe this regression was caused by not accounting for clang-format directives in https://reviews.llvm.org/D92257.

Reviewed By: HazardyKnusperkeks, curdeius

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

2 years ago[X86] Regenerate switch-default-only.ll
Simon Pilgrim [Sun, 20 Feb 2022 20:42:31 +0000 (20:42 +0000)]
[X86] Regenerate switch-default-only.ll

2 years ago[llvm] Add missind dep on Symbolize to Debuginfod
Yannic Bonenberger [Sun, 20 Feb 2022 20:32:38 +0000 (12:32 -0800)]
[llvm] Add missind dep on Symbolize to Debuginfod

 `llvm/Debuginfod/DIFetcher.h` imports `llvm/DebugInfo/Symbolize/DIFetcher.h`,
so there should be a dependency on Symbolize.

Reviewed By: #debug-info, dblaikie, phosek

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

2 years ago[AArch64][RISCV][x86] add tests for mul-add demanded bits; NFC
Sanjay Patel [Fri, 18 Feb 2022 22:01:37 +0000 (17:01 -0500)]
[AArch64][RISCV][x86] add tests for mul-add demanded bits; NFC

See #53829

2 years ago[docs] Update ReleaseNotes template
Alex Bradbury [Sun, 20 Feb 2022 19:42:07 +0000 (19:42 +0000)]
[docs] Update ReleaseNotes template

This change makes several updates to the ReleaseNotes template:

* Orders the backend/target updates alphabetically
* Adds RISC-V to the list
* Uses "Backend" rather than a mix of "Target" and "Backend" (I don't
  have a strong view on which term is used, but we should be
  consistent!)
* Uses * ... as the placeholder text, as this matches the format
  actually used for most updates in recent releases

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

2 years ago[libcxx][test] Update msvc_stdlib_force_include.h for C++23
Casey Carter [Sun, 20 Feb 2022 19:34:48 +0000 (11:34 -0800)]
[libcxx][test] Update msvc_stdlib_force_include.h for C++23

Make distinct `TEST_STD_VER` values for C++20 and C++23; add C++23 deprecation suppression.

Fixes #53597

2 years ago[SimplifyCFG][OpaquePtr] Check store type when merging conditional store
Arthur Eubanks [Sun, 20 Feb 2022 19:29:54 +0000 (11:29 -0800)]
[SimplifyCFG][OpaquePtr] Check store type when merging conditional store

2 years ago[X86] combineX86ShufflesRecursively - attempt to fold ISD::EXTRACT_SUBVECTOR into...
Simon Pilgrim [Sun, 20 Feb 2022 18:50:28 +0000 (18:50 +0000)]
[X86] combineX86ShufflesRecursively - attempt to fold ISD::EXTRACT_SUBVECTOR into a shuffle chain

Peek through if we're extracting a non-zero'th subvector in an attempt to fold the extract into a lane-crossing shuffle

This also exposes a failure to fold extract_subvector(movddup(x),c) -> movddup(extract_subvector(x,c))

2 years ago[docs] fix typo
Nuno Lopes [Sun, 20 Feb 2022 18:43:30 +0000 (18:43 +0000)]
[docs] fix typo

2 years ago[MLIR][Presburger] Inequality Typing in coalesce
Michel Weber [Sun, 20 Feb 2022 17:49:09 +0000 (23:19 +0530)]
[MLIR][Presburger] Inequality Typing in coalesce

This patch adds typing of inequalities to the simplex. This is a cental part of the coalesce algorithm and will be heavily used in later coalesce patches. Currently, only the three most basic types are supported with more to be introduced when they are needed.

Reviewed By: arjunp

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

2 years ago[PowerPC] Add option to disable perfect shuffle
Qiu Chaofan [Sun, 20 Feb 2022 17:39:35 +0000 (01:39 +0800)]
[PowerPC] Add option to disable perfect shuffle

Perfect shuffle was introduced into PowerPC backend years ago, and only
available in big-endian subtargets. This optimization has good effects
in simple cases, but brings serious negative impact in large programs
with many shuffle instructions sharing the same mask.

Here introduces a temporary backend hidden option to control it until we
implemented better way to fix the gap in vectorshuffle decomposition.

Reviewed By: jsji

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

2 years ago[X86] combineX86ShufflesRecursively - add TODO not to generate temporary nodes
Simon Pilgrim [Sun, 20 Feb 2022 15:59:23 +0000 (15:59 +0000)]
[X86] combineX86ShufflesRecursively - add TODO not to generate temporary nodes

Extension to PR45974, unless we actual combine the target shuffles we shouldn't be generating temporary nodes as they may interfere with the one use checks in the shuffle recursions

2 years ago[LV] Add store to test to make sure the loop is not dead.
Florian Hahn [Sun, 20 Feb 2022 15:05:20 +0000 (15:05 +0000)]
[LV] Add store to test to make sure the loop is not dead.

Add an extra store to the test, to make sure the operations in the loop
cannot be optimized away after D118051.

2 years agoPut back err_drv_negative_columns/err_drv_small_columns for flang
Benjamin Kramer [Sun, 20 Feb 2022 14:42:20 +0000 (15:42 +0100)]
Put back err_drv_negative_columns/err_drv_small_columns for flang

These are unused by Clang, but Flang references them.

2 years ago[clangd] Remove uuidof warning. Clang never emits this one.
Benjamin Kramer [Sun, 20 Feb 2022 13:44:47 +0000 (14:44 +0100)]
[clangd] Remove uuidof warning. Clang never emits this one.

2 years ago[AArch64] Extra tests for larger umull/smull generation. NFC
David Green [Sun, 20 Feb 2022 13:20:34 +0000 (13:20 +0000)]
[AArch64] Extra tests for larger umull/smull generation. NFC

2 years agoPrune unused diagnostics. NFC.
Benjamin Kramer [Sun, 20 Feb 2022 13:06:58 +0000 (14:06 +0100)]
Prune unused diagnostics. NFC.

2 years ago[docs] Frotend perf tips: mention poison vs undef and noundef attribute
Nuno Lopes [Sun, 20 Feb 2022 11:58:46 +0000 (11:58 +0000)]
[docs] Frotend perf tips: mention poison vs undef and noundef attribute

2 years ago[ArgPromotion] Regenerate test checks for dead-gep-no-promotion.ll
Valery Pykhtin [Sun, 20 Feb 2022 11:57:06 +0000 (14:57 +0300)]
[ArgPromotion] Regenerate test checks for dead-gep-no-promotion.ll
with --function-signature option (otherwise filecheck gets confused).

2 years ago[docs] Simplify the description of poison values
Nuno Lopes [Sun, 20 Feb 2022 11:41:49 +0000 (11:41 +0000)]
[docs] Simplify the description of poison values

2 years ago[docs] Add a note saying that the use of poison is preferred to the use of undef
Nuno Lopes [Sun, 20 Feb 2022 11:33:47 +0000 (11:33 +0000)]
[docs] Add a note saying that the use of poison is preferred to the use of undef
Plus fix a few wrong examples with undef

2 years agoUnionize clang::DynTypedNodeList. NFC.
Benjamin Kramer [Sun, 20 Feb 2022 11:12:39 +0000 (12:12 +0100)]
Unionize clang::DynTypedNodeList. NFC.

2 years agoRevert "[C++20][Modules][1/8] Track valid import state."
Iain Sandoe [Sun, 20 Feb 2022 10:20:48 +0000 (10:20 +0000)]
Revert "[C++20][Modules][1/8] Track valid import state."

This reverts commit 8a3f9a584ad43369cf6a034dc875ebfca76d9033.

need to investigate build failures that do not show on CI or local
testing.

2 years ago[ArgPromotion] auto-update test checks.
Valery Pykhtin [Sat, 19 Feb 2022 17:21:45 +0000 (20:21 +0300)]
[ArgPromotion] auto-update test checks.

Rename %tmp => %temp IR values to avoid update warning.

2 years ago[C++20][Modules][1/8] Track valid import state.
Iain Sandoe [Thu, 11 Feb 2021 00:15:56 +0000 (00:15 +0000)]
[C++20][Modules][1/8] Track valid import state.

In C++20 modules imports must be together and at the start of the module.
Rather than growing more ad-hoc flags to test state, this keeps track of the
phase of of a valid module TU (first decl, global module frag, module,
private module frag).  If the phasing is broken (with some diagnostic) the
pattern does not conform to a valid C++20 module, and we set the state
accordingly.

We can thus issue diagnostics when imports appear in the wrong places and
decouple the C++20 modules state from other module variants (modules-ts and
clang modules).  Additionally, we attempt to diagnose wrong imports before
trying to find the module where possible (the latter will generally emit an
unhelpful diagnostic about the module not being available).

Although this generally simplifies the handling of C++20 module import
diagnostics, the motivation was that, in particular, it allows detecting
invalid imports like:

import module A;

int some_decl();

import module B;

where being in a module purview is insufficient to identify them.

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

2 years ago[AArch64][GlobalISel] Optimize conjunctions of compares to conditional compares.
Amara Emerson [Sun, 20 Feb 2022 09:13:34 +0000 (01:13 -0800)]
[AArch64][GlobalISel] Optimize conjunctions of compares to conditional compares.

This is a partial port of the same optimization from AArch64ISelLowering,
although the original handles more cases when generating regular compares
instead of this one which just does it when selecting G_SELECTs.

For more detailed comments see the original comments for
emitConditionalComparison() in AArch64ISelLowering.

Gives minor code size improvements.

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

2 years ago[AArch64][GlobalISel] Implement combines for boolean G_SELECT->bitwise ops.
Amara Emerson [Sun, 20 Feb 2022 08:53:09 +0000 (00:53 -0800)]
[AArch64][GlobalISel] Implement combines for boolean G_SELECT->bitwise ops.

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

2 years ago[HIP] Support linking archive of bundled bitcode
Yaxun (Sam) Liu [Thu, 17 Feb 2022 15:42:15 +0000 (10:42 -0500)]
[HIP] Support linking archive of bundled bitcode

HIP programs compiled with -c -fgpu-rdc generate clang-offload-bundler
bundles which contain bitcode for different GPU's.

Such files can be archived to an archive file which can be linked with
HIP programs with -fgpu-rdc.

This patch adds suppor of linking archive of bundled bitcode.

When an archive of bundled bitcode is passed to clang by -l, for each
GPU specified through --offload-arch, clang extracts bitcode from
the archive and creates a new archive for that GPU and pass it
to lld.

Reviewed by: Artem Belevich

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

Fixes: SWDEV-321741, SWDEV-315773

2 years ago[MLIR][Presburger] Introduce MaybeOptimum type to represent computed optima
Arjun P [Sat, 19 Feb 2022 20:06:14 +0000 (20:06 +0000)]
[MLIR][Presburger] Introduce MaybeOptimum type to represent computed optima

This allows to differentiate between the cases where the optimum does not
exist due to being unbounded and due to the polytope being empty.

Reviewed By: Groverkss

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

2 years ago[VectorCombine] Remove redundant checks (NFC).
Florian Hahn [Sat, 19 Feb 2022 21:05:32 +0000 (21:05 +0000)]
[VectorCombine] Remove redundant checks (NFC).

The removed conditions are already checked by the if above.

Fixes #53761.

2 years ago[mlir][bufferize] Add a way for ops to fail the analysis
Matthias Springer [Sat, 19 Feb 2022 20:49:33 +0000 (05:49 +0900)]
[mlir][bufferize] Add a way for ops to fail the analysis

Add `BufferizableOpInterface::verifyAnalysis`. Ops can implement this method to check for expected invariants and limitations.

The purpose of this change is to introduce a modular way of checking assertions such as `assertScfForAliasingProperties`.

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

2 years ago[SelectionDAGBuilder] Simplify visitShift. NFC
Craig Topper [Sat, 19 Feb 2022 20:03:28 +0000 (12:03 -0800)]
[SelectionDAGBuilder] Simplify visitShift. NFC

This code was detecting whether the value returned by getShiftAmountTy
can represent all shift amounts. If not, it would use MVT::i32 as a
placeholder. getShiftAmountTy was updated last year to return i32
if the type returned by the target couldn't represent all values.

This means the MVT::i32 case here is dead and can the logic can
be simplified.

Reviewed By: RKSimon

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

2 years ago[X86] vector-reduce-add-mask.ll - add missing AVX512BW/BWVL check prefixes
Simon Pilgrim [Sat, 19 Feb 2022 20:19:48 +0000 (20:19 +0000)]
[X86] vector-reduce-add-mask.ll - add missing AVX512BW/BWVL check prefixes

2 years ago[lldb] Fix some accidental IntervalMap copies
Benjamin Kramer [Sat, 19 Feb 2022 19:55:20 +0000 (20:55 +0100)]
[lldb] Fix some accidental IntervalMap copies

I made that type non-copyable in some cases in dc4f9f0368cd

2 years ago[GISel] Fix dead code warning in getRuleRangeForIdentifier emitted method. NFC.
Simon Pilgrim [Sat, 19 Feb 2022 19:43:53 +0000 (19:43 +0000)]
[GISel] Fix dead code warning in getRuleRangeForIdentifier emitted method. NFC.

Break the if-else chain as every block returns, and remove the return at the end of the function as the else block means this was never hit

2 years ago[X86] combineArithReduction - pull out repeated getVectorNumElements() calls
Simon Pilgrim [Fri, 18 Feb 2022 22:04:57 +0000 (22:04 +0000)]
[X86] combineArithReduction - pull out repeated getVectorNumElements() calls

2 years ago[ADT] Just use a union in IntervalMap
Benjamin Kramer [Sat, 19 Feb 2022 19:20:52 +0000 (20:20 +0100)]
[ADT] Just use a union in IntervalMap

IntervalMap has seen type-punned arrays, AlignedCharArrayUnion and
std::aligned_union_t, with varying degrees of buggyness. Plain unions
have become quite powerful, so just try that instead.

2 years ago[X86] Extend bswap+shl tests
Simon Pilgrim [Sat, 19 Feb 2022 19:16:56 +0000 (19:16 +0000)]
[X86] Extend bswap+shl tests

Different shift amounts and multiuse tests

2 years ago[X86] Add bswap(shl()) test
Simon Pilgrim [Sat, 19 Feb 2022 17:37:07 +0000 (17:37 +0000)]
[X86] Add bswap(shl()) test

Test based off issues #51391 and #53867 - we're going to end up needing InstCombine + DAG variants of this fold as DAG can create BSWAP nodes as part of load folding

2 years ago[X86] Add some add reduction tests for values that are zero in the upper bits
Simon Pilgrim [Sat, 19 Feb 2022 15:36:17 +0000 (15:36 +0000)]
[X86] Add some add reduction tests for values that are zero in the upper bits

This is an extension of some of the tests mentioned in Issue #42019 - we might be able to use PSADBW to add+zext 4 x bytes to i64 that can then be reduced

2 years ago[AArch64] Adds SUBS and ADDS instructions to the MIPeepholeOpt.
Micah Weston [Sat, 19 Feb 2022 15:35:53 +0000 (15:35 +0000)]
[AArch64] Adds SUBS and ADDS instructions to the MIPeepholeOpt.

Implements ADDS/SUBS 24-bit immediate optimization using the
MIPeepholeOpt pass. This follows the pattern:

Optimize ([adds|subs] r, imm) -> ([ADDS|SUBS] ([ADD|SUB] r, #imm0, lsl #12), #imm1),
if imm == (imm0<<12)+imm1. and both imm0 and imm1 are non-zero 12-bit unsigned
integers.

Optimize ([adds|subs] r, imm) -> ([SUBS|ADDS] ([SUB|ADD] r, #imm0, lsl #12), #imm1),
if imm == -(imm0<<12)-imm1, and both imm0 and imm1 are non-zero 12-bit unsigned
integers.

The SplitAndOpcFunc type had to change the return type to an Opcode pair so that
the first add/sub is the regular instruction and the second is the flag setting
instruction. This required updating the code in the AND case.

Testing:

I ran a two stage bootstrap with this code.
Using the second stage compiler, I verified that the negation of an ADDS to SUBS
or vice versa is a valid optimization. Example V == -0x111111.

Reviewed By: dmgreen

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

2 years ago[AArch64] Common patterns between UMULL and int_aarch64_neon_umull
David Green [Sat, 19 Feb 2022 14:38:57 +0000 (14:38 +0000)]
[AArch64] Common patterns between UMULL and int_aarch64_neon_umull

We have some duplicate patterns between the AArch64ISD::UMULL (/SMULL)
and the int_aarch64_neon_umull (/smull) intrinsics. They did not
replicate all the patterns though, leaving some gaps on instructions
like umlal2 from codegen. This commons all the patterns by converting
all int_aarch64_neon_umull intrinsics to UMULL nodes and removing the
duplicate for umull/smull intrinsics, so that all instructions go
through the same tablegen pattern.

This improves some of the longer-than-legal mla patterns, helping them
replace ext with umlal2.

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

2 years agoFix Wdocumentation missing code snippet warnings
Simon Pilgrim [Sat, 19 Feb 2022 13:17:10 +0000 (13:17 +0000)]
Fix Wdocumentation missing code snippet warnings

2 years agoFix Wdocumentation unknown parameter warning
Simon Pilgrim [Sat, 19 Feb 2022 13:06:09 +0000 (13:06 +0000)]
Fix Wdocumentation unknown parameter warning

2 years agoFix Wdocumentation unknown parameter warning
Simon Pilgrim [Sat, 19 Feb 2022 13:00:59 +0000 (13:00 +0000)]
Fix Wdocumentation unknown parameter warning

2 years ago[docs] HowToCrossCompileLLVM.rst: update cmake options
fourdim [Sat, 19 Feb 2022 12:36:31 +0000 (20:36 +0800)]
[docs] HowToCrossCompileLLVM.rst: update cmake options

This patch updates the cmake options suggested when cross compiling. This should fix [#52819](https://github.com/llvm/llvm-project/issues/52819).

Brad King (Member of CMake) says:

The linked [CMAKE_CROSSCOMPILING](https://cmake.org/cmake/help/v3.22/variable/CMAKE_CROSSCOMPILING.html) documentation says:

This variable will be set to true by CMake if the `CMAKE_SYSTEM_NAME` variable has been set manually (i.e. in a toolchain file or as a cache entry from the cmake command line).

It is not meant to be set by project code or toolchain files. It is always set automatically. Don't put `set(CMAKE_CROSSCOMPILING ON)` anywhere in your code.

`CMAKE_CROSSCOMPILING` indicates only whether `CMAKE_SYSTEM_NAME` was set by the user/project/toolchain-file instead of by CMake.

In LLVM project, `CMAKE_CROSSCOMPILING` is used to determine whether to execute some tests on the host machine.

LLVM needs to use another method for that. `CMAKE_CROSSCOMPILING` is not a reliable indicator of whether produced binaries will run on the host, and does not claim so in its documentation. If one sets `CMAKE_SYSTEM_NAME` to Linux in a toolchain file, and builds on a Linux host, that doesn't mean the target architecture or minimum glibc version is the same.

Reviewed By: rengolin

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

2 years ago[CodeGen] Make ShapeT::operator== const. NFC.
Benjamin Kramer [Sat, 19 Feb 2022 12:23:27 +0000 (13:23 +0100)]
[CodeGen] Make ShapeT::operator== const. NFC.

Otherwise it becomes asymmetric in the types it accepts.

2 years ago[RISCV][NFC] Remove unused multiclass def.
Zakk Chen [Sat, 19 Feb 2022 06:26:01 +0000 (22:26 -0800)]
[RISCV][NFC] Remove unused multiclass def.

2 years ago[RISCV] Add IsRV32 to the isel pattern for ZIP_RV32/UNZIP_RV32. NFC
Craig Topper [Sat, 19 Feb 2022 06:38:13 +0000 (22:38 -0800)]
[RISCV] Add IsRV32 to the isel pattern for ZIP_RV32/UNZIP_RV32. NFC

I think the i32 in the pattern prevents this from matching on RV64,
but using IsRV32 is safer.

Add tests for RV64 to make sure we don't print zip or unzip
because we incorrectly picked ZIP_RV32/UNZIP_RV32.

2 years ago[SelectionDAG][X86] Support f16 in getReciprocalOpName.
Craig Topper [Sat, 19 Feb 2022 05:55:48 +0000 (21:55 -0800)]
[SelectionDAG][X86] Support f16 in getReciprocalOpName.

If the "reciprocal-estimates" attribute is present and it doesn't
contain "all", "none", or "default", we previously crashed on f16
operations.

This patch addes an 'h' suffix' to prevent the crash.

I've added simple tests that just enable the estimate for all
vec-sqrt and one test case that explicitly tests the new 'h' suffix
to override the default steps.

There may be some frontend change needed to, but I haven't checked
that yet.

Reviewed By: pengfei

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

2 years ago[mlir][OpenMP] Added assemblyFormat for ParallelOp
Shraiysh Vaishay [Sat, 19 Feb 2022 04:30:03 +0000 (10:00 +0530)]
[mlir][OpenMP] Added assemblyFormat for ParallelOp

This patch adds assemblyFormat for omp.parallel operation.

Some existing functions have been altered to fit the custom directive
in assemblyFormat. This has led to their callsites to get modified too,
but those will be removed in later patches, when other operations get
their assemblyFormat. All operations were not changed in one patch for
ease of review.

Reviewed By: Mogball

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

2 years ago[instcombine] Add/cleanup attributes in a test
Philip Reames [Sat, 19 Feb 2022 03:01:55 +0000 (19:01 -0800)]
[instcombine] Add/cleanup attributes in a test

2 years ago[instcombine] Cleanup foldAllocaCmp slightly [NFC]
Philip Reames [Sat, 19 Feb 2022 02:49:24 +0000 (18:49 -0800)]
[instcombine] Cleanup foldAllocaCmp slightly [NFC]

2 years ago[SelectionDAG] Fix off by one error in range check in DAGTypeLegalizer::ExpandShiftBy...
Craig Topper [Sat, 19 Feb 2022 01:05:38 +0000 (17:05 -0800)]
[SelectionDAG] Fix off by one error in range check in DAGTypeLegalizer::ExpandShiftByConstant.

The code was considering shifts by an about larger than the number of
bits in the original VT to be out of range. Shifts exactly equal to
the original bit width are also out of range.

I don't know how to test this. DAGCombiner should usually fold this
away. I just noticed while looking for something else in this code. The
llvm-cov report shows that we don't have coverage for out of range shifts here.

Reviewed By: arsenm

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

2 years ago[LoongArch] Fix atomic instructions operands sequence
Weining Lu [Sat, 19 Feb 2022 01:21:02 +0000 (09:21 +0800)]
[LoongArch] Fix atomic instructions operands sequence

According to https://loongson.github.io/LoongArch-Documentation/LoongArch-Vol1-EN.html#atomic-memory-access-instructions,
the operands sequence of am* instructions should be "rd, rk, rj"
but not "rd, rj, rk". Sorry for this typo in initial patches.

Reviewed By: xen0n, MaskRay

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

2 years ago[gwp_asan] Add missing <algorithm> include
Gulfem Savrun Yeniceri [Sat, 19 Feb 2022 01:05:38 +0000 (01:05 +0000)]
[gwp_asan] Add missing <algorithm> include

After https://reviews.llvm.org/D119667, <algorithm> is no longer
transitively included from various headers. This patch adds the
<algorithm> include into gwp_asan.

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

2 years ago[scudo] Add missing <algorithm> include
Gulfem Savrun Yeniceri [Sat, 19 Feb 2022 00:59:23 +0000 (00:59 +0000)]
[scudo] Add missing <algorithm> include

After https://reviews.llvm.org/D119667, <algorithm> is no longer
transitively included from various headers. This patch adds the
<algorithm> include into scudo.

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

2 years ago[lld][WebAssembly] Convert a bunch more tests to asm. NFC
Sam Clegg [Thu, 17 Feb 2022 15:06:50 +0000 (07:06 -0800)]
[lld][WebAssembly] Convert a bunch more tests to asm. NFC

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

2 years agoRevert "[SelectionDAG][X86] Support f16 in getReciprocalOpName."
Craig Topper [Fri, 18 Feb 2022 23:39:50 +0000 (15:39 -0800)]
Revert "[SelectionDAG][X86] Support f16 in getReciprocalOpName."

This reverts commit 86b5e256628ae49193ad9962626a73bafeda2883.

This wasn't supposed to be commited yet

2 years ago[SelectionDAGBuilder] Remove LegalTypes=false from a call to getShiftAmountConstant.
Craig Topper [Fri, 18 Feb 2022 23:27:38 +0000 (15:27 -0800)]
[SelectionDAGBuilder] Remove LegalTypes=false from a call to getShiftAmountConstant.

getShiftAmountTy will return MVT::i32 if the shift amount
coming from the target's getScalarShiftAmountTy can't reprsent
all possible values. That should eliminate the need to use the
pointer type which is what we do when LegalTypes is false.

Reviewed By: arsenm

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

2 years ago[SelectionDAG][X86] Support f16 in getReciprocalOpName.
Craig Topper [Fri, 18 Feb 2022 21:06:54 +0000 (13:06 -0800)]
[SelectionDAG][X86] Support f16 in getReciprocalOpName.

If the "reciprocal-estimates" attribute is present and it doesn't
contain "all", "none", or "default", we previously crashed on f16
operations.

This patch addes an 'h' suffix' to prevent the crash.

I've added simple tests that just enable the estimate for all
vec-sqrt and one test case that explicitly tests the new 'h' suffix
to override the default steps.

There may be some frontend change needed to, but I haven't checked
that yet.

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

2 years agoRevert "[instsimplify] Simplify HaveNonOverlappingStorage per review suggestion on...
Philip Reames [Fri, 18 Feb 2022 23:34:56 +0000 (15:34 -0800)]
Revert "[instsimplify] Simplify HaveNonOverlappingStorage per review suggestion on D120133 [NFC]"

This reverts commit 3a6be124cc01191ec52192017791bb04a6c7295a.  This appears to have caused a stage2 build failure: https://lab.llvm.org/buildbot/#/builders/168/builds/4813

Will investigate further on Monday and recommit.

2 years ago[mlir][sparse][pytaco] test with 3-dim tensor and scalar
Aart Bik [Fri, 18 Feb 2022 21:43:56 +0000 (13:43 -0800)]
[mlir][sparse][pytaco] test with 3-dim tensor and scalar

Reviewed By: bixia

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

2 years ago[ELF] Remove .strtab deduplication
Fangrui Song [Fri, 18 Feb 2022 22:54:10 +0000 (14:54 -0800)]
[ELF] Remove .strtab deduplication

D118577: the 0.1~1.1% .strtab size reduction does not justify the 3~6%
link time increase. Just remove it even for -O2. release/14.x
has D118577 and the release note mentioned that this may be removed.

Fix https://github.com/ClangBuiltLinux/linux/issues/1578
caused by D118577 (empty string not in stringMap).

2 years ago[lldb/bindings] Expose the progress reporting machinery to the SWIG interface
Med Ismail Bennani [Fri, 18 Feb 2022 22:11:29 +0000 (14:11 -0800)]
[lldb/bindings] Expose the progress reporting machinery to the SWIG interface

This patch defines the SBDebugger::eBroadcastBitProgress enum in the SWIG
interface and exposes the SBDebugger::{GetProgressFromEvent,GetBroadcaster}
methods as well.

This allows to exercise the API from the script interpreter using python.

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

Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>