platform/upstream/llvm.git
20 months ago[mlir][vector] Convert extract_strided_slice to extract & insert chain
Lei Zhang [Thu, 10 Nov 2022 00:37:19 +0000 (19:37 -0500)]
[mlir][vector] Convert extract_strided_slice to extract & insert chain

This is useful for breaking down extract_strided_slice and potentially
cancel with other extract / insert ops before or after.

Reviewed By: ThomasRaoux

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

20 months ago[AArch64][SVE] Migrate tests to use opaque pointers (NFC)
Dinar Temirbulatov [Thu, 10 Nov 2022 00:38:28 +0000 (00:38 +0000)]
[AArch64][SVE] Migrate tests to use opaque pointers (NFC)

    Test updates were performed using:
    https://gist.github.com/nikic/98357b71fd67756b0f064c9517b62a34

20 months ago[mlir][sparse] Add optional size_hint operand to bufferization.alloc_tensor.
bixia1 [Mon, 7 Nov 2022 21:46:29 +0000 (13:46 -0800)]
[mlir][sparse] Add optional size_hint operand to bufferization.alloc_tensor.

Reviewed By: aartbik

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

20 months ago[ORC] Fix typo in unit test.
Lang Hames [Thu, 10 Nov 2022 00:11:40 +0000 (16:11 -0800)]
[ORC] Fix typo in unit test.

20 months ago[flang] Support arith::FastMathFlagsAttr for fir::CallOp.
Slava Zakharin [Wed, 9 Nov 2022 23:18:50 +0000 (15:18 -0800)]
[flang] Support arith::FastMathFlagsAttr for fir::CallOp.

The main purpose of this patch is to propagate fastmath attribute
to SimplifyIntrinsicsPass, so that the inline code can inherit
the call operation's attributes. Even though I added translation
of fastmath from fir::CallOp to LLVM::CallOp, there are no fastmath
attributes in LLVM IR. It looks like the translation drops it.
This will need additional commits.

Reviewed By: jeanPerier

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

20 months agoMove googletest to the third-party directory
Tom Stellard [Wed, 9 Nov 2022 16:51:34 +0000 (08:51 -0800)]
Move googletest to the third-party directory

Rre-commit of 59052468c3e38cab15582cefbb5133fd4c2ffce5 with a typo
fix in compiler-rt/CMakeLists.txt

20 months ago[flang] Propagate more FastMath flags to lowering.
Slava Zakharin [Wed, 9 Nov 2022 23:01:47 +0000 (15:01 -0800)]
[flang] Propagate more FastMath flags to lowering.

Plugged in propagation of nnan/nsz/arcp/afn/reassoc related options
to lowering/FirOpBuilder.

Reviewed By: jeanPerier, tblah, awarzynski

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

20 months ago[CodeGen][AArch64] Enable LDAPR under +RCPC
Alexander Shaposhnikov [Wed, 9 Nov 2022 21:36:18 +0000 (21:36 +0000)]
[CodeGen][AArch64] Enable LDAPR under +RCPC

This is a follow-up to D126250 and enables LDAPR
if the RCPC extensions are enabled.

Test plan: ninja check-all

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

20 months ago[libc++] Add FTM for constexpr vector
Nikolas Klauser [Wed, 9 Nov 2022 20:01:42 +0000 (21:01 +0100)]
[libc++] Add FTM for constexpr vector

It looks like we forgot to set the FTM when adding constexpr vector support.

Reviewed By: ldionne, #libc

Spies: libcxx-commits, arichardson

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

20 months ago[mlir][sparse] first end-to-end matmul with codegen
Aart Bik [Wed, 9 Nov 2022 21:05:43 +0000 (13:05 -0800)]
[mlir][sparse] first end-to-end matmul with codegen

(1) also fixes memory leak in sparse2dense rewriting
(2) still needs fix in dense2sparse by skipping zeros

Reviewed By: wrengr

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

20 months agoRevert "[AArch64][SME] Disable GlobalISel/FastISel for SME functions."
Sander de Smalen [Wed, 9 Nov 2022 21:14:25 +0000 (21:14 +0000)]
Revert "[AArch64][SME] Disable GlobalISel/FastISel for SME functions."

Reverting the patch due to a buildbot failure.

This reverts commit e1e260cc64bd900d5f3f88187c60cb02d3a805f5.

20 months ago[Test][AIX][pg] Add 32-bit linker invocation tests
Michael Francis [Tue, 8 Nov 2022 19:37:29 +0000 (19:37 +0000)]
[Test][AIX][pg] Add 32-bit linker invocation tests

Differential Review: https://reviews.llvm.org/D137372

20 months ago[mlir][vector] Modify constraint and interface for warp reduce on f16 and i8
stanley-nod [Wed, 9 Nov 2022 19:26:20 +0000 (11:26 -0800)]
[mlir][vector] Modify constraint and interface for warp reduce on f16 and i8

Quantization method is crucial and ubiqutous in accelerating machine
learning workloads. Most of these methods uses f16 and i8 types.

This patch relaxes the type contraints on warp reduce distribution to
allow these types. Furthermore, this patch also changed the interface
and moved the initial reduction of data to a single thread into the
distributedReductionFn, this gives flexibility for developers to control
how they are obtaining the initial lane value, which might differ based
on the input types. (i.e to shuffle 32-width type, we need to reduce f16
to 2xf16 types rather than a single element).

Reviewed By: ThomasRaoux

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

20 months ago[Test][AIX][p] Add 64-bit linker invocation tests
Michael Francis [Tue, 8 Nov 2022 19:32:44 +0000 (19:32 +0000)]
[Test][AIX][p] Add 64-bit linker invocation tests

Differential Review: https://reviews.llvm.org/D137373

20 months ago[compiler-rt][hwasan] Call __hwasan_library_loaded via
Leonard Chan [Tue, 8 Nov 2022 23:11:26 +0000 (23:11 +0000)]
[compiler-rt][hwasan] Call __hwasan_library_loaded via
__sanitizer_library_loaded on Fuchsia

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

