platform/upstream/llvm.git
3 years ago[clang][Analyzer] Track null stream argument in alpha.unix.Stream .
Balázs Kéri [Tue, 22 Jun 2021 08:25:55 +0000 (10:25 +0200)]
[clang][Analyzer] Track null stream argument in alpha.unix.Stream .

The checker contains check for passing a NULL stream argument.
This change should make more easy to identify where the passed pointer
becomes NULL.

Reviewed By: NoQ

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

3 years ago[mlir][NFC] Move SubTensorOp and SubTensorInsertOp to TensorDialect
Matthias Springer [Tue, 22 Jun 2021 07:49:08 +0000 (16:49 +0900)]
[mlir][NFC] Move SubTensorOp and SubTensorInsertOp to TensorDialect

The main goal of this commit is to remove the dependency of Standard dialect on the Tensor dialect.

* Rename SubTensorOp -> tensor.extract_slice, SubTensorInsertOp -> tensor.insert_slice.
* Some helper functions are (already) duplicated between the Tensor dialect and the MemRef dialect. To keep this commit smaller, this will be cleaned up in a separate commit.
* Additional dialect dependencies: Shape --> Tensor, Tensor --> Standard
* Remove dialect dependencies: Standard --> Tensor
* Move canonicalization test cases to correct dialect (Tensor/MemRef).

Note: This is a fixed version of https://reviews.llvm.org/D104499, which was reverted due to a missing update to two CMakeFile.txt.

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

3 years ago[Utils][vim] Add missing highlights for fast-math flags
Fraser Cormack [Fri, 18 Jun 2021 15:30:19 +0000 (16:30 +0100)]
[Utils][vim] Add missing highlights for fast-math flags

This patch adds the `afn`, `contract`, and `reassoc` fast-math flags.

It also fixes up `fneg`'s order in the alphabetized list.

Reviewed By: MaskRay, craig.topper

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

3 years ago[GlobalISel] Add scalable property to LLT types.
Sander de Smalen [Tue, 22 Jun 2021 07:05:55 +0000 (08:05 +0100)]
[GlobalISel] Add scalable property to LLT types.

This patch aims to add the scalable property to LLT. The rest of the
patch-series changes the interfaces to take/return ElementCount and
TypeSize, which both have the ability to represent the scalable property.

The changes are mostly mechanical and aim to be non-functional changes
for fixed-width vectors.

For scalable vectors some unit tests have been added, but no effort has
been put into making any of the GlobalISel algorithms work with scalable
vectors yet. That will be left as future work.

The work is split into a series of 5 patches to make reviews easier.

Reviewed By: arsenm

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

3 years ago[NewPM] Print passes with params when using "opt -print-passes"
Bjorn Pettersson [Mon, 21 Jun 2021 09:22:14 +0000 (11:22 +0200)]
[NewPM] Print passes with params when using "opt -print-passes"

Make sure we also print passes with params when using "opt -print-passes".

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

3 years ago[llvm-objcopy] Internalize some symbols
Fangrui Song [Tue, 22 Jun 2021 06:49:25 +0000 (23:49 -0700)]
[llvm-objcopy] Internalize some symbols

3 years ago[mlir][linalg] Adapt FillOp to use a scalar operand.
Tobias Gysi [Tue, 22 Jun 2021 06:27:28 +0000 (06:27 +0000)]
[mlir][linalg] Adapt FillOp to use a scalar operand.

Adapt the FillOp definition to use a scalar operand instead of a capture. This patch is a follow up to https://reviews.llvm.org/D104109. As the input operands are in front of the output operands the patch changes the internal operand order of the FillOp. The pretty printed version of the operation remains unchanged though. The patch also adapts the linalg to standard lowering to ensure the c signature of the FillOp remains unchanged as well.

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

3 years ago[llvm-objcopy] Delete empty namespace. NFC
Fangrui Song [Tue, 22 Jun 2021 06:44:07 +0000 (23:44 -0700)]
[llvm-objcopy] Delete empty namespace. NFC

3 years agoRe-land "[LoopDeletion] Handle Phis with similar inputs from different blocks"
Max Kazantsev [Tue, 22 Jun 2021 05:21:38 +0000 (12:21 +0700)]
Re-land "[LoopDeletion] Handle Phis with similar inputs from different blocks"

Patch was reverted due to a bug that existed before it and was exposed
by it. Returning after the underlying bug has been fixed.

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

3 years ago[LoopDeletion] Require loop to have a predecessor when executing 1st iteration symbol...
Max Kazantsev [Tue, 22 Jun 2021 05:10:58 +0000 (12:10 +0700)]
[LoopDeletion] Require loop to have a predecessor when executing 1st iteration symbolically

Two predecessors break the further logic, and the loop may come to the
opt in non-canonicalized state.

3 years ago[WebAssembly] Make tag attribute's encoding uint8
Heejin Ahn [Fri, 18 Jun 2021 21:41:01 +0000 (14:41 -0700)]
[WebAssembly] Make tag attribute's encoding uint8

This changes the encoding of the `attribute` field, which currently only
contains the value `0` denoting this tag is for an exception, from
`varuint32` to `uint8`. This field is effectively unused at the moment
and reserved for future use, and it is not likely to need `varuint32`
even in future.
See https://github.com/WebAssembly/exception-handling/pull/162.

This does not change any encoded binaries because `0` is encoded in the
same way both in `varuint32` and `uint8`.

Reviewed By: tlively

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

3 years agoRetry of [lldb-vscode] only report long running progress events
Walter Erquinigo [Fri, 30 Apr 2021 04:27:12 +0000 (21:27 -0700)]
Retry of [lldb-vscode] only report long running progress events

This time adding a check that should prevent the crash found in
https://lab.llvm.org/buildbot/#/builders/68/builds/14182/steps/6/logs/stdio

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

3 years ago[mlir][linalg] Fusion of PadTensorOp
Matthias Springer [Tue, 22 Jun 2021 02:37:37 +0000 (11:37 +0900)]
[mlir][linalg] Fusion of PadTensorOp

Note: This commit (and previous ones) implements the same functionality as https://reviews.llvm.org/D103243 (which is abandoned).

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

