platform/upstream/llvm.git
17 months ago[RISCV] Add a test case for a missed PRE oppurtunity when inserting vsetvlis
Philip Reames [Mon, 23 Jan 2023 20:29:36 +0000 (12:29 -0800)]
[RISCV] Add a test case for a missed PRE oppurtunity when inserting vsetvlis

17 months ago[flang] Avoid unnecessary temporaries in ArrayValueCopy.
Slava Zakharin [Sat, 21 Jan 2023 03:58:36 +0000 (19:58 -0800)]
[flang] Avoid unnecessary temporaries in ArrayValueCopy.

Assume no conflict between pointer arrays and arrays without the target
attribute, if the fact of an array not having the target attribute
can be reliably computed.

This change speeds up SPEC CPU2017/527.cam from 2.5k seconds to 880 seconds
on Icelake, and makes further performance investigation easier.

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

17 months ago[docs] Add release notes for news in 16.x done by me, or otherwise relating to MinGW...
Martin Storsjö [Mon, 23 Jan 2023 11:25:55 +0000 (13:25 +0200)]
[docs] Add release notes for news in 16.x done by me, or otherwise relating to MinGW targets

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

17 months ago[mlir][sparse] clean vectorization bail-out for VL=0
Aart Bik [Sat, 21 Jan 2023 21:05:32 +0000 (13:05 -0800)]
[mlir][sparse] clean vectorization bail-out for VL=0

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

Reviewed By: Peiming

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

17 months ago[bazel] Fix layering_check issues of {llvm,clang}:all
Fangrui Song [Mon, 23 Jan 2023 20:08:13 +0000 (12:08 -0800)]
[bazel] Fix layering_check issues of {llvm,clang}:all

17 months ago[flang] Keep polymorphic aspect when lowering intrinsic arguments
Valentin Clement [Mon, 23 Jan 2023 19:23:02 +0000 (20:23 +0100)]
[flang] Keep polymorphic aspect when lowering intrinsic arguments

Make sure the source passed to an intrinsic is still polymorphic when
it is an element of a polymorphic array. This was not handled properly
before.

Reviewed By: PeteSteinfeld

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

17 months ago[mlir][spirv] Move uint asm name test to the proper place
Lei Zhang [Mon, 23 Jan 2023 19:08:06 +0000 (11:08 -0800)]
[mlir][spirv] Move uint asm name test to the proper place

17 months ago[InstCombine] Handle select inst when eliminating constant memcpy
Anshil Gandhi [Mon, 23 Jan 2023 16:19:55 +0000 (09:19 -0700)]
[InstCombine] Handle select inst when eliminating constant memcpy

Allow iterating through SelectInst use of the alloca when
checking if it is only ever overwritten from constant memory.
Recursively determine if the SelectInst is replacable and insert
it into the Worklist if so. Finally, define a new SelectInst to
replace the old one, with both of it's values replaced according
to the WorkMap.

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

17 months ago[AMDGPU] Use more consistemt way to avoid overflow in the scheduler
Stanislav Mekhanoshin [Mon, 23 Jan 2023 18:59:46 +0000 (10:59 -0800)]
[AMDGPU] Use more consistemt way to avoid overflow in the scheduler

Use more consistent way to avoid overflow when calculating SGPR
and VGPR pressure limits.

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

17 months ago[llvm] Fix warnings
Kazu Hirata [Mon, 23 Jan 2023 18:57:56 +0000 (10:57 -0800)]
[llvm] Fix warnings

This patch fixes:

  llvm/lib/IR/DataLayout.cpp:942:13: warning: unused variable ‘VecTy’
  [-Wunused-variable]

  llvm/lib/Transforms/IPO/OpenMPOpt.cpp:2899:27: warning: unused
  variable ‘MI’ [-Wunused-variable]

17 months ago[TableGen] Avoid repeated lookups of Uses and Defs records. NFC.
Jay Foad [Mon, 23 Jan 2023 18:21:04 +0000 (18:21 +0000)]
[TableGen] Avoid repeated lookups of Uses and Defs records. NFC.

17 months agoSilence an MSVC "not all control paths return" warning; NFC
Aaron Ballman [Mon, 23 Jan 2023 18:43:41 +0000 (13:43 -0500)]
Silence an MSVC "not all control paths return" warning; NFC

17 months agoRun cmdline address expressions through ABI's FixAddress
Jason Molenda [Mon, 23 Jan 2023 18:42:31 +0000 (10:42 -0800)]
Run cmdline address expressions through ABI's FixAddress

On systems like ARM, where the non-addressable bits of a pointer
value may be used for metadata (ARMv8.3 pointer authentication, or
Type Byte Ignore), those bits need to be cleared before the address
points to a valid memory location.  Add a call to the target's ABI
to clear those from address expression arguments to the lldb
commands (e.g. `disassemble -a`).

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

17 months ago[AMDGPU] Tune scheduler on GFX10 and GFX11 for regions with spilling
Stanislav Mekhanoshin [Mon, 16 Jan 2023 23:17:06 +0000 (15:17 -0800)]
[AMDGPU] Tune scheduler on GFX10 and GFX11 for regions with spilling

Unlike older ASICs GFX10+ have a lot of VGPRs. Therefore, it is possible
to achieve high occupancy even with all or almost all addressable VGPRs
used. Our scheduler was never tuned for this scenario. The VGPR Critical
Limit threshold always comes very high, even if maximum occupancy is
targeted. For example on gfx1100 it is set to 192 registers even with
the requested occupancy 16. As a result scheduler starts prioritizing
register pressure reduction very late and we easily end up spilling.

This patch makes VGPR critical limit similar to what we would have on
pre-gfx10 targets with much more limited VGPR budget while still trying
to maintain occupancy as it does now.

Pre-gfx10 ASICs shall not be affected as the limit shall be the same
as before, and on gfx10+ it shall only affect regions where we have
to spill.

Fixes: SWDEV-377300

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

17 months ago[AArch64] Remove AES, SHA2, SHA3 and SM4 features from armv8.6-a+
David Green [Mon, 23 Jan 2023 18:39:17 +0000 (18:39 +0000)]
[AArch64] Remove AES, SHA2, SHA3 and SM4 features from armv8.6-a+