20 months ago[compiler-rt][hwasan] Do not call InitLoadedGlobals in __hwasan_init
Leonard Chan [Tue, 8 Nov 2022 23:06:19 +0000 (23:06 +0000)]
[compiler-rt][hwasan] Do not call InitLoadedGlobals in __hwasan_init

Fuchsia's libc provides a new hook (__sanitizer_module_loaded) which calls
hwasan_library_loaded in the startup path which will register globals in
loaded modules.

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

20 months ago[llvm-diff] Fix false-positive diffs on forward-referencing phi nodes
Jannik Silvanus [Thu, 27 Oct 2022 07:14:40 +0000 (09:14 +0200)]
[llvm-diff] Fix false-positive diffs on forward-referencing phi nodes

When a phi node references a variable defined in a basic block dominated
by the the basic block containing the phi node, llvm-diff currently cannot determine
whether the variable is equivalent, and thus treats the phi node as different
and reports a difference. This leads to false positive differences as demonstrated
by the loop.ll diff, for which llvm-diff reports a diff when comparing the file
with itself.

Fix that issue by adding the concept of *equivalence assumptions*.
When encountering a pair of values which can neither be proven to be equivalent
nor to be non-equivalent, instead optimistically assume equivalence, and store
somewhere that the equivalence of the currently compared basic blocks depends
on this assumption.

Later, once all BBs have been processed, check all made assumptions and report
blocks as different whose equivalence was depending on an incorrect assumption,
or an assumption we could not prove to be correct.

In order to preserve the original diff report order, also schedule diffs
of blocks already known to be different using the same mechanism, so all block
diffs are now generated at the very end of function diffing.

In case an incorrect assumption was made, all further shown equivalences between
old and new values implictly depend on the incorrect assumption. Some of these
may in fact be not equivalent, but these are neither reverted nor reported,
because they are considered indirect diffs caused by an earlier direct diff.

See inline comments for an argument why we do not run into issues caused by circular
proof dependencies.

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

20 months agoRevert "Move googletest to the third-party directory"
Tom Stellard [Wed, 9 Nov 2022 19:32:26 +0000 (11:32 -0800)]
Revert "Move googletest to the third-party directory"

This reverts commit 59052468c3e38cab15582cefbb5133fd4c2ffce5.

It looks like this patch breaks the build when compiler-rt is passed to
LLVM_ENABLE_PROJECTS instead of LLVM_ENABLE_RUNTIMES.

20 months ago[RISCV] Support BSET/BCLR/BINV in hasAllWUsers.
Craig Topper [Wed, 9 Nov 2022 19:16:00 +0000 (11:16 -0800)]
[RISCV] Support BSET/BCLR/BINV in hasAllWUsers.

These instructions set, clear, or invert a single bit. If their
users don't use the upper 32 bits, they don't use the upper 32 bits
of their input.

Additionally the second operand BSET/BCLR/BINV is a shift amount
which only uses 6 bits of the source.

Reviewed By: asb

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

20 months ago[RISCV] Support shift/rotate amount operands in isAllUsesReadW.
Craig Topper [Wed, 9 Nov 2022 19:15:30 +0000 (11:15 -0800)]
[RISCV] Support shift/rotate amount operands in isAllUsesReadW.

These operands use 6 bits.

Reviewed By: asb

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

20 months ago[RISCV] Improve support for ADD_UW/SHXADD_UW in hasAllWUsers.
Craig Topper [Wed, 9 Nov 2022 19:15:03 +0000 (11:15 -0800)]
[RISCV] Improve support for ADD_UW/SHXADD_UW in hasAllWUsers.

The first use operand of these is implicitly zero extended. We
can consider that a W read. If the use is the other operand, we
need to look through the instruction.

Reviewed By: asb

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

20 months ago[RISCV] Support SB/SH/SW in hasAllWUsers in RISCVSExtWRemoval.
Craig Topper [Wed, 9 Nov 2022 19:14:21 +0000 (11:14 -0800)]
[RISCV] Support SB/SH/SW in hasAllWUsers in RISCVSExtWRemoval.

After D137446 we can see which operand is the user. If the user
is the value operand of a SB/SH/SW then the upper 32 bits aren't
used.

Reviewed By: asb

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

20 months ago[RISCV] Rework hasAllWUsers in RISCVSExtWRemoval. NFCI
Craig Topper [Wed, 9 Nov 2022 07:40:15 +0000 (23:40 -0800)]
[RISCV] Rework hasAllWUsers in RISCVSExtWRemoval. NFCI

Instead of storing the uses to check in the worklist, store the
instruction we want to check uses for.

Now we pop and instruction from the worklist, loop over its uses
and check them. If it's something we need to look across, we'll push
it to the worklist.

By doing it this way, we can have access to which operand
of the user is using the instruction. This will allow supporting
store instructions since we'll be able to disambiguate the the value
operand and the pointer operand. We can also improve support for
*add.uw instructions and shift amount uses.

Reviewed By: mohammed-nurulhoque, asb

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

20 months ago[clang] Mention vector in the description for -mno-implict-float.
Craig Topper [Wed, 9 Nov 2022 07:24:01 +0000 (23:24 -0800)]
[clang] Mention vector in the description for -mno-implict-float.

As far as I understand, this disables all integer vectors too.

Reviewed By: efriedma

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

20 months ago[ORC] Add a unit test to verify that bound weak symbols can't be overridden.
Lang Hames [Wed, 9 Nov 2022 19:13:18 +0000 (11:13 -0800)]
[ORC] Add a unit test to verify that bound weak symbols can't be overridden.

Weak symbols can be overridden while they're in the NeverSearched state, but
should not be able to be overridden once they've been bound by some lookup.
Historically we guaranteed this by stripping the weak flag once a symbol as
bound, causing it to appear as if it were strong. In ffe2dda29f3 we changed
that behavior to retain weak flags on symbols (to facilitate tracking for
dynamic re-binding during dlopen). This test checks that we still fail as
required after ffe2dda29f3.