3 years agoRevert "[lldb-vscode] only report long running progress events"
Walter Erquinigo [Tue, 22 Jun 2021 02:42:34 +0000 (19:42 -0700)]
Revert "[lldb-vscode] only report long running progress events"

This reverts commit 610d474cfd82f11dc4702e2cf1b2485584d7c243.

lldb-vscode is crashing.

3 years ago[lldb-vscode] Add simple DAP logs dump to investigate flakiness in tests
Walter Erquinigo [Tue, 22 Jun 2021 02:33:56 +0000 (19:33 -0700)]
[lldb-vscode] Add simple DAP logs dump to investigate flakiness in tests

A few times tests have been flaky, presumably by crashed of lldb-vscode
itself. They can be caught by looking at the DAP logs, so I'm dumping
them when the session ends.

3 years ago[lldb-vscode] only report long running progress events
Walter Erquinigo [Fri, 30 Apr 2021 04:27:12 +0000 (21:27 -0700)]
[lldb-vscode] only report long running progress events

When the number of shared libs is massive, there could be hundreds of
thousands of short lived progress events sent to the IDE, which makes it
irresponsive while it's processing all this data. As these small jobs
take less than a second to process, the user doesn't even see them,
because the IDE only display the progress of long operations. So it's
better not to send these events.

I'm fixing that by sending only the events that are taking longer than 5
seconds to process.
In a specific run, I got the number of events from ~500k to 100, because
there was only 1 big lib to parse.

I've tried this on several small and massive targets, and it seems to
work fine.

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

3 years agoRename MachineMemOperand::getOrdering -> getSuccessOrdering.
Eli Friedman [Mon, 21 Jun 2021 23:34:02 +0000 (16:34 -0700)]
Rename MachineMemOperand::getOrdering -> getSuccessOrdering.

Since this method can apply to cmpxchg operations, make sure it's clear
what value we're actually retrieving.  This will help ensure we don't
accidentally ignore the failure ordering of cmpxchg in the future.

We could potentially introduce a getOrdering() method on AtomicSDNode
that asserts the operation isn't cmpxchg, but not sure that's
worthwhile.

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

3 years ago[NFC] Add getUnderlyingObjects test
Vitaly Buka [Sat, 19 Jun 2021 01:34:07 +0000 (18:34 -0700)]
[NFC] Add getUnderlyingObjects test

Reviewed By: lebedev.ri

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

3 years ago[ScalarEvolution] Ensure backedge-taken counts are not pointers.
Eli Friedman [Mon, 21 Jun 2021 23:24:16 +0000 (16:24 -0700)]
[ScalarEvolution] Ensure backedge-taken counts are not pointers.

A backedge-taken count doesn't refer to memory; returning a pointer type
is nonsense. So make sure we always return an integer.

The obvious way to do this would be to just convert the operands of the
icmp to integers, but that doesn't quite work out at the moment:
isLoopEntryGuardedByCond currently gets confused by ptrtoint operations.
So we perform the ptrtoint conversion late for lt/gt operations.

The test changes are mostly innocuous. The most interesting changes are
more complex SCEV expressions of the form "(-1 * (ptrtoint i8* %ptr to
i64)) + %ptr)". This is expected: we can't fold this to zero because we
need to preserve the pointer base.

The call to isLoopEntryGuardedByCond in howFarToZero is less precise
because of ptrtoint operations; this shows up in the function
pr46786_c26_char in ptrtoint.ll. Fixing it here would require more
complex refactoring.  It should eventually be fixed by future
improvements to isImpliedCond.

See https://bugs.llvm.org/show_bug.cgi?id=46786 for context.

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

3 years ago[mlir][tosa] Enable tosa.div for TosaMakeBroadcastable
Rob Suderman [Mon, 21 Jun 2021 23:09:04 +0000 (16:09 -0700)]
[mlir][tosa] Enable tosa.div for TosaMakeBroadcastable

TosaMakeBroadcastable needs to include tosa.div, which was added later in the
specification.

Reviewed By: sjarus, NatashaKnk

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

3 years agoClarify the "env" launch configuration setting.
Greg Clayton [Fri, 18 Jun 2021 23:19:04 +0000 (16:19 -0700)]
Clarify the "env" launch configuration setting.

A few users recently were trying to set environment values when using lldb-vscode and were unsure of the format of the "env" launch configuration setting. Clarify the exact format as when users add the "env" launch config setting, they can see this help string in the IDE.

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

3 years ago[IR] convert warn-stack-size from module flag to fn attr
Nick Desaulniers [Mon, 21 Jun 2021 22:09:23 +0000 (15:09 -0700)]
[IR] convert warn-stack-size from module flag to fn attr

Otherwise, this causes issues when building with LTO for object files
that use different values.

Link: https://github.com/ClangBuiltLinux/linux/issues/1395
Reviewed By: dblaikie, MaskRay

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

3 years ago[DFSan][NFC] Refactor Origin Address Alignment code.
Andrew Browne [Fri, 18 Jun 2021 19:21:29 +0000 (12:21 -0700)]
[DFSan][NFC] Refactor Origin Address Alignment code.

Reviewed By: stephan.yichao.zhao

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

3 years ago[SampleFDO] Make FSDiscriminator flag part of function parameters
Rong Xu [Mon, 21 Jun 2021 21:11:31 +0000 (14:11 -0700)]
[SampleFDO] Make FSDiscriminator flag part of function parameters

Add a parameter of IsFSDiscriminator to function
getBaseDiscriminatorFromDiscriminator().

This function currently checks the internal flag of
--enable-fs-discriminator. This is not good because we might
change the default value of the internal flag.

Note that we have a default parameter. This is just
because create_afdo_tool has a call-site to it.
I will remove the default parameter in a later patch.

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

3 years ago[ARM] Make sure we don't transform unaligned store to stm on Thumb1.
Eli Friedman [Mon, 21 Jun 2021 21:24:31 +0000 (14:24 -0700)]
[ARM] Make sure we don't transform unaligned store to stm on Thumb1.