The Armv8.6-a and later architecture definitions included AES, SHA2,
SHA3 and SM4, but this did not have an effect when specifying
-march=armv8.6-a. The did not set preprocessor features
(https://godbolt.org/z/1YKad6M8e) or enable the relevant instructions
(like eor3 from sha3: https://godbolt.org/z/vY9v4MqvG). Similarly
architectures armv8 to armv8.5 defined +crypto, but this did not effect
the -march's, only the -mcpu with those architectures. I believe this
was working as intended.

After D141411 we now add the default features for architectures except
for +crypto, which has had the effect of enabling aes/sha2/sha3/sm4 when
-march=armv8.6-a is used. This patch removed those crypto features
again, going back to how things were before. It also removes the
AEK_CRYPTO feature from lower architecture levels, moving it to the cpus
that use it. This shouldn't make any changes, but a few extra tests have
been added for preprocessor features that have improved since llvm 15.

The -mcpu=ampere1 cpu is the only armv8.6+ cpu at present. For that, the
AES, SHA2 and SHA3 features have been re-added to the CPU definition to
keep it in-line with the gcc definition from
https://github.com/gcc-mirror/gcc/commit/db2f5d661239737157cf131de7d4df1c17d8d88d.

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

17 months ago[AArch64] Function multi-versioning release notes added. NFC.
Pavel Iliin [Fri, 20 Jan 2023 23:31:53 +0000 (23:31 +0000)]
[AArch64] Function multi-versioning release notes added. NFC.

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

17 months ago[tsan] Always initialize tsan when building shared lib
Han Zhu [Fri, 13 Jan 2023 20:18:32 +0000 (12:18 -0800)]
[tsan] Always initialize tsan when building shared lib

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

17 months agoRevert "[AArch64] Function multi-versioning release notes added. NFC."
Pavel Iliin [Mon, 23 Jan 2023 18:22:20 +0000 (18:22 +0000)]
Revert "[AArch64] Function multi-versioning release notes added. NFC."

This reverts commit 5474d7d932710c260f03ce6c6387ec9d82bd10e2.
Wrong differential revision link was used.

17 months ago[Clang] Fix a Wbitfield-enum-conversion warning in DirectoryLookup.h
Shivam Gupta [Mon, 23 Jan 2023 18:18:37 +0000 (23:48 +0530)]
[Clang] Fix a Wbitfield-enum-conversion warning in DirectoryLookup.h

When compiling clang/Lex/DirectoryLookup.h with option -Wbitfield-enum-conversion, we get the following warning:

DirectoryLookup.h:77:17: warning:
      bit-field 'DirCharacteristic' is not wide enough to store all enumerators of
      'CharacteristicKind' [-Wbitfield-enum-conversion]
      : u(Map), DirCharacteristic(DT), LookupType(LT_HeaderMap),

DirCharacteristic is a bitfield with 2 bits (4 values)
  /// DirCharacteristic - The type of directory this is: this is an instance of
  /// SrcMgr::CharacteristicKind.
  unsigned DirCharacteristic : 2;

Whereas SrcMgr::CharacterKind is an enum with 5 values:
enum CharacteristicKind {
  C_User,
  C_System,
  C_ExternCSystem,
  C_User_ModuleMap,
  C_System_ModuleMap
};

Solution is to increase DirCharacteristic bitfield from 2 to 3.
Patch by Dimitri van Heesch

Reviewed By: aaron.ballman

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

17 months ago[RISCV] Move Processors and Features from RISCV.td to their own files.
Craig Topper [Mon, 23 Jan 2023 18:03:06 +0000 (10:03 -0800)]
[RISCV] Move Processors and Features from RISCV.td to their own files.

This reduces RISCV.td to mainly being a top level include file.

Reviewed By: asb, luismarques

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

17 months agoMark BuiltinHeaders.def as textual
Adrian Prantl [Mon, 23 Jan 2023 18:14:15 +0000 (10:14 -0800)]
Mark BuiltinHeaders.def as textual

17 months ago[AArch64] Function multi-versioning release notes added. NFC.
Pavel Iliin [Fri, 20 Jan 2023 23:31:53 +0000 (23:31 +0000)]
[AArch64] Function multi-versioning release notes added. NFC.

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

17 months agoRevert "[lldb] Remove timer from SBModule copy ctor"
Dave Lee [Mon, 23 Jan 2023 17:51:43 +0000 (09:51 -0800)]
Revert "[lldb] Remove timer from SBModule copy ctor"

This reverts commit 84c6129c943135e2c32b9254f08d0a2e7b21116a.

17 months ago[AArch64][SME2] Add Multi-vector saturating extract narrow intrinsics
Caroline Concatto [Mon, 23 Jan 2023 17:15:34 +0000 (17:15 +0000)]
[AArch64][SME2] Add Multi-vector saturating extract narrow intrinsics

Add the following intrinsic:
  SQCVT
  SQCVTU
  UQCVT

NOTE: These intrinsics are still in development and are subject to future changes.

Reviewed By: kmclaughlin

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

17 months ago[SCCPSolver] Move helper functions inside SCCPSolver (NFC).
Florian Hahn [Mon, 23 Jan 2023 17:41:12 +0000 (17:41 +0000)]
[SCCPSolver] Move helper functions inside SCCPSolver (NFC).

This patch moves a couple of helper functions from the global llvm::
namespace into the SCCPSolver class. This reduces the need for separate
SCCPSolver arguments and also limits the scope of those functions that
have quite generic names.

(The remaining isConstant and isOverdefined should ideally be removed)

Reviewed By: nikic

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

17 months ago[SCCP] Auto-generate check lines for ip-ranges-select.ll.
Florian Hahn [Mon, 23 Jan 2023 17:40:30 +0000 (17:40 +0000)]
[SCCP] Auto-generate check lines for ip-ranges-select.ll.

17 months ago[libc++][doc] Fixes the usage of improper markup.
Mark de Wever [Mon, 23 Jan 2023 17:26:18 +0000 (18:26 +0100)]
[libc++][doc] Fixes the usage of improper markup.

17 months ago[AArch64][SME2] Add multi-vector convert to/from floating-point intrinsic
Caroline Concatto [Mon, 23 Jan 2023 16:25:07 +0000 (16:25 +0000)]
[AArch64][SME2] Add multi-vector convert to/from floating-point intrinsic

Add the following intrinsic:

  FCVT
  BFCVT
  FCVTZS
  FCVTZU
  SCVTF
  UCVTF

This patch also adds SelectCVTIntrinsic to handle the cases when the
intrinsic returns multiple (two or four) outputs

NOTE: These intrinsics are still in development and are subject to future changes.

Reviewed By: kmclaughlin

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

17 months agoAdd support for clang-cl's option `-fexcess-precision`.
Zahira Ammarguellat [Mon, 23 Jan 2023 15:40:10 +0000 (10:40 -0500)]
Add support for clang-cl's option `-fexcess-precision`.

This option is useful for clang and clang-cl.

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

17 months ago[mlir] support unsigned int in mlir::spirv::ConstantOp::getAsmResultNames
Xiang Li [Sun, 22 Jan 2023 03:24:41 +0000 (22:24 -0500)]
[mlir] support unsigned int in mlir::spirv::ConstantOp::getAsmResultNames

Fixes #60184  https://github.com/llvm/llvm-project/issues/60184

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

17 months ago[libc][NFC] Reduce CMake configuration time
Guillaume Chatelet [Mon, 23 Jan 2023 16:52:46 +0000 (16:52 +0000)]
[libc][NFC] Reduce CMake configuration time

This patch reduces CMake configuration time drastically by removing a non-linear behavior.
Time to execute CMake configure step goes from 45s to 15s.

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

17 months ago[AArch64][Clang] Adjust default features for v8.9-A/v9.4-A in clang driver
Lucas Prates [Wed, 21 Dec 2022 16:45:38 +0000 (16:45 +0000)]
[AArch64][Clang] Adjust default features for v8.9-A/v9.4-A in clang driver

Update the clang driver to include the following features as default for
the v8.9-A/v9.4-A architecture versions:

* FEAT_SPECRES2
* FEAT_CSSC
* FEAT_RASv2

Patch by Sam Elliott.

Reviewed By: lenary, tmatheson

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

17 months ago[AArch64] Add command line support for v9.4-A's Instrumentation Extension
Lucas Prates [Thu, 19 Jan 2023 14:46:06 +0000 (14:46 +0000)]
[AArch64] Add command line support for v9.4-A's Instrumentation Extension

This introduces command line support (`+ite`) for the v9.4-A's
Instrumentation Extension (FEAT_ITE).

Patch by Son Tuan Vu.

Reviewed By: lenary, tmatheson

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

17 months ago[SCCP] Add initial tests for NUW/NSW inference.
Florian Hahn [Mon, 23 Jan 2023 16:14:56 +0000 (16:14 +0000)]
[SCCP] Add initial tests for NUW/NSW inference.

17 months ago[docs] add early Arm arch support improvements to release notes
Ties Stuij [Mon, 23 Jan 2023 16:08:28 +0000 (16:08 +0000)]
[docs] add early Arm arch support improvements to release notes

Reviewed By: peter.smith

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

17 months ago[mlir][MemRefToLLVM] Remove the code for lowering collaspe/expand_shape
Quentin Colombet [Mon, 23 Jan 2023 10:37:02 +0000 (10:37 +0000)]
[mlir][MemRefToLLVM] Remove the code for lowering collaspe/expand_shape

collapse/expand_shape are supposed to be expanded before we hit the
lowering code.
The expansion is done with the pass called expand-strided-metadata.

This patch is NFC in spirit but not in practice because
expand-strided-metadata won't try to accomodate for "invalid" strides
for dynamic sizes that are 1 at runtime.

The previous code was broken in that respect too, but differently: it
handled only the case of row-major layouts.
That whole part is being reworked separately.

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

17 months agobazel: adapt for https://github.com/llvm/llvm-project/commit/a4699a43e42615281c96599d...
Krasimir Georgiev [Mon, 23 Jan 2023 15:38:46 +0000 (15:38 +0000)]
bazel: adapt for https://github.com/llvm/llvm-project/commit/a4699a43e42615281c96599d20977cabf10bfb9c

17 months ago[AArch64] Check 128-bit Sysreg Builtins
Archibald Elliott [Tue, 20 Dec 2022 16:08:06 +0000 (16:08 +0000)]
[AArch64] Check 128-bit Sysreg Builtins

This patch contains several related changes:

1. We move to using TARGET_BUILTIN for the 128-bit system register
   builtins to give better error messages when d128 has not been
   enabled, or has been enabled in a per-function manner.

2. We now validate the inputs to the 128-bit system register builtins,
   like we validate the other system register builtins.

3. We update the list of named PSTATE accessors for MSR (immediate), and
   now correctly enforce the expected ranges of the immediates. There is
   a long comment about how we chose to do this to comply with the ACLE
   when most of the PSTATE accessors for MSR (immediate) have aliased
   system registers for MRS/MSR which expect different values. In short,
   the MSR (immediate) names are prioritised, rather than falling-back
   to the register form when the value is out of range.

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

17 months ago[mlir] fix outdated assert in affine symbol verification
Alex Zinenko [Fri, 20 Jan 2023 13:42:09 +0000 (13:42 +0000)]
[mlir] fix outdated assert in affine symbol verification

The verification of affine value classification for symbols was
expecting, incorrectly, that the dimension operand of `memref.dim` was
being produced by a constant-like operation. This is legacy of the
dimension being an attribute originally, and was never updated after it
was switched to be an operation. Treat such cases conservatively and
classify the value as non-symbol.

A more advanced version could attempt to check that the value would be a
valid symbol for all possible values the dimension attribute could take,
but this does not seem immediately useful.

Fixes #59993.

Reviewed By: bondhugula

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

17 months ago[mlir] fix side effects for transform.AlternativesOp
Alex Zinenko [Fri, 20 Jan 2023 12:17:59 +0000 (12:17 +0000)]
[mlir] fix side effects for transform.AlternativesOp

It should have an "Allocate" effect on entry block arguments of all
regions in addition to consuming the operand.

Also relax the assertion in transform-dialect-check-uses until we can
properly support region-based control flow.

Fixes #60075.

Reviewed By: springerm

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

17 months ago[mlir] add RemoveConstantIfCondition to populateOpenACCToSCFConversionPatterns
Xiang Li [Sat, 21 Jan 2023 16:36:05 +0000 (11:36 -0500)]
[mlir] add RemoveConstantIfCondition to populateOpenACCToSCFConversionPatterns

Fixes #60058  https://github.com/llvm/llvm-project/issues/60058
It hit assert when legalizePatternResult on success of ExpandIfCondition which did nothing just return success when if condition is constant.

Added RemoveConstantIfCondition to remove the if cond by getCanonicalizationPatterns.
Also remove the check for constant if cond in ExpandIfCondition and
change check ifCond to assert because only op with ifCond will need legalize in ConvertOpenACCToSCFPass

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

17 months ago[AArch64] Support v8.9-A/v9.4-A in .arch_extension directive
Lucas Prates [Wed, 21 Dec 2022 16:22:35 +0000 (16:22 +0000)]
[AArch64] Support v8.9-A/v9.4-A in .arch_extension directive

This adds support for the v8.9-A/v9.4-A architectural extensions to be
used in .arch_extension assembly directives.

Patch by Sam Elliott.

Reviewed By: lenary, tmatheson

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

17 months ago[AArch64] Add missing system register for v8.9-A/v9.4-A Permission Indirection Extension
Lucas Prates [Tue, 20 Dec 2022 17:34:01 +0000 (17:34 +0000)]
[AArch64] Add missing system register for v8.9-A/v9.4-A Permission Indirection Extension

This adds support for the missing `PIRE0_EL12` system register, part of
v8.9-A/v9.4-A's Permission Indirection Extension.

Patch by Son Tuan Vu.

Reviewed By: tmatheson

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

17 months ago[Libomptarget][NFC] Address a few warnings in libomptarget
Joseph Huber [Mon, 23 Jan 2023 14:55:35 +0000 (08:55 -0600)]
[Libomptarget][NFC] Address a few warnings in libomptarget

Summary:
Fix a few minor warnings that show up in `libomptarget`.

17 months ago[Libomptarget] Include "hsa/hsa.h" instead
Joseph Huber [Mon, 23 Jan 2023 14:42:36 +0000 (08:42 -0600)]
[Libomptarget] Include "hsa/hsa.h" instead

Summary:
Recently AMD moved the "hsa.h" include to "hsa/hsa.h". This causes
several warning. This patch checks to see if we can include that one
instead. This should hopefully keep things backwards compatible while
silencing the warnings.

17 months ago[Libomptarget][NFC] Silence unknown CUDA version warnings
Joseph Huber [Mon, 23 Jan 2023 14:13:30 +0000 (08:13 -0600)]
[Libomptarget][NFC] Silence unknown CUDA version warnings

Summary:
These warnings are very loud considering they get repeated at least 30
times each build. This patch just silences them.

17 months ago[llvm][tablegen][jupyter] Fixup README
David Spickett [Mon, 23 Jan 2023 14:47:56 +0000 (14:47 +0000)]
[llvm][tablegen][jupyter] Fixup README

Make the first line a title and relative link
to the Markdown of the demo notebook.

17 months ago[Clang[NFC] Fix bitmask for NullabilityPayload in Types.h
Shivam Gupta [Mon, 23 Jan 2023 12:46:21 +0000 (18:16 +0530)]
[Clang[NFC] Fix bitmask for NullabilityPayload in Types.h

Found by PVS-Studio - https://pvs-studio.com/en/blog/posts/cpp/1003/, N37.

The code you is using the bit mask NullabilityKindMask which is 0x3
(00000011 in binary) to clear the bits in the NullabilityPayload variable.
Since NullabilityPayload is a 64-bit variable and NullabilityKindMask is
only a 8-bit variable(0x3), it will only affect the last 8 bits of the
variable. The higher 56 bits will remain unchanged.

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

17 months ago[MC] Define and use MCInstrDesc implicit_uses and implicit_defs. NFC.
Jay Foad [Wed, 11 Jan 2023 12:20:02 +0000 (12:20 +0000)]
[MC] Define and use MCInstrDesc implicit_uses and implicit_defs. NFC.

The new methods return a range for easier iteration. Use them everywhere
instead of getImplicitUses, getNumImplicitUses, getImplicitDefs and
getNumImplicitDefs. A future patch will remove the old methods.

In some use cases the new methods are less efficient because they always
have to scan the whole uses/defs array to count its length, but that
will be fixed in a future patch by storing the number of implicit
uses/defs explicitly in MCInstrDesc. At that point there will be no need
to 0-terminate the arrays.

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

17 months ago[flang] Add conditional rebox when passing fir.box to optional fir.class
Valentin Clement [Mon, 23 Jan 2023 14:41:23 +0000 (15:41 +0100)]
[flang] Add conditional rebox when passing fir.box to optional fir.class

When a `!fir.box<>` is passed as an actual argument to an optional
`!fir.class<>` dummy it needs a `fir.rebox` in order to propagate
the dynamic type information.
The `fir.rebox` needs to happen only on present argument.

Reviewed By: jeanPerier

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

17 months ago[SCCP] Regenerate check lines for some tests.
Florian Hahn [Mon, 23 Jan 2023 14:29:33 +0000 (14:29 +0000)]
[SCCP] Regenerate check lines for some tests.

17 months ago[DAG] visitAnd - fold (and (ext (and V, c1)), c2) -> (and (ext V), (and c1, (ext...
Simon Pilgrim [Mon, 23 Jan 2023 14:17:56 +0000 (14:17 +0000)]
[DAG] visitAnd - fold (and (ext (and V, c1)), c2) -> (and (ext V), (and c1, (ext c2)))

Also, move the XformToShuffleWithZero and combineCarryDiamond folds later after some of the more basic canonicalizations/combines (such as this) have had a chance to occur

Fixes the v8i1-masks.ll regression from D127115

17 months ago[include-cleaner] Ranking of providers based on hints
Kadir Cetinkaya [Tue, 29 Nov 2022 14:49:32 +0000 (15:49 +0100)]
[include-cleaner] Ranking of providers based on hints

Introduce signals to rank providers of a symbol.

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

17 months ago[LLVM][TableGen] Support combined cells in jupyter kernel
David Spickett [Tue, 23 Aug 2022 10:36:46 +0000 (11:36 +0100)]
[LLVM][TableGen] Support combined cells in jupyter kernel

This changes the default mode to cache the code blocks we're
asked to compile until we see the new `%reset` magic to clear that cache.

This means that if you run several cells in sequence, at the end you're
compiling the code from all the cells at once.

This emulates what the ipython kernel does where it uses a persistent
interpreter state by default.

`%reset` will only be acted on when it's in the cell we're asked to run
(the newest code).

`%args` we will use the most recent value we have cached.

The example notebook has been updated to explain that.

Depends on D132378

Reviewed By: jpienaar

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

17 months ago[LLVM][TableGen] Add jupyter kernel for llvm-tblgen
David Spickett [Mon, 22 Aug 2022 14:22:07 +0000 (15:22 +0100)]
[LLVM][TableGen] Add jupyter kernel for llvm-tblgen

This is based on the MLIR opt kernel:
https://github.com/llvm/llvm-project/tree/main/mlir/utils/jupyter

The inent of this is to enable experimentation and the creation
of interactive tutorials for the basics of tablegen.

Noteable changes from that:
* Removed the codemirror mode settings since those won't exist
  for tablegen.
* Added "%args" "magic" to control arguments sent to llvm-tblgen.

(magics are directives, see
https://ipython.readthedocs.io/en/stable/interactive/magics.html)

For example the following:
```
%args --print-detailed-records
class Stuff {}

def water_bottle : Stuff {}
```
Produces:
```
DETAILED RECORDS for file -

-------------------- Global Variables (0) --------------------

-------------------- Classes (1) --------------------

Stuff  |<stdin>:1|
  Template args: (none)
  Superclasses: (none)
  Fields: (none)

-------------------- Records (1) --------------------

water_bottle  |<stdin>:3|
  Superclasses: Stuff
  Fields: (none)
```

Reviewed By: jpienaar, awarzynski

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

17 months agoFix MSVC "not all control paths return a value" warning. NFC.
Simon Pilgrim [Mon, 23 Jan 2023 14:08:20 +0000 (14:08 +0000)]
Fix MSVC "not all control paths return a value" warning. NFC.

17 months ago[NFC][Instcombine] More trunc fp-to-int tests.
Samuel Parker [Mon, 23 Jan 2023 14:10:47 +0000 (14:10 +0000)]
[NFC][Instcombine] More trunc fp-to-int tests.

17 months ago[VPlan] Switch default graph traits to be recursive, update VPDomTree.
Florian Hahn [Mon, 23 Jan 2023 14:00:42 +0000 (14:00 +0000)]
[VPlan] Switch default graph traits to be recursive, update VPDomTree.

This updates the GraphTraits specialization for VPBlockBase to recurse
through VPRegionBlocks.

This in turn enables using VPDominatorTree to query dominance between
any block in a plan. This should enable additional use cases, including
improvements to def-use verification and porting IR-based transforms
that rely on the dominator tree.

Specifically, this change means that for regions, the entry and exit
blocks dominate the successors of the region.

Depends on D140512 and D142162.

Reviewed By: Ayal

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

17 months ago[clang] Optimize clang::Builtin::Info density
serge-sans-paille [Tue, 17 Jan 2023 09:34:59 +0000 (10:34 +0100)]
[clang] Optimize clang::Builtin::Info density

Reorganize clang::Builtin::Info to have them naturally align on 4 bytes
boundaries.

Instead of storing builtin headers as a straight char pointer, enumerate
them and store the enum. It allows to use a small enum instead of a
pointer to reference them.

On a 64 bit machine, this brings sizeof(clang::Builtin::Info) from 56
down to 48 bytes.

On a release build on my Linux 64 bit machine, it shrinks the size of
libclang-cpp.so by 193kB.

The impact on performance is negligible in terms of instruction count,
but the wall time seems better, see
https://llvm-compile-time-tracker.com/compare.php?from=b3d8639f3536a4876b511aca9fb7948ff9266cee&to=a89b56423f98b550260a58c41e64aff9e56b76be&stat=task-clock

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

17 months ago[NFC][AArch64] Rename SVE2p1 sclamp and uclamp tests
David Sherwood [Mon, 23 Jan 2023 13:07:18 +0000 (13:07 +0000)]
[NFC][AArch64] Rename SVE2p1 sclamp and uclamp tests

Both sclamp and uclamp are part of the SVE2p1 feature so I've
renamed the tests accordingly:

sve2-intrinsics-sclamp.ll -> sve2p1-intrinsics-sclamp.ll
sve2-intrinsics-uclamp.ll -> sve2p1-intrinsics-uclamp.ll

17 months ago[Clang][NFC] Remove documentation and mentions of deleted tools
Joseph Huber [Mon, 23 Jan 2023 13:13:33 +0000 (07:13 -0600)]
[Clang][NFC] Remove documentation and mentions of deleted tools

Summary:
These tools were deleted since LLVM 15. They are no longer present so we
should damnatio memoriae.

17 months ago[Clang] Remove flaky test line from linker wrapper test
Joseph Huber [Mon, 23 Jan 2023 13:06:53 +0000 (07:06 -0600)]
[Clang] Remove flaky test line from linker wrapper test

Summary:
This test is a little flaky and isn't as necessary anymore now that we
only generate one temporary file.

17 months ago[InstCombine] Make worklist check in memcpy from constant fold more precise
Nikita Popov [Mon, 23 Jan 2023 13:14:19 +0000 (14:14 +0100)]
[InstCombine] Make worklist check in memcpy from constant fold more precise

The phi operands need to be either in the worklist or be the
alloca itself, because that one does not require replacement.

17 months ago[AArch64][SME2] MOVA tile-to-vector and vector-to-tile should not accept VG suffix
Sander de Smalen [Thu, 12 Jan 2023 12:30:12 +0000 (12:30 +0000)]
[AArch64][SME2] MOVA tile-to-vector and vector-to-tile should not accept VG suffix

Reviewed By: MattDevereau

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

17 months ago[AArch64][SME2] NFC: Simplify multiclasses for mova/movaz.
Sander de Smalen [Fri, 20 Jan 2023 11:46:49 +0000 (11:46 +0000)]
[AArch64][SME2] NFC: Simplify multiclasses for mova/movaz.

Reviewed By: CarolineConcatto

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

17 months ago[AArch64][SME] Allow predicate-as-counter operands for psel
Sander de Smalen [Thu, 12 Jan 2023 13:03:44 +0000 (13:03 +0000)]
[AArch64][SME] Allow predicate-as-counter operands for psel

The specification says:

  For programmer convenience, an assembler must also accept
  predicate-as-counter register names for the destination predicate
  register and the first source predicate register

Reviewed By: CarolineConcatto, MattDevereau

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

17 months ago[BOLT] Fix build error after D142214
Jay Foad [Mon, 23 Jan 2023 12:54:38 +0000 (12:54 +0000)]
[BOLT] Fix build error after D142214

17 months ago[Test] Add test exercising scenarios of widening into loop-invariant condition
Max Kazantsev [Mon, 23 Jan 2023 12:24:41 +0000 (19:24 +0700)]
[Test] Add test exercising scenarios of widening into loop-invariant condition

17 months ago[Test] Add test for PR60234
Max Kazantsev [Mon, 23 Jan 2023 12:19:40 +0000 (19:19 +0700)]
[Test] Add test for PR60234

https://github.com/llvm/llvm-project/issues/60234 explains how widening
of a branch by loop-invariant condition is causing a miscompile.

17 months ago[AArch64][SVE2p1] Add SVE2.1 fclamp intrinsic
David Sherwood [Tue, 17 Jan 2023 15:44:09 +0000 (15:44 +0000)]
[AArch64][SVE2p1] Add SVE2.1 fclamp intrinsic

Adds an intrinsic for the following instruction:

* fclamp

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

17 months ago[X86][ABI] Don't preserve return regs for preserve_all/preserve_most CCs
Anton Bikineev [Wed, 4 Jan 2023 23:51:21 +0000 (00:51 +0100)]
[X86][ABI] Don't preserve return regs for preserve_all/preserve_most CCs

Currently both calling conventions preserve registers that are used to
store a return value. This causes the returned value to be lost:

  define i32 @bar() {
    %1 = call preserve_mostcc i32 @foo()
    ret i32 %1
  }

  define preserve_mostcc i32 @foo() {
    ret i32 2
    ; preserve_mostcc will restore %rax,
    ; whatever it was before the call.
  }

This contradicts the current documentation (preserve_allcc "behaves
identical to the `C` calling conventions on how arguments and return
values are passed") and also breaks [[clang::preserve_most]].

This change makes CSRs be preserved iff they are not used to store a
return value (e.g. %rax for scalars, {%rax:%rdx} for __int128, %xmm0
for double). For void functions no additional registers are
preserved, i.e. the behaviour is backward compatible with existing
code.

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

17 months ago[LLDB] Fix build error after D142214
Jay Foad [Mon, 23 Jan 2023 12:27:50 +0000 (12:27 +0000)]
[LLDB] Fix build error after D142214

17 months ago[IR] Avoid creation of GEPs into vectors (in one place)
Jannik Silvanus [Thu, 19 Jan 2023 15:04:45 +0000 (16:04 +0100)]
[IR] Avoid creation of GEPs into vectors (in one place)

The method DataLayout::getGEPIndexForOffset(Type *&ElemTy, APInt &Offset)
allows to generate GEP indices for a given byte-based offset.
This allows to generate "natural" GEPs using the given type structure
if the byte offset happens to match a nested element object.

With opaque pointers and a general move towards byte-based GEPs [1],
this function may be questionable in the future.

This patch avoids creation of GEPs into vectors in routines that use
DataLayout::getGEPIndexForOffset by not returning indices in that case.

The reason is that A) GEPs into vectors have been discouraged for a long
time [2], and B) that GEPs into vectors are currently broken if the element
type is overaligned [1]. This is also demonstrated by a lit test where
previously InstCombine replaced valid loads by poison. Note that
the result of InstCombine on that test is *still* invalid, because
padding bytes are assumed.
Moreover, GEPs into vectors may be outright forbidden in the future [1].

[1]: https://discourse.llvm.org/t/67497
[2]: https://llvm.org/docs/GetElementPtr.html

The test case is new. It will be precommitted if this patch is accepted.

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

17 months ago[Transforms] Add lit test for instcombine on load into vector of overaligned elements.
Jannik Silvanus [Thu, 19 Jan 2023 17:56:11 +0000 (18:56 +0100)]
[Transforms] Add lit test for instcombine on load into vector of overaligned elements.

The result is currently broken in two ways:

 - Valid loads are replaced by poison
 - An array-like layout with padding bytes is assumed

This commit serves as precommit for a patch that addresses the first issue.
The second issue will remain a TODO.

Contributors:
    Sebastian Neubauer <sebastian.neubauer@amd.com>

17 months ago[DebugInfo][CSInfo] Don't use clobbered registers as locations
Jeremy Morse [Mon, 23 Jan 2023 12:08:34 +0000 (12:08 +0000)]
[DebugInfo][CSInfo] Don't use clobbered registers as locations

When finding call-site argument locations, don't consider registers to be
location candidates if they will be clobbered between the copy to/from them
and call site. Doing so would present overwritten register values as entry
values in called functions.

This patch adds a collection of register units defined as we walk back from
the call site, and prevents the acceptance of a call-site parameter
location if it will be clobbered on that path.

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

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

17 months ago[InstCombine] Add additional memcpy from constant test with phi (NFC)
Nikita Popov [Mon, 23 Jan 2023 12:10:42 +0000 (13:10 +0100)]
[InstCombine] Add additional memcpy from constant test with phi (NFC)

This is the case that is safe to handle, but currently isn't.

17 months ago[MLIR][OpenMP] Added target data, exit data, and enter data operation definition...
Akash Banerjee [Fri, 13 Jan 2023 15:45:06 +0000 (15:45 +0000)]
[MLIR][OpenMP] Added target data, exit data, and enter data operation definition for MLIR

This includes a basic implementation for the OpenMP 5.1 Target Data, Target Exit Data and Target Enter Data constructs
operation.

TODO:
  - Depend clause support for Target Enter and Exit Data.
  - Mapper and Iterator value support for Map Type Modifiers.
  - Verifier for the operations.

Co-authored-by: abidmalikwaterloo <amalik@bnl.gov>
Co-authored-by: raghavendra <Raghu.Maddhipatla@amd.com>
Differential Revision: https://reviews.llvm.org/D131915

17 months ago[X86] Add test coverage for and(ext(and(x, c1)),c2) patterns
Simon Pilgrim [Mon, 23 Jan 2023 12:05:49 +0000 (12:05 +0000)]
[X86] Add test coverage for and(ext(and(x, c1)),c2) patterns

This shows the failure to merge to and(ext(x),and(c1,ext(c2))) if the outer and has already been folded to a clear shuffle mask

Similar to the v8i1-masks.ll from regression D127115

17 months ago[MC] Do not copy MCInstrDescs. NFC.
Jay Foad [Fri, 13 Jan 2023 17:06:41 +0000 (17:06 +0000)]
[MC] Do not copy MCInstrDescs. NFC.

Avoid copying MCInstrDesc instances because a future patch will change
them to find their implicit operands and operand info array based on
their own "this" pointer, so it will only work for MCInstrDescs in the
TargetInsts table, not for a copy of an MCInstrDesc at a different
address.

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

17 months agoRevert "Add clang_CXXMethod_isExplicit to libclang"
Luca Di Sera [Mon, 23 Jan 2023 11:52:36 +0000 (12:52 +0100)]
Revert "Add clang_CXXMethod_isExplicit to libclang"

This is currently failing the build due to some test errors.

This reverts commit ddbe14084da7f31d4b4b53e13d9f868d759f3673.

17 months ago[clang] Fix the location of UsingTypeLoc.
Haojian Wu [Thu, 19 Jan 2023 13:44:14 +0000 (14:44 +0100)]
[clang] Fix the location of UsingTypeLoc.

It is revealed by the https://reviews.llvm.org/D141280.

```
namespace ns { class Foo {}; }
using ns::Foo;

// Before the fix, the Location of UsingTypeLoc Foo points to the
token "class", slection on ^Foo will result in the VarDecl abc.
class Foo abc;

```

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

17 months agoFix `FindSingleBitChange` to handle NOT(V) where V is not an Instruction
Noah Goldstein [Mon, 23 Jan 2023 11:35:26 +0000 (03:35 -0800)]
Fix `FindSingleBitChange` to handle NOT(V) where V is not an Instruction

Was previously buggy to assume that NOT'd Value was always an
instruction. If the NOT'd value is not an Instruction, we should just
return as its either a constant, in which can we will re-run the logic
after constant-folding, or its a type we can't evaluate anyways.

This is a follow up to: `D140939`

Reviewed By: pengfei, RKSimon

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

17 months ago[MC] Make more use of MCInstrDesc::operands. NFC.
Jay Foad [Fri, 13 Jan 2023 13:56:47 +0000 (13:56 +0000)]
[MC] Make more use of MCInstrDesc::operands. NFC.

Change MCInstrDesc::operands to return an ArrayRef so we can easily use
it everywhere instead of the (IMHO ugly) opInfo_begin and opInfo_end.
A future patch will remove opInfo_begin and opInfo_end.

Also use it instead of raw access to the OpInfo pointer. A future patch
will remove this pointer.

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

17 months ago[AArch64] Make CNTPCTSS_EL0 and CNTVCTSS_EL0 system registers read-only
Lucas Prates [Tue, 20 Dec 2022 17:19:30 +0000 (17:19 +0000)]
[AArch64] Make CNTPCTSS_EL0 and CNTVCTSS_EL0 system registers read-only

The `CNTPCTSS_EL0` and `CNTVCTSS_EL0` system registers, part of
Armv8.6-A's Enhanced Counter Virtualization extension (FEAT_ECV), are
described as read-only in the Arm ARM. This updates their implementation
to match the spec.

Original patch by Simon Tatham.

Reviewed By: lenary

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

17 months ago[ARM] Don't emit Arm speculation hardening thunks under Thumb and vice-versa
David Green [Mon, 23 Jan 2023 11:22:11 +0000 (11:22 +0000)]
[ARM] Don't emit Arm speculation hardening thunks under Thumb and vice-versa

Given a patch like D129506, using instructions not valid for the current
target feature set becomes an error. This means that emitting Arm
instructions in a Thumb target (or vice versa) becomes an error. When
running in Thumb mode only thumb thunks will be needed, and in Arm mode
only arm thunks are needed. This patch limits the emitted thunks to just
the ones valid for the current architecture.

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

17 months ago[clang][Interp][NFC] Remove InitFn code
Timm Bäder [Tue, 20 Dec 2022 14:57:32 +0000 (15:57 +0100)]
[clang][Interp][NFC] Remove InitFn code

This is unused.

17 months ago[PassBuilder] Detect loop-mssa for licm with parameters (PR60149)
Nikita Popov [Mon, 23 Jan 2023 11:11:33 +0000 (12:11 +0100)]
[PassBuilder] Detect loop-mssa for licm with parameters (PR60149)

When auto-detecting loop-mssa for licm/lnicm, also handle the case
where there are pass parameters.

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

17 months ago[LICM] Don't generate crash dialog for missing MSSA
Nikita Popov [Mon, 23 Jan 2023 10:57:39 +0000 (11:57 +0100)]
[LICM] Don't generate crash dialog for missing MSSA

This is a user error, so we should not be asking them to report
an issue.

17 months ago[LLDB] Remove return value from DumpRegisterValue
David Spickett [Fri, 13 Jan 2023 14:23:53 +0000 (14:23 +0000)]
[LLDB] Remove return value from DumpRegisterValue

No one ever checks it. Also convert to early return.

Reviewed By: labath

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

17 months agoRevert D142108 "[libc][NFC] Detect host CPU features using try_compile instead of...
Guillaume Chatelet [Mon, 23 Jan 2023 10:43:34 +0000 (10:43 +0000)]
Revert D142108 "[libc][NFC] Detect host CPU features using try_compile instead of try_run."

Build bots are failing.
https://lab.llvm.org/buildbot/#/builders/90/builds/44634

This reverts commit 9acc2f37bdfce08ca0c2faec03392db10d1bb7a9.

17 months agoAdd clang_CXXMethod_isExplicit to libclang
Luca Di Sera [Mon, 23 Jan 2023 09:05:51 +0000 (10:05 +0100)]
Add clang_CXXMethod_isExplicit to libclang

The new method is a wrapper of `CXXConstructorDecl::isExplicit` and
`CXXConversionDecl::isExplicit`, allowing the user to recognize whether
the declaration pointed to by a cursor was marked with the explicit
specifier.

An export for the function, together with its documentation, was added
to "clang/include/clang-c/Index.h" with an implementation provided in
"clang/tools/libclang/CIndex.cpp".

The implementation is based on similar `clang_CXXMethod`
implementations, returning a falsy unsigned value when the cursor is not
a declaration, is not a declaration for a constructor or conversion
function or is not a relevant declaration that was marked with the
`explicit` specifier.

The new symbol was added to "clang/tools/libclang/libclang.map" to be
exported, under the LLVM16 tag.

"clang/tools/c-index-test/c-index-test.c" was modified to print a
specific tag, "(explicit)", for cursors that are recognized by
`clang_CXXMethod_isExplicit`.

Two new regression files, "explicit-constructor.cpp" and
"explicit-conversion-function.cpp", were added to "clang/test/Index", to
ensure that the behavior of the new function is correct for constructors
and conversion functions, respectively.

The "get-cursor.cpp", "index-file.cpp" and
"recursive-cxx-member-calls.cpp" regression files in "clang/test/Index"
were updated as they were affected by the new "(explicit)" tag.

A binding for the new function was added to libclang's python's
bindings, in "clang/bindings/python/clang/cindex.py", as the
"is_explicit_method" method under `Cursor`.

An accompanying test was added to
"clang/bindings/python/tests/cindex/test_cursor.py", mimicking the
regression tests for the C side.

The current release note for Clang, "clang/docs/ReleaseNotes.rst" was
modified to report the new addition under the "libclang" section.

Reviewed By: aaron.ballman

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

17 months agoRevert "[compiler-rt][builtins] Skip building (b)float16 support on i386-freebsd"
Dimitry Andric [Mon, 23 Jan 2023 10:21:28 +0000 (11:21 +0100)]
Revert "[compiler-rt][builtins] Skip building (b)float16 support on i386-freebsd"

This reverts commit 45368c75582f0bded1f06d5c82c1f2ee023fb186.

There were some unexpected failures in aarch64 and arm buildbots, I will
have to investigate why these suddenly fell over.

17 months ago[Verifier] Check that !nonnull metadata is empty
Nikita Popov [Fri, 20 Jan 2023 16:06:46 +0000 (17:06 +0100)]
[Verifier] Check that !nonnull metadata is empty

!nonnull expectes an empty metadata argument, so check that this
is the case in the verifier. This came up as a problem in
https://reviews.llvm.org/D141386.

This requires dropping the verifier call in the compatibility-6.0.ll
test (which is not present in any of the other bitcode compatibility
tests). The original input unfortunately used typo'd nonnull
metadata.

17 months agoDAG: Use getNegatedExpression in combineMinNumMaxNum
Matt Arsenault [Mon, 19 Dec 2022 16:30:12 +0000 (11:30 -0500)]
DAG: Use getNegatedExpression in combineMinNumMaxNum

Computing the negated RHS expression just to see if it compares equal
and throw it away feels dirty.

17 months agoDAG: Look through fneg when trying to create unsafe minnum/maxnum
Matt Arsenault [Thu, 15 Dec 2022 17:57:10 +0000 (12:57 -0500)]
DAG: Look through fneg when trying to create unsafe minnum/maxnum

This makes most sense for isFNegFree targets, but shouldn't make
things worse without it. This avoids AMDGPU test regressions in a
future patch.

For some reason APFloat::compareAbsoluteValue is private, so compute
the neg of the constants.

17 months ago[MLIR][NFC] Fix a memset in MemRefUtils.h
Shivam Gupta [Mon, 23 Jan 2023 09:45:22 +0000 (15:15 +0530)]
[MLIR][NFC] Fix a memset in MemRefUtils.h

found by PVS-Studio - https://pvs-studio.com/en/blog/posts/cpp/1003/, N10.
memset function expects to take int as the second actual argument,
but receives a pointer. Here, the first and the second argument of
the function are mixed up.

Reviewed By: ftynse

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

17 months ago[clang][DebugInfo] Don't canonicalize names in template argument list for alias templates
Michael Buch [Sat, 21 Jan 2023 02:07:24 +0000 (02:07 +0000)]
[clang][DebugInfo] Don't canonicalize names in template argument list for alias templates

**Summary**

This patch customizes the `CGDebugInfo` printing policy to stop canonicalizing
the template arugment list in `DW_AT_name` for alias templates. The motivation for
this is that we want to be able to use the `TypePrinter`s support for
omitting defaulted template arguments when emitting `DW_AT_name`.

For reference, GCC currently completely omits the template arguments
when emitting alias template DIEs.

**Testing**

* Added unit-test

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

17 months ago[clang][Interp][NFC] Rename InlineDescptor::IsMutable to IsFieldMutable
Timm Bäder [Sun, 1 Jan 2023 12:22:59 +0000 (13:22 +0100)]
[clang][Interp][NFC] Rename InlineDescptor::IsMutable to IsFieldMutable

17 months ago[Flang] fix a copy-paste error in scope.cpp
Shivam Gupta [Mon, 23 Jan 2023 09:26:59 +0000 (14:56 +0530)]
[Flang] fix a copy-paste error in scope.cpp

found by PVS-Studio.

Reviewed By: jeanPerier, klausler

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

17 months ago[clang][Interp][NFC] Add Record::getDestructor()
Timm Bäder [Thu, 5 Jan 2023 12:40:26 +0000 (13:40 +0100)]
[clang][Interp][NFC] Add Record::getDestructor()

Unused for now but will be used in later commits.