20 months agoMove googletest to the third-party directory
Tom Stellard [Wed, 9 Nov 2022 16:51:34 +0000 (08:51 -0800)]
Move googletest to the third-party directory

This will help improve the project's layering, so that sub-projects
that don't actually need any llvm code can still use googletest
without having to reference code in the llvm directory.

This will also make it easier to consolidate and simplify the standalone
build configurations.

Reviewed By: stellaraccident, lattner, probinson, phosek

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

20 months agoUsing higher level interface to insert new arguments so arguments
Renaud-K [Wed, 9 Nov 2022 19:04:22 +0000 (11:04 -0800)]
Using higher level interface to insert new arguments so arguments
and their corresponding attributes are moved together

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

20 months ago[clangd] Fix the code action `RemoveUsingNamespace`
v1nh1shungry [Wed, 9 Nov 2022 20:04:20 +0000 (21:04 +0100)]
[clangd] Fix the code action `RemoveUsingNamespace`

Avoid adding qualifiers before user-defined literals

Reviewed By: tom-anders

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

20 months agoHandle aliasing a non-top-level command.
Jim Ingham [Wed, 9 Nov 2022 18:11:16 +0000 (10:11 -0800)]
Handle aliasing a non-top-level command.

This didn't work previously because we had to check whether the incoming
command was an alias command, but if it wasn't we still used the result
of that lookup - which was by the command's node name.  That fails for
non-top-level commands.  In this case, the resolution is pretty simple since
we already have the node's CommandObject, so all we needed to do was turn
it into a shared pointer, for which I added enable_shared_from_this to the
CommandObject.

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

20 months agoDon't try to create Expressions when the process is running.
Jim Ingham [Wed, 9 Nov 2022 18:03:30 +0000 (10:03 -0800)]
Don't try to create Expressions when the process is running.

We generally prohibit this at a higher level - for instance requiring
the process to be stopped for "expr".  But when we trigger an expression
for internal purposes (e.g. to fetch types from the ObjC runtime) we weren't
checking the process state.  Now we explicitly check this at the very start
of the job so we don't get into bad states.

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

20 months ago[include-cleaner] Add dependency to fix build with shared libraries
Ilya Biryukov [Wed, 9 Nov 2022 17:31:14 +0000 (18:31 +0100)]
[include-cleaner] Add dependency to fix build with shared libraries

20 months agoRename unique-types2/TestUniqueTypes.py to TestUniqueTypes2.py
Jason Molenda [Wed, 9 Nov 2022 16:38:57 +0000 (08:38 -0800)]
Rename unique-types2/TestUniqueTypes.py to TestUniqueTypes2.py

lang/cpp/unique-types/TestUniqueTypes.py already exists.

20 months ago[X86] Replace unnecessary CVTPS2PI/CVTPS2DQ overrides with better base class defs
Simon Pilgrim [Wed, 9 Nov 2022 17:08:36 +0000 (17:08 +0000)]
[X86] Replace unnecessary CVTPS2PI/CVTPS2DQ overrides with better base class defs

Broadwell/Haswell were completely overriding the WriteCvtPD2I class defs - we can remove those overrides entirely by just choosing better class defs.

Also fixes the scheduler for a missing YMM folded case - confirmed with Agner + uops.info that the port usage is correct

20 months agoRevert "[amdgpu][lds] Use the same isKernel predicate consistently"
Jon Chesterfield [Wed, 9 Nov 2022 16:54:20 +0000 (16:54 +0000)]
Revert "[amdgpu][lds] Use the same isKernel predicate consistently"

Looks like this composed poorly with a nominally independent patch, will fix
This reverts commit 0ba0398517778514eb44cb7ba9bf9d4d20a856e0.

20 months ago[amdgpu][lds] Use the same isKernel predicate consistently
Jon Chesterfield [Wed, 9 Nov 2022 16:45:02 +0000 (16:45 +0000)]
[amdgpu][lds] Use the same isKernel predicate consistently

isKernelCC != isKernel(F->getCallingConv())
There's a test case (lower-kernel-lds.ll) that explicitly skips amdgpu_ps
so this change picks the isKernel predicate that continues to skip that
calling convention.

isKernel returns true for AMDGPU_KERNEL and SPIR_KERNEL. isKernelCC also
returns true for other calling conventions.

Reviewed By: arsenm

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

20 months agoRevert "[LLD] Enable --no-undefined-version by default."
Jon Chesterfield [Wed, 9 Nov 2022 16:17:33 +0000 (16:17 +0000)]
Revert "[LLD] Enable --no-undefined-version by default."

This reverts commit eedbe44b8755f7d162eee43cb3e8c9da1e61ebad.

20 months ago[AArch64][SME] Disable GlobalISel/FastISel for SME functions.
Sander de Smalen [Wed, 9 Nov 2022 15:53:53 +0000 (15:53 +0000)]
[AArch64][SME] Disable GlobalISel/FastISel for SME functions.

This patch ensures that GlobalISel and FastISel fall back to regular DAG ISel when:
* A function requires streaming-mode to be enabled at the start/end of the function.
  This happens when the function has no streaming interface, but does have a streaming body.
* A function requires a lazy-save to be committed at the start of the function.
  This happens if the function has the `aarch64_pstate_za_new` attribute.
* A call to a function requires a change in streaming-mode.
* A call to a function requires a lazy-save buffer to be set up.

Patch by @CarolineConcatto

Reviewed By: david-arm

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

20 months ago[amdgpu][lds] Use a consistent order of fields in generated structs
Jon Chesterfield [Wed, 9 Nov 2022 15:57:38 +0000 (15:57 +0000)]
[amdgpu][lds] Use a consistent order of fields in generated structs

Avoids spurious and confusing test failures on changing implementation.

Reviewed By: arsenm

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

20 months ago[AArch64] NFC: Remove unused parameter from allocateLazySaveBuffer
Sander de Smalen [Tue, 8 Nov 2022 13:22:48 +0000 (13:22 +0000)]
[AArch64] NFC: Remove unused parameter from allocateLazySaveBuffer