This isn't likely to come up in practice; the combination of compiler
flags required to hit this issue should be rare. Found by inspection.

3 years ago[AArch64][X86] Allow 64-bit label differences lower to IMAGE_REL_*_REL32
Fangrui Song [Mon, 21 Jun 2021 21:32:25 +0000 (14:32 -0700)]
[AArch64][X86] Allow 64-bit label differences lower to IMAGE_REL_*_REL32

`IMAGE_REL_ARM64_REL64/IMAGE_REL_AMD64_REL64` do not exist and `.quad a - .` is
currently not representable.

For instrumentation, `.quad a - .` is useful representing a cross-section
reference in a metadata section, to allow ELF medium/large code models. The COFF
limitation makes such generic instrumentations inconvenient. I plan to make a
PGO/coverage metadata section field relative in D104556.

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

3 years ago[DAGCombine] reassoc flag shouldn't enable contract
Jinsong Ji [Mon, 21 Jun 2021 19:25:40 +0000 (19:25 +0000)]
[DAGCombine] reassoc flag shouldn't enable contract

According to IR LangRef, the FMF flag:

contract
Allow floating-point contraction (e.g. fusing a multiply followed by an
addition into a fused multiply-and-add).

reassoc
Allow reassociation transformations for floating-point instructions.
This may dramatically change results in floating-point.

My understanding is that these two flags shouldn't imply each other,
as we might have a SDNode that can be reassociated with others, but
not contractble.