20 months agoRevert "[mlir][linalg] Replace "string" iterator_types attr with enums in LinalgInter...
Oleg Shyshkov [Wed, 9 Nov 2022 14:59:54 +0000 (15:59 +0100)]
Revert "[mlir][linalg] Replace "string" iterator_types attr with enums in LinalgInterface."

Breaks linalg python tests. Would need to also update python/mlir/dialects/linalg/opdsl.

This reverts commit b809d73973bb5aeedeb6a18cac2a7b3111d0c8d2.

20 months ago[X86] Replace unnecessary CVTSD2SI/CVTSS2SI overrides with better base class defs
Simon Pilgrim [Wed, 9 Nov 2022 14:54:03 +0000 (14:54 +0000)]
[X86] Replace unnecessary CVTSD2SI/CVTSS2SI overrides with better base class defs

Broadwell/Haswell were completely overriding the WriteCvtSD2I/WriteCvtSS2I class defs - we can remove those overrides entirely by just choosing better class defs.

20 months ago[mlir][linalg] Replace "string" iterator_types attr with enums in LinalgInterface.
Oleg Shyshkov [Wed, 9 Nov 2022 14:42:40 +0000 (15:42 +0100)]
[mlir][linalg] Replace "string" iterator_types attr with enums in LinalgInterface.

[RFC: EnumAttr for iterator types in Linalg](https://discourse.llvm.org/t/rfc-enumattr-for-iterator-types-in-linalg/64535)

This affect touches and probably breaks most of the code that creates `linalg.generic`. A fix would be to replace calls to `getParallelIteratorTypeName/getReductionIteratorTypeName` with `mlir::utils::IteratorType::parallel/reduction` and types from `StringRef` to `mlir::utils::IteratorType`.

Due to limitations of tablegen, shared C++ definition of IteratorType enum lives in StructuredOpsUtils.td, but each dialect should have it's own EnumAttr wrapper. To avoid conflict, all enums in a dialect are put into a separate file with a separate tablegen rule.

Test dialect td files are refactored a bit.

Printed format of `linalg.generic` temporarily remains unchanged to avoid breaking code and tests in the same change.

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

20 months ago[AArch64][SVE2] Add the SVE2.1 integer quadword reduction instructions
David Sherwood [Thu, 3 Nov 2022 11:04:43 +0000 (11:04 +0000)]
[AArch64][SVE2] Add the SVE2.1 integer quadword reduction instructions

This patch adds the assembly/disassembly for the following instructions:

addqv  : Unsigned add reduction of quadword vector segments
andqv  : Bitwise AND reduction of quadword vector segments
eorqv  : Bitwise exclusive OR reduction of quadword vector segments
orqv   : Bitwise inclusive OR reduction of quadword vector segments
smaxqv : Signed maximum reduction of quadword vector segments
sminqv : Signed minimum reduction of quadword vector segments
umaxqv : Unsigned maximum reduction of quadword vector segments
uminqv : Unsigned minimum reduction of quadword vector segments

The reference can be found here:
https://developer.arm.com/documentation/ddi0602/2022-09

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

20 months ago[SCCP] Add tests for with.overflow intrinsics (NFC)
Nikita Popov [Wed, 9 Nov 2022 14:25:38 +0000 (15:25 +0100)]
[SCCP] Add tests for with.overflow intrinsics (NFC)

20 months agoFix Clang sphinx build
Aaron Ballman [Wed, 9 Nov 2022 14:19:24 +0000 (09:19 -0500)]
Fix Clang sphinx build

This addresses the issue found by:
https://lab.llvm.org/buildbot/#/builders/92/builds/35350

20 months ago[analyzer] Fix crash for array-delete of UnknownVal values.
Tomasz Kamiński [Wed, 9 Nov 2022 13:31:49 +0000 (14:31 +0100)]
[analyzer] Fix crash for array-delete of UnknownVal values.

We now skip the destruction of array elements for `delete[] p`,
if the value of `p` is UnknownVal and does not have corresponding region.
This eliminate the crash in `getDynamicElementCount` on that
region and matches the behavior for deleting the array of
non-constant range.

Reviewed By: isuckatcs

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

20 months ago[Support] Format provider improvements
Vladislav Vinogradov [Wed, 2 Nov 2022 11:22:14 +0000 (14:22 +0300)]
[Support] Format provider improvements

Remove `std::forward` call for `iterator_range` iterator de-reference.
It fixes formatting usage for some tricky cases, like special ranges,
which de-reference to value type.

Reviewed By: sammccall

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

20 months ago[mlir][Transform] Fix transform.sequence crash in the presence of propagated silencea...
Nicolas Vasilache [Wed, 9 Nov 2022 13:09:39 +0000 (05:09 -0800)]
[mlir][Transform] Fix transform.sequence crash in the presence of propagated silenceable errors and yield operations

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

20 months ago[OpenCL] Guard read_write image3d with cl_khr_3d_image_writes
Sven van Haastregt [Wed, 9 Nov 2022 13:17:23 +0000 (13:17 +0000)]
[OpenCL] Guard read_write image3d with cl_khr_3d_image_writes

Not all `read_write image3d_t` occurrences in opencl-c.h were guarded
with `cl_khr_3d_image_writes`.  Align with `-fdeclare-opencl-builtins`.

20 months agoRevert "[Support] Format provider improvements"
Vladislav Vinogradov [Wed, 9 Nov 2022 13:14:39 +0000 (16:14 +0300)]
Revert "[Support] Format provider improvements"

This reverts commit 791bdba0b183371ca3e16bb8411a059b4f8636ac.

Bot failure: https://lab.llvm.org/buildbot/#/builders/223/builds/9914

20 months ago[Support] Format provider improvements
Vladislav Vinogradov [Wed, 2 Nov 2022 11:22:14 +0000 (14:22 +0300)]
[Support] Format provider improvements

Remove `std::forward` call for `iterator_range` iterator de-reference.
It fixes formatting usage for some tricky cases, like special ranges,
which de-reference to value type.

Reviewed By: sammccall

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

20 months agoFix an unused-variable warning in release build, NFC.
Haojian Wu [Wed, 9 Nov 2022 12:03:12 +0000 (13:03 +0100)]
Fix an unused-variable warning in release build, NFC.

20 months ago[ARM] Move Triple::getARMCPUForArch into ARMTargetParser
Tomas Matheson [Sun, 23 Oct 2022 20:44:21 +0000 (21:44 +0100)]
[ARM] Move Triple::getARMCPUForArch into ARMTargetParser

This is very backend specific so either belongs in Toolchains/ARM or in
ARMTargetParser. Since it is used in lldb, ARMTargetParser made more sense.

This is part of an effort to move information about ARM/AArch64 architecture
versions, extensions and CPUs into their respective TargetParsers.

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

20 months ago[Assignment Tracking][10/*] salvageDebugInfo for dbg.assign intrinsics
OCHyams [Wed, 9 Nov 2022 11:39:29 +0000 (11:39 +0000)]
[Assignment Tracking][10/*] salvageDebugInfo for dbg.assign intrinsics

The Assignment Tracking debug-info feature is outlined in this RFC:

https://discourse.llvm.org/t/
rfc-assignment-tracking-a-better-way-of-specifying-variable-locations-in-ir

Plumb in salvaging for the address part of dbg.assign intrinsics.

Reviewed By: jmorse

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

20 months ago[SCCP] Add helper for getting constant range (NFC)
Nikita Popov [Wed, 9 Nov 2022 11:18:18 +0000 (12:18 +0100)]
[SCCP] Add helper for getting constant range (NFC)

Add a helper for the recurring pattern of getting a constant range
if the value lattice element is one, or a full range otherwise.

20 months ago[AArch64] Add support for the Cortex-X3 CPU
Victor Campos [Wed, 19 Oct 2022 13:03:57 +0000 (14:03 +0100)]
[AArch64] Add support for the Cortex-X3 CPU

Cortex-X3 is an Armv9-A AArch64 CPU.

This patch introduces support for Cortex-X3.

Technical Reference Manual: https://developer.arm.com/documentation/101593/latest

Reviewed By: dmgreen

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

20 months ago[mlir][complex] Canonicalize complex.sub zero
Kai Sasaki [Wed, 9 Nov 2022 11:11:55 +0000 (12:11 +0100)]
[mlir][complex] Canonicalize complex.sub zero

Subtracting zero constant can be fold in no complex.sub operation.

Reviewed By: pifon2a

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

20 months ago[Assignment Tracking][9/*] Don't drop DIAssignID in dropUnknownNonDebugMetadata
OCHyams [Wed, 9 Nov 2022 10:49:55 +0000 (10:49 +0000)]
[Assignment Tracking][9/*] Don't drop DIAssignID in dropUnknownNonDebugMetadata

The Assignment Tracking debug-info feature is outlined in this RFC:

https://discourse.llvm.org/t/
rfc-assignment-tracking-a-better-way-of-specifying-variable-locations-in-ir

A DIAssignID attachment is debug metadata, so don't drop it.

Reviewed By: jmorse

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

20 months ago[Assignment Tracking][8/*] Add DIAssignID merging utilities
OCHyams [Wed, 9 Nov 2022 10:41:28 +0000 (10:41 +0000)]
[Assignment Tracking][8/*] Add DIAssignID merging utilities

The Assignment Tracking debug-info feature is outlined in this RFC:

https://discourse.llvm.org/t/
rfc-assignment-tracking-a-better-way-of-specifying-variable-locations-in-ir

Add method:

  Instruction::mergeDIAssignID(
      ArrayRef<const Instruction* > SourceInstructions)

which merges the DIAssignID metadata attachments on `SourceInstructions` and
`this` and replaces uses of the original IDs with the new shared one.

This is used when stores are merged, for example sinking stores out of a
if-diamond CFG or vectorizing contiguous stores.

Reviewed By: jmorse

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

20 months ago[flang][NFC] move fir namespace into FortranVariableOpInterface ODS declaration
Jean Perier [Wed, 9 Nov 2022 10:40:56 +0000 (11:40 +0100)]
[flang][NFC] move fir namespace into FortranVariableOpInterface ODS declaration

This will be needed to be able to use this interface in HLFIR ODS operation definition
and get the right namespaces.

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

20 months ago[flang][NFC] move HLFIR dialect definition in IR
Jean Perier [Wed, 9 Nov 2022 10:37:53 +0000 (11:37 +0100)]
[flang][NFC] move HLFIR dialect definition in IR

Transforms will need to be put in a different library to avoid circular
dependencies with other parts of the compiler. So create an IR
directory, this (flat include directory, IR and Transform directories in
lib) matches how dialects like LLVM dialect are implemented.

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

20 months ago[M68k] Add support for atomic instructions
Sheng [Wed, 9 Nov 2022 10:37:03 +0000 (18:37 +0800)]
[M68k] Add support for atomic instructions

This adds support for atomic_load, atomic_store, atomic_cmpxchg
and atomic_rmw

Fixes #48236

Reviewed by: myhsu, efriedma

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

20 months ago[M68k] Replace `IsM680x0` with predicates `AtLeastM680x0`
Sheng [Wed, 9 Nov 2022 10:25:09 +0000 (18:25 +0800)]
[M68k] Replace `IsM680x0` with predicates `AtLeastM680x0`

The former is incorrect.

Reviewed By: myhsu

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

20 months ago[NFC][AMDGPU] Pre-commit tests for D136432.
Thomas Symalla [Wed, 9 Nov 2022 10:23:24 +0000 (11:23 +0100)]
[NFC][AMDGPU] Pre-commit tests for D136432.

20 months ago[AArch64] Support all extend/shift op for pattern: (ExtendOrShfitNode - Y) + Z -...
chenglin.bi [Wed, 9 Nov 2022 10:06:21 +0000 (18:06 +0800)]
[AArch64] Support all extend/shift op for pattern: (ExtendOrShfitNode - Y) + Z --> (Z - Y) + ExtendOrShfitNode

Followup rG325a3083b5b24
Add SRL/SRA/xxx_EXTEND/AND support

Reviewed By: dmgreen

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

20 months agoReapply: [Assignment Tracking][7/*] Add assignment tracking functionality to clang
OCHyams [Tue, 8 Nov 2022 16:58:53 +0000 (16:58 +0000)]
Reapply: [Assignment Tracking][7/*] Add assignment tracking functionality to clang

Reverted in 98fa95492f3bbd5befdeb36c88a3ac5ef2740b4e.

The Assignment Tracking debug-info feature is outlined in this RFC:

https://discourse.llvm.org/t/
rfc-assignment-tracking-a-better-way-of-specifying-variable-locations-in-ir

This patch plumbs the AssignmentTrackingPass (AKA declare-to-assign), added in
the previous patch in this set, into the optimisation pipeline from
clang. clang/test/CodeGen/assignment-tracking/assignment-tracking.cpp is the
main test for this patch.

Note: while clang (with the help of the declare-to-assign pass) can now emit
Assignment Tracking metadata, the llvm middle and back ends don't yet
understand it.

Reviewed By: jmorse

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

20 months agoFix D132221 rebase: Add flags to enable Assignment Tracking
OCHyams [Wed, 9 Nov 2022 09:11:02 +0000 (09:11 +0000)]
Fix D132221 rebase: Add flags to enable Assignment Tracking

The flags were not set up properly after rebasing the patch, causing bot
failures for D132226, for example:

https://lab.llvm.org/buildbot/#/builders/109/builds/50251

20 months ago[AArch64][SVE2] Add the SVE2.1 quadword structured load/store instructions
David Sherwood [Mon, 7 Nov 2022 10:18:34 +0000 (10:18 +0000)]
[AArch64][SVE2] Add the SVE2.1 quadword structured load/store instructions

This patch adds the assembly/disassembly for the following instructions:

ld2q : Contiguous load two-quadword structures to two vectors
ld3q : Contiguous load three-quadword structures to three vectors
ld4q : Contiguous load four-quadword structures to four vectors
st2q : Contiguous store two-quadword structures from two vectors
st3q : Contiguous store three-quadword structures to three vectors
st4q : Contiguous store four-quadword structures to four vectors

The reference can be found here:
https://developer.arm.com/documentation/ddi0602/2022-09

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

20 months ago[test] Avoid legacy PM default pipelines (O0,O1 etc) when running opt
Bjorn Pettersson [Tue, 8 Nov 2022 07:04:39 +0000 (08:04 +0100)]
[test] Avoid legacy PM default pipelines (O0,O1 etc) when running opt

Two lit tests were found running something like this:
  opt -O<n> -pass-locked-to-legacy-PM ...

The expand-atomicrmw-xchg-fp.ll seem to have used -O1 just to ensure
that the -atomic-expand pass were thinking that it wasn't running at
O0 level. Same thing can be ensured by using the -codegen-opt-level=1
option, making it possible to avoid using O1 in that test case.

In the vector-reductions-expanded.ll test case it was possible to
split the RUN line into using two opt invocations. First running
"opt -O2" using the new PM, and then running "opt -expand-reductions"
using the legacy PM.

I think that given this patch we get closer to removing code related
to 'AddOptimizationPasses' in opt.cpp.

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

20 months ago[X86] Support -march=sierraforest, grandridge, graniterapids.
Freddy Ye [Wed, 9 Nov 2022 08:12:25 +0000 (16:12 +0800)]
[X86] Support -march=sierraforest, grandridge, graniterapids.

Reviewed By: skan, pengfei, MaskRay

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

20 months ago[RISCV] Add support for static chain
melonedo [Tue, 16 Aug 2022 04:56:59 +0000 (12:56 +0800)]
[RISCV] Add support for static chain

The static chain parameter is a special parameter that is not passed in the usual argument registers or stack space. For example, in x64 System V ABI it is always passed in R10. Although the ABI of RISCV does not assign a register for this purpose, GCC had support for it on RISC-V a long time ago, and it is exposed via `__builtin_call_with_static_chain` intrinsic, and assign t2 for static chain parameters. This patch also chose t2 for compatibility.

In LLVM, static chain parameters are handled by the `nest` attribute of an argument to a function ([D6332](https://reviews.llvm.org/D6332)), so tests are added to ensure `nest` arguments are handled correctly.

Reviewed By: kito-cheng, MaskRay

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

20 months ago[AArch64] Precommit test for D137069; NFC
chenglin.bi [Wed, 9 Nov 2022 07:36:47 +0000 (15:36 +0800)]
[AArch64] Precommit test for D137069; NFC

20 months ago[compiler-rt] Set CMP0114 policy for standalone build
Vitaly Buka [Wed, 9 Nov 2022 06:59:03 +0000 (22:59 -0800)]
[compiler-rt] Set CMP0114 policy for standalone build

Fixes sanitizer-x86_64-linux-qemu bot.

20 months ago[OpenMP] Add map clause to the LIT test on use_device_addr clause
Animesh Kumar [Fri, 30 Sep 2022 17:14:42 +0000 (22:44 +0530)]
[OpenMP] Add map clause to the LIT test on use_device_addr clause

As per the OpenMP Spec, "A list item in a use_device_addr clause
must have a corresponding list item in the device data environment"
. Therefore a `map` clause is added which will make sure that the
respective list items are mapped to the device data environment
before the `use_device_addr` clause is specified. The CHECK lines
are also modified based on this change.

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

20 months ago[libunwind] Check corrupted return address in unwind_phase2 when CET is enabled.
jinge90 [Wed, 9 Nov 2022 06:24:39 +0000 (14:24 +0800)]
[libunwind] Check corrupted return address in unwind_phase2 when CET is enabled.

If CET shadow stack is enabled, we count the number of stack frames skipped
and adjust CET shadow stack based on the number in libunwind unwind_phase2.
At the same time, we can enhance security via comparing the return address in
normal stack against counterpart in CET shadow stack, if they don't match,
it means the return address stored in normal stack has been corrupted and we
will return _URC_FATAL_PHASE2_ERROR in that case.

Reviewed By: MaskRay
Differential Revision: https://reviews.llvm.org/D136667

Signed-off-by: jinge90 <ge.jin@intel.com>
20 months ago[X86] Add In64BitMode requirement for MMXRI
Haohai Wen [Wed, 9 Nov 2022 06:08:01 +0000 (14:08 +0800)]
[X86] Add In64BitMode requirement for MMXRI

REX_W prefix is only encodable in 64bit.

Reviewed By: skan

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

20 months ago[TypePromotion] Replace Zext to Truncate for the case src bitwidth is larger
chenglin.bi [Tue, 8 Nov 2022 21:07:44 +0000 (05:07 +0800)]
[TypePromotion] Replace Zext to Truncate for the case src bitwidth is larger

Fix: https://github.com/llvm/llvm-project/issues/58843

Reviewed By: samtebbs

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

20 months ago[mlir][LLVM] Add base type and flag support to composite type
River Riddle [Tue, 8 Nov 2022 20:46:41 +0000 (12:46 -0800)]
[mlir][LLVM] Add base type and flag support to composite type

This requires defining the DIFlag enum from LLVM.

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

20 months ago[mlir][sparse] fix SSA chain issue in dense2sparse conversion.
Peiming Liu [Wed, 9 Nov 2022 01:42:26 +0000 (01:42 +0000)]
[mlir][sparse] fix SSA chain issue in dense2sparse conversion.

Reviewed By: aartbik

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

20 months ago[mlir][sparse] extend foreach operation to iterator over sparse constant.
Peiming Liu [Wed, 9 Nov 2022 00:43:27 +0000 (00:43 +0000)]
[mlir][sparse] extend foreach operation to iterator over sparse constant.

Reviewed By: aartbik

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

20 months ago[mlir][arith] Add `select` support to WIE
Jakub Kuderski [Wed, 9 Nov 2022 01:34:31 +0000 (20:34 -0500)]
[mlir][arith] Add `select` support to WIE

Reviewed By: antiagainst

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

20 months ago[lld] Fix duplicate word typos. NFC
Fangrui Song [Wed, 9 Nov 2022 01:28:04 +0000 (17:28 -0800)]
[lld] Fix duplicate word typos. NFC

Based on lld/ part of D137338 but reflowed comments.

20 months ago[flang] Fix function result rewrite for CPTR type
Peixin-Qiao [Wed, 9 Nov 2022 01:24:38 +0000 (09:24 +0800)]
[flang] Fix function result rewrite for CPTR type

Not all derived type can be taken as abstract result. The CPTR type
should be treated as return by value so to interoperable with C
functions. Fix the function result rewrite for CPTR type, but it
should be generalized for all derived types. The ABI of
interoperability with C for derived type is architecture dependent,
which should be supported later.

Reviewed By: PeteSteinfeld, jeanPerier

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

20 months ago[mlir][sparse] Factoring out NewCallParams class in SparseTensorConversion.cpp
wren romano [Wed, 9 Nov 2022 00:43:44 +0000 (16:43 -0800)]
[mlir][sparse] Factoring out NewCallParams class in SparseTensorConversion.cpp

The new class helps encapsulate the arguments to `_mlir_ciface_newSparseTensor` so that client code doesn't depend on the details of the API.  (This makes way for the next differential which significantly alters the API.)

Reviewed By: aartbik

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

20 months agoMove the second instance of TestUniqueTypes.py to a unique file
Jim Ingham [Wed, 9 Nov 2022 00:57:57 +0000 (16:57 -0800)]
Move the second instance of TestUniqueTypes.py to a unique file
name.  lldb-dotest.py errors out if two tests have the same filename.

20 months agoDo not build with Werror by default (Bazel build)
Mehdi Amini [Wed, 9 Nov 2022 00:42:41 +0000 (00:42 +0000)]
Do not build with Werror by default (Bazel build)

This seems like an anti-pattern to have -Werror on by default:
it is hostile to user as we can't ensure that all of the supported
platforms are warning-free, and any newer compiler could break the build
for a user who does not have a clear actionable way around it.

Reviewed By: GMNGeoffrey, kuhar

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

20 months agoApply clang-tidy fixes for readability-redundant-smartptr-get in SCF.cpp (NFC)
Mehdi Amini [Thu, 3 Nov 2022 20:29:28 +0000 (20:29 +0000)]
Apply clang-tidy fixes for readability-redundant-smartptr-get in SCF.cpp (NFC)

20 months agoApply clang-tidy fixes for llvm-qualified-auto in SCF.cpp (NFC)
Mehdi Amini [Thu, 3 Nov 2022 20:28:33 +0000 (20:28 +0000)]
Apply clang-tidy fixes for llvm-qualified-auto in SCF.cpp (NFC)

20 months ago[mlir][linalg] Fix vectorization of linalg depthwise conv for int types
Rob Suderman [Tue, 8 Nov 2022 00:18:39 +0000 (16:18 -0800)]
[mlir][linalg] Fix vectorization of linalg depthwise conv for int types

Vectorization of Linalg's depthwise convolution only supports floating
point types. Previous version assumed floating point operations would
work. This version checks whether the computation is integer or floating
point and adjust the inner loop computation.

Reviewed By: hanchung

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

20 months ago[mlir][sparse] add sparse matmul codegen check tests
Aart Bik [Tue, 8 Nov 2022 22:58:45 +0000 (14:58 -0800)]
[mlir][sparse] add sparse matmul codegen check tests

This found an insertion point bug in access pattern expansion

Reviewed By: bixia

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

20 months ago[ObjC][ARC] Fix non-deterministic behavior in ProvenanceAnalysis
Akira Hatanaka [Tue, 8 Nov 2022 22:26:51 +0000 (14:26 -0800)]
[ObjC][ARC] Fix non-deterministic behavior in ProvenanceAnalysis

ProvenanceAnalysis::relatedCheck was giving different answers depending
on the order in which the pointers were passed.

Specifically, it was returning different values when A and B were both
loads and were both referring to identifiable objects, but only one was
used by a store instruction.

20 months ago[mlir][sparse] 3-dimensional sparse tensor insertion test
Aart Bik [Tue, 8 Nov 2022 21:10:54 +0000 (13:10 -0800)]
[mlir][sparse] 3-dimensional sparse tensor insertion test

Reviewed By: Peiming

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

20 months ago[clangd] Avoid escaping issues in system-include-extractor.test
Sam McCall [Tue, 8 Nov 2022 22:48:15 +0000 (23:48 +0100)]
[clangd] Avoid escaping issues in system-include-extractor.test

20 months ago[Driver] Refactor err_drv_unsupported_option_argument call sites to use llvm::opt...
Fangrui Song [Tue, 8 Nov 2022 22:39:09 +0000 (14:39 -0800)]
[Driver] Refactor err_drv_unsupported_option_argument call sites to use llvm::opt::Arg::getSpelling

For `-foo=bar`, getSpelling return `-foo=` which is exactly what we need from
the diagnostic. Drop `-` from the err_drv_unsupported_option_argument template.
This change makes `--` long option diagnostics more convenient.

Reviewed By: lenary

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

20 months ago[lld-macho] Fix bugs around EH_Frame symbols
Jez Ng [Tue, 8 Nov 2022 21:33:32 +0000 (16:33 -0500)]
[lld-macho] Fix bugs around EH_Frame symbols

While extending the map file to cover unwind info, I realized we had two
issues with our EH_Frame symbols:

1. Their size was not set
2. We would create two EH_Frame symbols per frame when we only needed
   one. This was because the Defined constructor would add the symbol
   itself to InputSection::symbols, but we were also manually appending
   the symbol to that same vector.

Note that ld64 prints "CIE" and "FDE for: <function>" instead of just
"EH_Frame", but I'm punting on that for now unless we discover that
users really depend upon it.

Reviewed By: #lld-macho, Roger

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

20 months ago[lld-macho] Emit map file entry for compact unwind info
Jez Ng [Tue, 8 Nov 2022 21:33:28 +0000 (16:33 -0500)]
[lld-macho] Emit map file entry for compact unwind info

Just like ld64 does.

Reviewed By: #lld-macho, Roger

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

20 months ago[lld-macho] Overhaul map file code
Jez Ng [Tue, 8 Nov 2022 21:33:22 +0000 (16:33 -0500)]
[lld-macho] Overhaul map file code

The previous map file code left out was modeled after LLD-ELF's
implementation. However, ld64's map file differs quite a bit from
LLD-ELF's. I've revamped our map file implementation so it is better
able to emit ld64-style map files.

Notable differences:
* ld64 doesn't demangle symbols in map files, regardless of whether
  `-demangle` is passed. So we don't have to bother with
  `getSymbolStrings()`.
* ld64 doesn't emit symbols in cstring sections; it emits just the
  literal values. Moreover, it emits these literal values regardless of
  whether they are labeled with a symbol.
* ld64 emits map file entries for things that are not strictly symbols,
  such as unwind info, GOT entries, etc. That isn't handled in this
  diff, but this redesign makes them easy to implement.

Additionally, the previous implementation sorted the symbols so as to
emit them in address order. This was slow and unnecessary -- the symbols
can already be traversed in address order by walking the list of
OutputSections. This brings significant speedups. Here's the numbers
from the chromium_framework_less_dwarf benchmark on my Mac Pro, with the
`-map` argument added to the response file:

             base            diff           difference (95% CI)
  sys_time   2.922 ± 0.059   2.950 ± 0.085  [  -0.7% ..   +2.5%]
  user_time  11.464 ± 0.191  8.290 ± 0.123  [ -28.7% ..  -26.7%]
  wall_time  11.235 ± 0.175  9.184 ± 0.169  [ -19.3% ..  -17.2%]
  samples    16              23

(It's worth noting that map files are written in parallel with the
output binary, but they often took longer to write than the binary
itself.)

Finally, I did further cleanups to the map-file.s test -- there was no
real need to have a custom-named section. There were also alt_entry
symbol declarations that had no corresponding definition. Either way,
neither custom-named sections nor alt_entry symbols trigger special code
paths in our map file implementation.

Reviewed By: #lld-macho, Roger

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

20 months ago[mlir][sparse] first general insertion implementation with pure codegen
Aart Bik [Fri, 4 Nov 2022 19:23:03 +0000 (12:23 -0700)]
[mlir][sparse] first general insertion implementation with pure codegen

This revision generalizes lowering the sparse_tensor.insert op into actual code that directly operates on the memrefs of a sparse storage scheme. The current insertion strategy does *not* rely on a cursor anymore, with introduces some testing overhead for each insertion (but still proportional to the rank, as before). Over time, we can optimize the code generation, but this version enables us to finish the effort to migrate from library to actual codegen.

Things to do:
(1) carefully deal with (un)ordered and (not)unique
(2) omit overhead when not needed
(3) optimize and specialize
(4) try to avoid the pointer "cleanup" (at HasInserts), and make sure the storage scheme is consistent at every insertion point (so that it can "escape" without concerns).

Reviewed By: Peiming

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

20 months ago[mlir][LLVMDebugTranslation] Move the check for FusedLoc scope
River Riddle [Tue, 8 Nov 2022 03:02:18 +0000 (19:02 -0800)]
[mlir][LLVMDebugTranslation] Move the check for FusedLoc scope

Shift it to where we already check for FusedLoc, which removes the
need to cast multiple times.

20 months ago[mlir][LLVMDebugTranslation] Add inlinedAt to the key when caching locations
River Riddle [Tue, 8 Nov 2022 03:01:14 +0000 (19:01 -0800)]
[mlir][LLVMDebugTranslation] Add inlinedAt to the key when caching locations

This avoids accidentally using the wrong inlined at scope when translating
locations.