eg: We may want following fmul/fad/fsub to freely reassoc, but don't
want fma being generated here.

   %F = fmul reassoc double %A, %B         ; <double> [#uses=1]
   %G = fmul reassoc double %C, %D         ; <double> [#uses=1]
   %H = fadd reassoc double %F, %G         ; <double> [#uses=1]
   %I = fsub reassoc double %H, %E         ; <double> [#uses=1]

Before https://reviews.llvm.org/D45710, `reassoc` flag actually
did not imply isContratable either.

The current implementation also only check the flag in fadd node,
ignoring fmul node, this patch update that as well.

Reviewed By: spatel, qiucf

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

3 years ago[UpdateCCTestChecks] Fix --replace-value-regex across RUN lines
Joel E. Denny [Mon, 21 Jun 2021 19:53:57 +0000 (15:53 -0400)]
[UpdateCCTestChecks] Fix --replace-value-regex across RUN lines

Without this patch, llvm/utils/update_cc_test_checks.py fails to
perform `--replace-value-regex` replacements when two RUN lines
produce the same output and use the same single FileCheck prefix.  The
problem is that replacements in a RUN line's output are not performed
until after comparing against previous RUN lines' output, where
replacements have already been performed.  This patch fixes that.

Reviewed By: MaskRay

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

3 years ago[NFC][SimplifyCFG] Add basic test for debuginfo preservation of `ret` tail merging
Roman Lebedev [Mon, 21 Jun 2021 20:56:25 +0000 (23:56 +0300)]
[NFC][SimplifyCFG] Add basic test for debuginfo preservation of `ret` tail merging

3 years ago[NFC][SimplifyCFG] Fix tests to use FileCheck instead of grep
Roman Lebedev [Mon, 21 Jun 2021 20:53:34 +0000 (23:53 +0300)]
[NFC][SimplifyCFG] Fix tests to use FileCheck instead of grep

3 years ago[SLP][NFC]Rename functions in the tests, NFC.
Alexey Bataev [Mon, 21 Jun 2021 20:37:12 +0000 (13:37 -0700)]
[SLP][NFC]Rename functions in the tests, NFC.

3 years agoRevert "[SYCL][NFC] Ensure SYCL kernel for unique-stable-name is unqualified."
Erich Keane [Mon, 21 Jun 2021 20:23:05 +0000 (13:23 -0700)]
Revert "[SYCL][NFC] Ensure SYCL kernel for unique-stable-name is unqualified."

This reverts commit 5013131875402539a249dca47c58cca7c359baf8.

This patch didn't end up being the solution to the problem.  It "fixed"
our issue but the actual correct solution is something else.  Reverting
as this ends up being unnecessary/extra noise.

3 years ago[libc++] NFC: Fix outdated comment about secrets.env
Louis Dionne [Mon, 21 Jun 2021 20:21:39 +0000 (16:21 -0400)]
[libc++] NFC: Fix outdated comment about secrets.env

That file (secrets.env) has now been removed, so the comment was
referencing something that didn't exist anymore.

3 years agoReapply [InstCombine] Don't try converting opaque pointer bitcast to GEP
Nikita Popov [Mon, 21 Jun 2021 18:35:30 +0000 (20:35 +0200)]
Reapply [InstCombine] Don't try converting opaque pointer bitcast to GEP

Reapplied without changes -- this was reverted together with an
underlying patch.

-----

Bitcasts having opaque pointer source or result type cannot be
converted into a zero-index GEP, GEP source and result types
always have the same opaque-ness.

3 years agoCreate install targets for scan-build-py.
Daniel Hwang [Mon, 21 Jun 2021 20:01:42 +0000 (13:01 -0700)]
Create install targets for scan-build-py.

A new revision identical to https://reviews.llvm.org/D101139
The parent revision of aforementioned revision seems to cause pre-merge checks to fail opaquely. Seeing if creating a new revision will work.

Reviewed By: phosek

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

3 years agoReapply [InstCombine] Extract bitcast -> gep transform
Nikita Popov [Mon, 21 Jun 2021 18:22:06 +0000 (20:22 +0200)]
Reapply [InstCombine] Extract bitcast -> gep transform

Relative to the original patch, an InstCombine test has been
added to show a previously missed pattern, and the Coroutine
test that resulted in the revert has been regenerated.

-----

Move this into a separate function, to make sure that early
returns do not accidentally skip other transforms. This previously
happened for the isSized() check, which skipped folds like
distributing a bitcast over a select.

3 years ago[InstCombine] Add test for bitcast of unsized pointer (NFC)
Nikita Popov [Mon, 21 Jun 2021 19:58:06 +0000 (21:58 +0200)]
[InstCombine] Add test for bitcast of unsized pointer (NFC)

The bitcast should get folded into the select, but currently isn't
due to an incorrect early bailout.

3 years agoAdd polynomial approximation for trigonometric sine and cosine functions
Ahmed S. Taei [Mon, 21 Jun 2021 19:46:27 +0000 (12:46 -0700)]
Add polynomial approximation for trigonometric sine and cosine functions

The approximation relays on range reduced version y \in [0, pi/2]. An input x will have
the property that sin(x) = sin(y), -sin(y), cos(y), -cos(y) depends on which quadrable x
is in, where sin(y) and cos(y) are approximated with 5th degree polynomial (of x^2).
As a result a single pattern can be used to compute approximation for both sine and cosine.

Reviewed By: ezhulenev

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

3 years ago[mlir][vector] Support distributing transfer op with permutation map
thomasraoux [Mon, 14 Jun 2021 20:25:18 +0000 (13:25 -0700)]
[mlir][vector] Support distributing transfer op with permutation map

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

3 years ago[RISCV] Remove extra character from a comment. NFC
Craig Topper [Mon, 21 Jun 2021 19:42:21 +0000 (12:42 -0700)]
[RISCV] Remove extra character from a comment. NFC

3 years ago[SYCL][NFC] Ensure SYCL kernel for unique-stable-name is unqualified.
Erich Keane [Mon, 21 Jun 2021 19:50:02 +0000 (12:50 -0700)]
[SYCL][NFC] Ensure SYCL kernel for unique-stable-name is unqualified.

Discovered in our downstream, this function that is used to get the type
of the kernel parameter type needs to be unqualified, otherwise when our
downstream uses this function in a slightly different way, the kernel
types no longer match.

3 years ago[llvm-reduce] Don't delete arguments of intrinsics
Langston Barrett [Mon, 21 Jun 2021 19:34:10 +0000 (12:34 -0700)]
[llvm-reduce] Don't delete arguments of intrinsics

The argument reduction pass shouldn't remove arguments of
intrinsics, because the resulting module is ill-formed, and so
inherently uninteresting.

Reviewed By: aeubanks

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

3 years ago[libcxx][ranges] Add `indirectly_movable` and `indirectly_movable_storable`.
zoecarver [Mon, 17 May 2021 17:30:12 +0000 (10:30 -0700)]
[libcxx][ranges] Add `indirectly_movable` and `indirectly_movable_storable`.

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

3 years agoRevert "[InstCombine] Extract bitcast -> gep transform"
Nikita Popov [Mon, 21 Jun 2021 19:31:42 +0000 (21:31 +0200)]
Revert "[InstCombine] Extract bitcast -> gep transform"

This reverts commit d9f5d7b959de36085944d4a99a73f3053f953796.
This reverts commit 5780611d7e044ef56c4214df2c236ef5e15545ab.

This causes a failure in Coroutine tests.

3 years ago[LoopUnroll] Don't modify TripCount/TripMultiple in computeUnrollCount() (NFCI)
Nikita Popov [Sat, 19 Jun 2021 08:09:12 +0000 (10:09 +0200)]
[LoopUnroll] Don't modify TripCount/TripMultiple in computeUnrollCount() (NFCI)

As these are no longer passed to UnrollLoop(), there is no need to
modify them in computeUnrollCount(). Make them non-reference parameters.

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

3 years ago[SLP]Improve vectorization of PHI instructions.
Alexey Bataev [Wed, 26 May 2021 18:56:22 +0000 (11:56 -0700)]
[SLP]Improve vectorization of PHI instructions.

Perform better analysis when trying to vectorize PHIs.
1. Do not try to vectorize vector PHIs.
2. Do deeper analysis for more profitable nodes for the vectorization.

Before we just tried to vectorize the PHIs of the same type. Patch
improves this and tries to vectorize PHIs with incoming values which
come from the same basic block, have the same and/or alternative
opcodes.

It allows to save the compile time and provides better vectorization
results in general.

Part of D57059.

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

3 years ago[InstCombine] Don't try converting opaque pointer bitcast to GEP
Nikita Popov [Mon, 21 Jun 2021 18:35:30 +0000 (20:35 +0200)]
[InstCombine] Don't try converting opaque pointer bitcast to GEP

Bitcasts having opaque pointer source or result type cannot be
converted into a zero-index GEP, GEP source and result types
always have the same opaque-ness.

3 years ago[InstCombine] Extract bitcast -> gep transform
Nikita Popov [Mon, 21 Jun 2021 18:22:06 +0000 (20:22 +0200)]
[InstCombine] Extract bitcast -> gep transform

Move this into a separate function, to make sure that early
returns do not accidentally skip other transforms. There is
already one isSized() check that could run into this issue,
thus this change is not strictly NFC.

3 years ago[llvm-profdata] Allow omission of -o for --text output
Fangrui Song [Mon, 21 Jun 2021 19:01:57 +0000 (12:01 -0700)]
[llvm-profdata] Allow omission of -o for --text output

This makes it more convenient to get a text format profile.

Add an error for printing non-text format output to a terminal for instrumentation profile.
(It cannot be portably tested. For sample profile, raw_fd_ostream is hidden deeply so it's inconvenient to add a diagnostic.)

Reviewed By: davidxl

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

3 years ago[SystemZ] Fix some typos in comments.
Jonas Paulsson [Mon, 21 Jun 2021 18:49:08 +0000 (13:49 -0500)]
[SystemZ]  Fix some typos in comments.

3 years ago[Clang][Codegen] rename no_profile fn attr no_profile_instrument_function
Nick Desaulniers [Mon, 21 Jun 2021 18:34:23 +0000 (11:34 -0700)]
[Clang][Codegen] rename no_profile fn attr no_profile_instrument_function

GCC has had this function attribute since GCC 7.1 for this purpose. I
added "no_profile" last week in D104475; rename this to
"no_profile_instrument_function" to improve compatibility with GCC.

Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80223#c11
Reviewed By: MaskRay, aaron.ballman

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

3 years ago[RISCV] Add isel patterns to match vmacc/vmadd/vnmsub/vnmsac from add/sub and mul.
Craig Topper [Mon, 21 Jun 2021 17:50:28 +0000 (10:50 -0700)]
[RISCV] Add isel patterns to match vmacc/vmadd/vnmsub/vnmsac from add/sub and mul.

Reviewed By: frasercrmck

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

3 years ago[InstCombine] Remove unnecessary addres space check (NFC)
Nikita Popov [Mon, 21 Jun 2021 18:11:39 +0000 (20:11 +0200)]
[InstCombine] Remove unnecessary addres space check (NFC)

It's not possible to bitcast between different address spaces,
and this is ensured by the IR verifier. As such, this bitcast to
addrspacecast canonicalization can never be hit.

3 years ago[OpaquePtr] Support opaque constant expression GEP
Nikita Popov [Mon, 21 Jun 2021 16:33:29 +0000 (18:33 +0200)]
[OpaquePtr] Support opaque constant expression GEP

Adjust assertions to use isOpaqueOrPointeeTypeMatches() and make
it return an opaque pointer result for an opaque base pointer. We
also need to enumerate the element type, as it is no longer
implicitly enumerated through the pointer type.

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

3 years agoSplit a test for ease of auto update
Philip Reames [Mon, 21 Jun 2021 18:02:17 +0000 (11:02 -0700)]
Split a test for ease of auto update

3 years agoRevert "[lldb-vscode] attempt to fix flakiness"
Walter Erquinigo [Mon, 21 Jun 2021 17:53:31 +0000 (10:53 -0700)]
Revert "[lldb-vscode] attempt to fix flakiness"
Revert "[lldb-vscode] only report long running progress events"

This reverts commit f2c009dbcfd11fd1e8941513dcf49fffe43565a1.
This reverts commit aa4685c0fb3aab5acb90be5fd3eb5ba8bf1e3211.

3 years ago[lldb] Add support for escaping zsh arguments
Raphael Isemann [Mon, 21 Jun 2021 16:21:19 +0000 (18:21 +0200)]
[lldb] Add support for escaping zsh arguments

LLDB supports having globbing regexes in the process launch arguments that will
be resolved using the user's shell. This requires that we pass the launch args
to the shell and then read back the expanded arguments using LLDB's argdumper
utility.

As the shell will not just expand the globbing regexes but all special
characters, we need to escape all non-globbing charcters such as $, &, <, >,
etc. as those otherwise are interpreted and removed in the step where we expand
the globbing characters. Also because the special characters are shell-specific,
LLDB needs to maintain a list of all the characters that need to be escaped for
each specific shell.

This patch adds the list of special characters that need to be escaped for
`zsh`. Without this patch on systems where `zsh` is the user's shell (like on
all macOS systems) having any of these special characters in your arguments or
path to the binary will cause the process launch to fail. E.g., `lldb -- ./calc
1<2` is failing without this patch. The same happens if the absolute path to
`calc` is in a directory that contains for example parentheses or other special
characters.

Reviewed By: JDevlieghere

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

3 years ago[lldb] Skip TestLimitDebugInfo for Clang<7
Raphael Isemann [Mon, 21 Jun 2021 17:38:01 +0000 (19:38 +0200)]
[lldb] Skip TestLimitDebugInfo for Clang<7

Without DW_CC_pass_by_* attributes that Clang 7 started to emit in this test
we don't properly read back the return value of the `get_*` functions and just
read bogus memory.

See also the TestReturnValue.py test.

3 years agoRemove ML inlining model artifacts.
Jacob Hegna [Mon, 14 Jun 2021 18:30:10 +0000 (18:30 +0000)]
Remove ML inlining model artifacts.

They are not conducive to being stored in git. Instead, we autogenerate
mock model artifacts for use in tests. Production models can be
specified with the cmake flag LLVM_INLINER_MODEL_PATH.

LLVM_INLINER_MODEL_PATH has two sentinel values:
 - download, which will download the most recent compatible model.
 - autogenerate, which will autogenerate a "fake" model for testing the
 model uptake infrastructure.

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

3 years agoRevert "[LoopDeletion] Handle Phis with similar inputs from different blocks"
Nathan Chancellor [Mon, 21 Jun 2021 17:18:55 +0000 (10:18 -0700)]
Revert "[LoopDeletion] Handle Phis with similar inputs from different blocks"

This reverts commit bb1dc876ebb8a2eef38d5183d00c2db1437f1c91.

This patch causes an assertion failure when building an arm64 defconfig
Linux kernel.

See https://reviews.llvm.org/D103959 for a link to the original bug
report and a reduced reproducer.

3 years ago[flang] Fold more reduction intrinsic function calls
peter klausler [Fri, 18 Jun 2021 18:24:32 +0000 (11:24 -0700)]
[flang] Fold more reduction intrinsic function calls

Refactor the recently-implemented MAXVAL/MINVAL folding so
that the parts that can be used to implement other reduction
transformational intrinsic function folding are exposed.

Use them to implement folding of IALL, IANY, IPARITY,
SUM. and PRODUCT.  Replace the folding of ALL & ANY to
use the new infrastructure and become able to handle DIM=
arguments.

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

3 years agoRevert "[mlir][NFC] Move SubTensorOp and SubTensorInsertOp to TensorDialect"
Mehdi Amini [Mon, 21 Jun 2021 16:39:24 +0000 (16:39 +0000)]
Revert "[mlir][NFC] Move SubTensorOp and SubTensorInsertOp to TensorDialect"

This reverts commit 83bf801f5f266c788f025a3efbb0c83817137c3b.

This breaks the build with -DBUILD_SHARED_LIBS=ON

3 years ago[OpaquePtr] Return opaque pointer from opaque pointer GEP
Nikita Popov [Mon, 21 Jun 2021 15:43:06 +0000 (17:43 +0200)]
[OpaquePtr] Return opaque pointer from opaque pointer GEP

For a GEP on an opaque pointer, also return an opaque pointer (or
vector of opaque pointer) result.

This requires explicitly enumerating the GEP source element type,
because it is now no longer implicitly enumerated as part of either
the source or result pointer types.

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

3 years ago[lldb] Enable Rust v0 symbol demangling
Alexander Mols [Mon, 21 Jun 2021 15:56:55 +0000 (17:56 +0200)]
[lldb] Enable Rust v0 symbol demangling

Rust's v0 name mangling scheme [1] is easy to disambiguate from other
name mangling schemes because symbols always start with `_R`. The llvm
Demangle library supports demangling the Rust v0 scheme. Use it to
demangle Rust symbols.

Added unit tests that check simple symbols. Ran LLDB built with this
patch to debug some Rust programs compiled with the v0 name mangling
scheme. Confirmed symbol names were demangled as expected.

Note: enabling the new name mangling scheme requires a nightly
toolchain:

```
$ cat main.rs
fn main() {
    println!("Hello world!");
}
$ $(rustup which --toolchain nightly rustc) -Z symbol-mangling-version=v0 main.rs -g
$ /home/asm/hacking/llvm/build/bin/lldb ./main --one-line 'b main.rs:2'
(lldb) target create "./main"
Current executable set to '/home/asm/hacking/llvm/rust/main' (x86_64).
(lldb) b main.rs:2
Breakpoint 1: where = main`main::main + 4 at main.rs:2:5, address = 0x00000000000076a4
(lldb) r
Process 948449 launched: '/home/asm/hacking/llvm/rust/main' (x86_64)
warning: (x86_64) /lib64/libgcc_s.so.1 No LZMA support found for reading .gnu_debugdata section
Process 948449 stopped
* thread #1, name = 'main', stop reason = breakpoint 1.1
    frame #0: 0x000055555555b6a4 main`main::main at main.rs:2:5
   1    fn main() {
-> 2        println!("Hello world!");
   3    }
(lldb) bt
error: need to add support for DW_TAG_base_type '()' encoded with DW_ATE = 0x7, bit_size = 0
* thread #1, name = 'main', stop reason = breakpoint 1.1
  * frame #0: 0x000055555555b6a4 main`main::main at main.rs:2:5
    frame #1: 0x000055555555b78b main`<fn() as core::ops::function::FnOnce<()>>::call_once((null)=(main`main::main at main.rs:1), (null)=<unavailable>) at function.rs:227:5
    frame #2: 0x000055555555b66e main`std::sys_common::backtrace::__rust_begin_short_backtrace::<fn(), ()>(f=(main`main::main at main.rs:1)) at backtrace.rs:125:18
    frame #3: 0x000055555555b851 main`std::rt::lang_start::<()>::{closure#0} at rt.rs:49:18
    frame #4: 0x000055555556c9f9 main`std::rt::lang_start_internal::hc51399759a90501a [inlined] core::ops::function::impls::_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$F$GT$::call_once::h04259e4a34d07c2f at function.rs:259:13
    frame #5: 0x000055555556c9f2 main`std::rt::lang_start_internal::hc51399759a90501a [inlined] std::panicking::try::do_call::hb8da45704d5cfbbf at panicking.rs:401:40
    frame #6: 0x000055555556c9f2 main`std::rt::lang_start_internal::hc51399759a90501a [inlined] std::panicking::try::h4beadc19a78fec52 at panicking.rs:365:19
    frame #7: 0x000055555556c9f2 main`std::rt::lang_start_internal::hc51399759a90501a [inlined] std::panic::catch_unwind::hc58016cd36ba81a4 at panic.rs:433:14
    frame #8: 0x000055555556c9f2 main`std::rt::lang_start_internal::hc51399759a90501a at rt.rs:34:21
    frame #9: 0x000055555555b830 main`std::rt::lang_start::<()>(main=(main`main::main at main.rs:1), argc=1, argv=0x00007fffffffcb18) at rt.rs:48:5
    frame #10: 0x000055555555b6fc main`main + 28
    frame #11: 0x00007ffff73f2493 libc.so.6`__libc_start_main + 243
    frame #12: 0x000055555555b59e main`_start + 46
(lldb)
```

[1]: https://github.com/rust-lang/rust/issues/60705

Reviewed By: clayborg, teemperor

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

3 years agoRegisterCoalescer: Fix iterating through use operands.
Hendrik Greving [Fri, 18 Jun 2021 22:16:38 +0000 (15:16 -0700)]
RegisterCoalescer: Fix iterating through use operands.

Fixes a minor bug when trying to iterate through use operands when
updating debug use operands.

Extends a test to include above.

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

3 years ago[HIP] Add support functions for C++ polymorphic types
Yaxun (Sam) Liu [Fri, 18 Jun 2021 20:39:41 +0000 (16:39 -0400)]
[HIP] Add support functions for C++ polymorphic types

Add runtime functions to detect invalid calls to pure or deleted virtual
functions.

Patch by: Siu Chi Chan

Reviewed by: Yaxun Liu

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

3 years ago[libc++] Remove unused variable
Fanbo Meng [Mon, 21 Jun 2021 15:39:05 +0000 (11:39 -0400)]
[libc++] Remove unused variable

Removing  `__current` as it becomes unused-but-set after 2cf78d4ead4a2ab5375bd6087724211d04119a28.

Reviewed By: ldionne, abhina.sreeskantharajan, #libc

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

3 years ago[InstCombine] move bitmanipulation-of-select folds
Sanjay Patel [Mon, 21 Jun 2021 15:27:52 +0000 (11:27 -0400)]
[InstCombine] move bitmanipulation-of-select folds

This is no outwardly-visible-difference-intended,
but it is obviously better to have all transforms
for an intrinsic housed together since we already
have helper functions in place.

It is also potentially more efficient to zap a
simple pattern match before trying to do expensive
computeKnownBits() calls.

3 years ago[SLP][AArch64] Add SLP vectorizer regression test. NFC
Rosie Sumpter [Mon, 21 Jun 2021 13:28:35 +0000 (14:28 +0100)]
[SLP][AArch64] Add SLP vectorizer regression test. NFC

This test is for a missed SLP vectorizer opportunity, reported here
https://bugs.llvm.org/show_bug.cgi?id=44593. This is due to a cost
modelling issue with vector reduction intrinsics which will be
fixed in a future commit (see https://reviews.llvm.org/D104538).

3 years ago[OpenCL] Add support of __opencl_c_images feature macro
Anton Zabaznov [Mon, 21 Jun 2021 14:45:36 +0000 (17:45 +0300)]
[OpenCL] Add support of __opencl_c_images feature macro

Reviewed By: svenvh

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

3 years agoTry to fix clang/test/Driver/cl-include.c failure
Hans Wennborg [Mon, 21 Jun 2021 15:18:00 +0000 (17:18 +0200)]
Try to fix clang/test/Driver/cl-include.c failure

Somewhat speculative. Example failures:
https://lab.llvm.org/buildbot/#/builders/5/builds/8857/steps/9/logs/stdio
https://lab.llvm.org/buildbot/#/builders/123/builds/4621/steps/8/logs/stdio

3 years ago[omp] Fix build without ITT after D103121 changes
Vladislav Vinogradov [Mon, 21 Jun 2021 12:56:54 +0000 (15:56 +0300)]
[omp] Fix build without ITT after D103121 changes

Reviewed By: AndreyChurbanov

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

3 years ago[mlir][NFC] Move SubTensorOp and SubTensorInsertOp to TensorDialect
Matthias Springer [Mon, 21 Jun 2021 15:03:47 +0000 (00:03 +0900)]
[mlir][NFC] Move SubTensorOp and SubTensorInsertOp to TensorDialect

The main goal of this commit is to remove the dependency of Standard dialect on the Tensor dialect.

* Rename ops: SubTensorOp --> ExtractTensorOp, SubTensorInsertOp --> InsertTensorOp
* Some helper functions are (already) duplicated between the Tensor dialect and the MemRef dialect. To keep this commit smaller, this will be cleaned up in a separate commit.
* Additional dialect dependencies: Shape --> Tensor, Tensor --> Standard
* Remove dialect dependencies: Standard --> Tensor
* Move canonicalization test cases to correct dialect (Tensor/MemRef).

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

3 years ago[InstCombine] fold ctlz/cttz-of-select with 1 or more constant arms
Sanjay Patel [Mon, 21 Jun 2021 14:51:30 +0000 (10:51 -0400)]
[InstCombine] fold ctlz/cttz-of-select with 1 or more constant arms

Building on:
4c44b02d87
...and adding handling for the extra operand in these intrinsics.

This pattern is discussed in:
https://llvm.org/PR50140

3 years agoAMDGPU: Add missing tests for v_fma_mixlo
Matt Arsenault [Mon, 14 Jun 2021 18:54:34 +0000 (14:54 -0400)]
AMDGPU: Add missing tests for v_fma_mixlo

3 years ago[mlir] Remove "getNumPayloadInductionVariables".
Alexander Belyaev [Mon, 21 Jun 2021 14:28:23 +0000 (16:28 +0200)]
[mlir] Remove "getNumPayloadInductionVariables".

This method always returns 0 after
https://reviews.llvm.org/rG7cddf56d608f07b8e49f7e2eeb4a20082611adb6

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

3 years ago[AArch64][SVE] Add missing target require to test
Bradley Smith [Mon, 21 Jun 2021 14:18:25 +0000 (15:18 +0100)]
[AArch64][SVE] Add missing target require to test

Differential revision: https://reviews.llvm.org/D104643

3 years ago[FuncSpec] Add minsize test. NFC.
Sjoerd Meijer [Mon, 21 Jun 2021 14:13:40 +0000 (15:13 +0100)]
[FuncSpec] Add minsize test. NFC.

3 years ago[NFC][libomptarget] Remove redundant libelf dependency for elf_common.
Vyacheslav Zakharin [Fri, 18 Jun 2021 16:46:10 +0000 (09:46 -0700)]
[NFC][libomptarget] Remove redundant libelf dependency for elf_common.

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

3 years ago[clang-cl] Implement /external:I, /external:env, and EXTERNAL_INCLUDE support (PR36003)
Hans Wennborg [Wed, 16 Jun 2021 13:22:17 +0000 (15:22 +0200)]
[clang-cl] Implement /external:I, /external:env, and EXTERNAL_INCLUDE support (PR36003)

This patch does three things:

- Map the /external:I flag to -isystem

- Add support for the /external:env:<var> flag which reads system
  include paths from the <var> environment variable

- Pick up system include dirs EXTERNAL_INCLUDE in addition to the old
  INCLUDE environment variable.

Differential revision: https://reviews.llvm.org/D104387

3 years ago[ARM] Transform a fixed-point to floating-point conversion into a VCVT_fix
Sam Tebbs [Mon, 7 Jun 2021 12:29:38 +0000 (13:29 +0100)]
[ARM] Transform a fixed-point to floating-point conversion into a VCVT_fix

Conversion from a fixed-point number to a floating-point number is done by
multiplying the fixed-point number by 2^(-n) where n is the number of
fractional bits. Currently this is lowered to a vcvt
(integer to floating-point) then a vmul, but it can instead be lowered
directly to a vcvt (fixed-point to floating-point). This patch enables
such transformations as long as the multiplication factor is a power of 2.

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

3 years ago[NFC] Fix typo
Sebastian Neubauer [Mon, 21 Jun 2021 12:59:30 +0000 (14:59 +0200)]
[NFC] Fix typo

3 years ago[AArch64][SVE] Wire up vscale_range attribute to SVE min/max vector queries
Bradley Smith [Fri, 4 Jun 2021 14:24:35 +0000 (15:24 +0100)]
[AArch64][SVE] Wire up vscale_range attribute to SVE min/max vector queries

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

3 years ago[Sema][SVE] Properly match builtin ID when using aux target
Bradley Smith [Fri, 18 Jun 2021 12:48:13 +0000 (13:48 +0100)]
[Sema][SVE] Properly match builtin ID when using aux target

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

3 years ago[lldb][NFC] Remove redundant deleted constructors in HostInfoBase subclasses
Raphael Isemann [Mon, 21 Jun 2021 11:19:15 +0000 (13:19 +0200)]
[lldb][NFC] Remove redundant deleted constructors in HostInfoBase subclasses

HostInfoBase has a deleted dtor/ctor so there is no need to do the same for
all the classes inheriting from it.

Reviewed By: DavidSpickett, JDevlieghere

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

3 years ago[LoopIdiom] Add test case that involves adds with flags and zero exts.
Florian Hahn [Mon, 21 Jun 2021 09:49:26 +0000 (10:49 +0100)]
[LoopIdiom] Add test case that involves adds with flags and zero exts.

Test coverage to ensure D104319 does not introduce a regression here.

3 years ago[mlir][ODS] Fix copy ctor for generate Pass classes
Vladislav Vinogradov [Tue, 15 Jun 2021 15:09:31 +0000 (18:09 +0300)]
[mlir][ODS] Fix copy ctor for generate Pass classes

Redirect the copy ctor to the actual class instead of
overwriting it with `TypeID` based ctor.

This allows the final Pass classes to have extra fields and logic for their copy.

Reviewed By: lattner

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

3 years ago[NFC] Wrap entire assert-only block in LLVM_DEBUG
Jordan Rupprecht [Mon, 21 Jun 2021 11:01:09 +0000 (04:01 -0700)]
[NFC] Wrap entire assert-only block in LLVM_DEBUG

3 years ago[mlir][Linalg] Silence warnings in Release builds. NFC.
Benjamin Kramer [Mon, 21 Jun 2021 10:55:25 +0000 (12:55 +0200)]
[mlir][Linalg] Silence warnings in Release builds. NFC.

mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp:940:8: warning: unused variable 'opProducesRootRead' [-Wunused-variable]
  bool opProducesRootRead =
       ^
mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp:942:8: warning: unused variable 'opProducesRootWrite' [-Wunused-variable]
  bool opProducesRootWrite =
       ^
mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp:1498:11: warning: unused variable 'resultNumber' [-Wunused-variable]
  int64_t resultNumber = result.getResultNumber();
          ^
mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp:1497:11: warning: unused variable 'operandNumber' [-Wunused-variable]
  int64_t operandNumber = operand.getOperandNumber();
          ^
mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp:267:20: warning: unused function 'getInPlace' [-Wunused-function]
static InPlaceSpec getInPlace(Value v) {
                   ^

3 years ago[VP][NFCI] Address various clang-tidy warnings
Fraser Cormack [Mon, 21 Jun 2021 08:50:27 +0000 (09:50 +0100)]
[VP][NFCI] Address various clang-tidy warnings

Reviewed By: simoll

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

3 years ago[lldb] Assert that CommandResultObject error messages are not empty
David Spickett [Fri, 18 Jun 2021 12:17:53 +0000 (12:17 +0000)]
[lldb] Assert that CommandResultObject error messages are not empty

The intention is now that AppendError/SetError/AppendRawError only
be called with some message to show. This enforces that.

For SetError with a Status and a fallback string first assert
that the Status is a failure Status. Then it calls SetError(StringRef)
which checks the message is valid. (which could be the fallback
or the Status')

Reviewed By: dblaikie

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

3 years ago[AMDGPU] Fix linking with shared libraries
Sebastian Neubauer [Mon, 21 Jun 2021 09:11:09 +0000 (11:11 +0200)]
[AMDGPU] Fix linking with shared libraries

AMDGPULDSUtils depends on llvm::CallGraph.

3 years ago[Mem2Reg] Regenerate test checks (NFC)
Nikita Popov [Mon, 21 Jun 2021 09:05:31 +0000 (11:05 +0200)]
[Mem2Reg] Regenerate test checks (NFC)

3 years ago[mlir][NFC] Remove Standard dialect dependency on MemRef dialect
Matthias Springer [Mon, 21 Jun 2021 08:45:16 +0000 (17:45 +0900)]
[mlir][NFC] Remove Standard dialect dependency on MemRef dialect

* Remove dependency: Standard --> MemRef
* Add dependencies: GPUToNVVMTransforms --> MemRef, Linalg --> MemRef, MemRef --> Tensor
* Note: The `subtensor_insert_propagate_dest_cast` test case in MemRef/canonicalize.mlir will be moved to Tensor/canonicalize.mlir in a subsequent commit, which moves over the remaining Tensor ops from the Standard dialect to the Tensor dialect.

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

3 years ago[Mem2Reg] Use poison for unreachable cases
Nikita Popov [Mon, 21 Jun 2021 08:47:14 +0000 (10:47 +0200)]
[Mem2Reg] Use poison for unreachable cases

Use poison instead of undef for cases dealing with unreachable
code. This still leaves the more interesting case of "load from
uninitialized memory" as undef.

3 years ago[Mem2Reg] Regenerate test checks (NFC)
Nikita Popov [Mon, 21 Jun 2021 08:47:59 +0000 (10:47 +0200)]
[Mem2Reg] Regenerate test checks (NFC)

3 years ago[InstCombine] Fold icmp (select c,const,arg), null if icmp arg, null can be simplified
Juneyoung Lee [Mon, 21 Jun 2021 07:50:54 +0000 (16:50 +0900)]
[InstCombine] Fold icmp (select c,const,arg), null if icmp arg, null can be simplified

This patch folds icmp (select c,const,arg), null if icmp arg, null can be simplified.

Resolves llvm.org/pr48975.

Reviewed By: nikic, xbolva00

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

3 years ago[FuncSpec] Don't specialise functions with NoDuplicate instructions.
Sjoerd Meijer [Thu, 17 Jun 2021 13:43:02 +0000 (14:43 +0100)]
[FuncSpec] Don't specialise functions with NoDuplicate instructions.

getSpecializationCost was returning INT_MAX for a case when specialisation
shouldn't happen, but this wasn't properly checked if specialisation was
forced.

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

3 years ago[mlir][linalg] Support low padding in subtensor(pad_tensor) lowering
Matthias Springer [Mon, 21 Jun 2021 07:29:42 +0000 (16:29 +0900)]
[mlir][linalg] Support low padding in subtensor(pad_tensor) lowering

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

3 years ago[gn build] Port 208332de8abf
LLVM GN Syncbot [Mon, 21 Jun 2021 07:27:34 +0000 (07:27 +0000)]
[gn build] Port 208332de8abf