[all-commits] [llvm/llvm-project] f06900: [RISCV] Remove floating point condition code legal...

Ruizhe Zhao via All-commits all-commits at lists.llvm.org
Mon Apr 12 02:55:44 PDT 2021


  Branch: refs/heads/dev-newmaster
  Home:   https://github.com/llvm/llvm-project
  Commit: f069000b433c3d08157a57b554a3a17c46cba04d
      https://github.com/llvm/llvm-project/commit/f069000b433c3d08157a57b554a3a17c46cba04d
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp

  Log Message:
  -----------
  [RISCV] Remove floating point condition code legalization from lowerFixedLengthVectorSetccToRVV.

After D98939, this is done by LegalizeVectorOps making this code dead.

Reviewed By: frasercrmck

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


  Commit: 292816d2b613fdf5efbd4287b656bb793ad18e12
      https://github.com/llvm/llvm-project/commit/292816d2b613fdf5efbd4287b656bb793ad18e12
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/include/llvm/IR/IntrinsicsRISCV.td

  Log Message:
  -----------
  [RISCV] Don't set the SplatOperand flag on intrinsics that take a shift amount.

The shift amount should always be a vector or an XLen scalar.
The SplatOperand flag is used to indicate we need to legalize
non-XLen scalars including special handling for i64 on RV32.
This will prevent us from silently adjusting these operands if
the intrinsics are misused.

I'll probably adjust the name of the SplatOperand flag slightly
in a follow up patch.

Reviewed By: khchen, frasercrmck

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


  Commit: 9ca0b01eb4fdf08199dbf9235a8d63f79a753a4f
      https://github.com/llvm/llvm-project/commit/9ca0b01eb4fdf08199dbf9235a8d63f79a753a4f
  Author: Nick Lewycky <nicholas at mxc.ca>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/test/LTO/X86/strip-debug-info.ll

  Log Message:
  -----------
  Remove dead CHECK-ERR line.


  Commit: a9968c0a339ab47f5d6da1c513b2754f1e98a596
      https://github.com/llvm/llvm-project/commit/a9968c0a339ab47f5d6da1c513b2754f1e98a596
  Author: Tomas Matheson <tomas.matheson at arm.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetRegisterInfo.h
    M llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
    M llvm/lib/CodeGen/GCRootLowering.cpp
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    M llvm/lib/CodeGen/MachineFrameInfo.cpp
    M llvm/lib/CodeGen/PrologEpilogInserter.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/CodeGen/StackMaps.cpp
    M llvm/lib/CodeGen/TargetRegisterInfo.cpp
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
    M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.h
    M llvm/lib/Target/ARC/ARCFrameLowering.cpp
    M llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp
    M llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp
    M llvm/lib/Target/ARM/ARMFrameLowering.cpp
    M llvm/lib/Target/ARM/Thumb1FrameLowering.cpp
    M llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp
    M llvm/lib/Target/Lanai/LanaiFrameLowering.cpp
    M llvm/lib/Target/Lanai/LanaiRegisterInfo.cpp
    M llvm/lib/Target/M68k/M68kFrameLowering.cpp
    M llvm/lib/Target/M68k/M68kISelLowering.cpp
    M llvm/lib/Target/M68k/M68kRegisterInfo.cpp
    M llvm/lib/Target/Mips/MipsFrameLowering.cpp
    M llvm/lib/Target/Mips/MipsRegisterInfo.cpp
    M llvm/lib/Target/Mips/MipsSEFrameLowering.cpp
    M llvm/lib/Target/Mips/MipsSERegisterInfo.cpp
    M llvm/lib/Target/NVPTX/NVPTXPrologEpilogPass.cpp
    M llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
    M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
    M llvm/lib/Target/Sparc/SparcFrameLowering.cpp
    M llvm/lib/Target/VE/VEFrameLowering.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
    M llvm/lib/Target/X86/X86FrameLowering.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/lib/Target/X86/X86RegisterInfo.cpp

  Log Message:
  -----------
  [NFC][CodeGen] Tidy up TargetRegisterInfo stack realignment functions

Currently needsStackRealignment returns false if canRealignStack returns false.
This means that the behavior of needsStackRealignment does not correspond to
it's name and description; a function might need stack realignment, but if it
is not possible then this function returns false. Furthermore,
needsStackRealignment is not virtual and therefore some backends have made use
of canRealignStack to indicate whether a function needs stack realignment.

This patch attempts to clarify the situation by separating them and introducing
new names:

 - shouldRealignStack - true if there is any reason the stack should be
   realigned

 - canRealignStack - true if we are still able to realign the stack (e.g. we
   can still reserve/have reserved a frame pointer)

 - hasStackRealignment = shouldRealignStack && canRealignStack (not target
   customisable)

Targets can now override shouldRealignStack to indicate that stack realignment
is required.

This change will make it easier in a future change to handle the case where we
need to realign the stack but can't do so (for example when the register
allocator creates an aligned spill after the frame pointer has been
eliminated).

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

Change-Id: Ib9a4d21728bf9d08a545b4365418d3ffe1af4d87


  Commit: f5e9be6fdbdbe2a11f0227963fd4c15e3c319a44
      https://github.com/llvm/llvm-project/commit/f5e9be6fdbdbe2a11f0227963fd4c15e3c319a44
  Author: Amara Emerson <amara at apple.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp

  Log Message:
  -----------
  [GlobalISel] Implement lowering for G_ROTR and G_ROTL.

This is a straightforward port.

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


  Commit: a33fcafaf0493fe30106be099070a96d10882e9d
      https://github.com/llvm/llvm-project/commit/a33fcafaf0493fe30106be099070a96d10882e9d
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    A llvm/test/CodeGen/RISCV/calling-conv-half.ll
    M llvm/test/CodeGen/RISCV/copysign-casts.ll

  Log Message:
  -----------
  [RISCV] Pass 'half' in the lower 16 bits of an f32 value when F extension is enabled, but Zfh is not.

Without Zfh the half type isn't legal, but it could still be
used as an argument/return in IR. Clang will not generate this today.

Previously we promoted the half value to float for arguments and
returns if the F extension is enabled but Zfh isn't. Then depending on
which ABI is enabled we would pass it in either an FPR or a GPR in
float format.

If the F extension isn't enabled, it would get passed in the lower
16 bits of a GPR in half format.

With this patch the value will always in half format and will be
in the lower bits of a GPR or FPR. This should be consistent
with where the bits are located when Zfh is enabled.

I've based this implementation off of how this is done on ARM.

I've manually nan-boxed the value to 32 bits using integer ops.
It looks like flw, fsw, fmv.s, fmv.w.x, fmf.x.w won't
canonicalize nans so should leave the value alone. I think those
are the instructions that could get used on this value.

Reviewed By: kito-cheng

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


  Commit: c62ef12079bcc7ce72040dddaae13408b120d995
      https://github.com/llvm/llvm-project/commit/c62ef12079bcc7ce72040dddaae13408b120d995
  Author: Michał Górny <mgorny at moritz.systems>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M lldb/test/API/tools/lldb-server/TestLldbGdbServer.py

  Log Message:
  -----------
  [lldb] [test] Mark more lldb-server tests xfail on Windows


  Commit: c8e56f394af0b9e32c413d62a0e7aebbba3e6b70
      https://github.com/llvm/llvm-project/commit/c8e56f394af0b9e32c413d62a0e7aebbba3e6b70
  Author: Nick Lewycky <nicholas at mxc.ca>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/tools/llvm-link/llvm-link.cpp

  Log Message:
  -----------
  Add -disable-verify flag to llvm-link.

This flag allows the developer to see the result of linking even if it fails the verifier, as a step in debugging cases where the linked module fails the verifier.

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


  Commit: 7a4d630764829ad40738ae4e5944a411529728ef
      https://github.com/llvm/llvm-project/commit/7a4d630764829ad40738ae4e5944a411529728ef
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M mlir/include/mlir-c/ExecutionEngine.h
    M mlir/lib/Bindings/Python/ExecutionEngine.cpp
    M mlir/lib/Bindings/Python/mlir/execution_engine.py
    M mlir/lib/CAPI/ExecutionEngine/ExecutionEngine.cpp
    M mlir/test/Bindings/Python/execution_engine.py

  Log Message:
  -----------
  Add a "register_runtime" method to the mlir.execution_engine and show calling back from MLIR into Python

This exposes the ability to register Python functions with the JIT and
exposes them to the MLIR jitted code. The provided test case illustrates
the mechanism.

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


  Commit: e3d3327edbf133da6ed50767eed4560a541a751d
      https://github.com/llvm/llvm-project/commit/e3d3327edbf133da6ed50767eed4560a541a751d
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M lldb/test/Shell/Reproducer/Functionalities/TestImageList.test

  Log Message:
  -----------
  [lldb] Remove reproducer from previous test run


  Commit: 700431128e212d5ef53afb6d20da098ca264cadd
      https://github.com/llvm/llvm-project/commit/700431128e212d5ef53afb6d20da098ca264cadd
  Author: Jessica Paquette <jpaquette at apple.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
    M llvm/include/llvm/Target/GlobalISel/Combine.td
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    M llvm/lib/Target/AArch64/AArch64Combine.td
    M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerCombiner.cpp
    A llvm/test/CodeGen/AArch64/GlobalISel/form-bitfield-extract-from-sextinreg.mir

  Log Message:
  -----------
  [GlobalISel][AArch64] Combine G_SEXT_INREG + right shift -> G_SBFX

Basically a port of isBitfieldExtractOpFromSExtInReg in AArch64ISelDAGToDAG.

This is only done post-legalization for now. Once the legalizer knows how to
decompose these back into shifts, this requirement can probably be removed.

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


  Commit: eae3b2a715d7fd1aea0ce1c78ac7a04957b72728
      https://github.com/llvm/llvm-project/commit/eae3b2a715d7fd1aea0ce1c78ac7a04957b72728
  Author: John Brawn <john.brawn at arm.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M clang/lib/Frontend/CompilerInvocation.cpp

  Log Message:
  -----------
  [clang][cli] Fix round-trip of OPT_plugin_arg

The test Frontend/plugin-delayed-template.cpp is failing when asserts
are enabled because it hits an assertion in denormalizeStringImpl when
trying to round-trip OPT_plugin_arg. Fix this by adjusting how the
option is handled, as the first part is joined to -plugin-arg and the
second is separate.

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


  Commit: 3e3fc431dfe4c0f118f8e3d78bb3e7e96a7d4c35
      https://github.com/llvm/llvm-project/commit/3e3fc431dfe4c0f118f8e3d78bb3e7e96a7d4c35
  Author: Hongtao Yu <hoy at fb.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/include/llvm/Transforms/IPO/ProfiledCallGraph.h
    M llvm/include/llvm/Transforms/IPO/SampleContextTracker.h
    M llvm/lib/Transforms/IPO/SampleContextTracker.cpp
    M llvm/lib/Transforms/IPO/SampleProfile.cpp
    M llvm/test/Transforms/SampleProfile/ctxsplit.ll
    M llvm/test/Transforms/SampleProfile/inline-mergeprof.ll
    M llvm/test/Transforms/SampleProfile/profile-context-order.ll
    M llvm/test/Transforms/SampleProfile/profile-context-tracker-debug.ll
    M llvm/test/Transforms/SampleProfile/profile-topdown-order.ll
    M llvm/tools/llvm-profgen/CSPreInliner.cpp

  Log Message:
  -----------
  [CSSPGO] Top-down processing order based on full profile.

Use profiled call edges to augment the top-down order. There are cases that the top-down order computed based on the static call graph doesn't reflect real execution order. For example:

1. Incomplete static call graph due to unknown indirect call targets. Adjusting the order by considering indirect call edges from the profile can enable the inlining of indirect call targets by allowing the caller processed before them.

2. Mutual call edges in an SCC. The static processing order computed for an SCC may not reflect the call contexts in the context-sensitive profile, thus may cause potential inlining to be overlooked. The function order in one SCC is being adjusted to a top-down order based on the profile to favor more inlining.

3. Transitive indirect call edges due to inlining. When a callee function is inlined into into a caller function in LTO prelink, every call edge originated from the callee will be transferred to the caller. If any of the transferred edges is indirect, the original profiled indirect edge, even if considered, would not enforce a top-down order from the caller to the potential indirect call target in LTO postlink since the inlined callee is gone from the static call graph.

4. #3 can happen even for direct call targets, due to functions defined in header files. Header functions, when included into source files, are defined multiple times but only one definition survives due to ODR. Therefore, the LTO prelink inlining done on those dropped definitions can be useless based on a local file scope. More importantly, the inlinee, once fully inlined to a to-be-dropped inliner, will have no profile to consume when its outlined version is compiled. This can lead to a profile-less prelink compilation for the outlined version of the inlinee function which may be called from external modules. while this isn't easy to fix, we rely on the postlink AutoFDO pipeline to optimize the inlinee. Since the survived copy of the inliner (defined in headers) can be inlined in its local scope in prelink, it may not exist in the merged IR in postlink, and we'll need the profiled call edges to enforce a top-down order for the rest of the functions.

Considering those cases, a profiled call graph completely independent of the static call graph is constructed based on profile data, where function objects are not even needed to handle case #3 and case 4.

I'm seeing an average 0.4% perf win out of SPEC2017. For certain benchmark such as Xalanbmk and GCC, the win is bigger, above 2%.

The change is an enhancement to https://reviews.llvm.org/D95988.

Reviewed By: wmi, wenlei

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


  Commit: 22998738e8f78b447b04a7fd23efa4deaeda306b
      https://github.com/llvm/llvm-project/commit/22998738e8f78b447b04a7fd23efa4deaeda306b
  Author: spupyrev <spupyrev at fb.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/lib/IR/Metadata.cpp
    M llvm/lib/Transforms/IPO/SampleProfile.cpp
    A llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-profile-metadata.prof
    A llvm/test/Transforms/SampleProfile/pseudo-probe-profile-metadata.ll

  Log Message:
  -----------
  [SamplePGO] Keeping prof metadata for IndirectBrInst

Currently prof metadata with branch counts is added only for BranchInst and SwitchInst, but not for IndirectBrInst. As a result, BPI/BFI make incorrect inferences for indirect branches, which can be very hot.
This diff adds metadata for IndirectBrInst, in addition to BranchInst and SwitchInst.

Reviewed By: wmi, wenlei

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


  Commit: 6c9fbcf5b1cb6d2e0fb4a518f8c61a5eebfe6021
      https://github.com/llvm/llvm-project/commit/6c9fbcf5b1cb6d2e0fb4a518f8c61a5eebfe6021
  Author: Eugene Zhulenev <ezhulenev at google.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M mlir/test/Dialect/Linalg/codegen-strategy.mlir
    M mlir/test/lib/Transforms/TestLinalgCodegenStrategy.cpp

  Log Message:
  -----------
  [mlir] Linalg: add tile interchange flag to test-linalg-codegen-strategy pass

Interchange options was missing in the pass flags.

Reviewed By: nicolasvasilache

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


  Commit: f13f0505515dcb1d256673c5224cc3ca55569122
      https://github.com/llvm/llvm-project/commit/f13f0505515dcb1d256673c5224cc3ca55569122
  Author: Sourabh Singh Tomar <SourabhSingh.Tomar at amd.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/include/llvm/IR/DebugInfoMetadata.h
    M llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
    M llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
    M llvm/lib/IR/AsmWriter.cpp
    M llvm/lib/IR/DebugInfoMetadata.cpp
    A llvm/test/DebugInfo/X86/global-constants.ll
    A llvm/test/DebugInfo/X86/invalid-global-constants.ll
    M llvm/test/DebugInfo/X86/stack-value-dwarf4.ll
    M llvm/test/Transforms/StripSymbols/strip-dead-debug-info.ll

  Log Message:
  -----------
  [DebugInfo] Support for signed constants inside DIExpression

Negative numbers are represented using DW_OP_consts along with signed representation
of the number as the argument.

Test case IR is generated using Fortran front-end.

Reviewed By: aprantl

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


  Commit: 91887cd4ecc7e71715677e7a256ba243d54c781f
      https://github.com/llvm/llvm-project/commit/91887cd4ecc7e71715677e7a256ba243d54c781f
  Author: Amara Emerson <amara at apple.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
    M llvm/include/llvm/Target/GlobalISel/Combine.td
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    A llvm/test/CodeGen/AArch64/GlobalISel/prelegalizercombiner-funnel-shifts-to-rotates.mir

  Log Message:
  -----------
  [AArch64][GlobalISel] Combine funnel shifts to rotates.

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


  Commit: 1bc90847ee3ef027f194ed740bb0bb72b8d7579a
      https://github.com/llvm/llvm-project/commit/1bc90847ee3ef027f194ed740bb0bb72b8d7579a
  Author: Amara Emerson <amara at apple.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.h
    A llvm/test/CodeGen/AArch64/GlobalISel/legalize-rotr-rotl.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir

  Log Message:
  -----------
  [AArch64][GlobalISel] Define some legalization rules for G_ROTR and G_ROTL.

For imported pattern purposes, we have a custom rule that promotes the rotate
amount to 64b as well.

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


  Commit: a35c2c7942e4c66aedf6b9133ad6398b602c0198
      https://github.com/llvm/llvm-project/commit/a35c2c7942e4c66aedf6b9133ad6398b602c0198
  Author: Amara Emerson <amara at apple.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
    M llvm/include/llvm/CodeGen/GlobalISel/Utils.h
    M llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-reduce-add.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-reduce-fadd.mir
    M llvm/test/CodeGen/AArch64/arm64-vabs.ll

  Log Message:
  -----------
  [GlobalISel] Implement fewerElements legalization for vector reductions.

This patch adds 3 methods, one for power-of-2 vectors which use tree
reductions using vector ops, before a final reduction op. For non-pow-2
types it generates multiple narrow reductions and combines the values with
scalar ops.

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


  Commit: d857a81437cbd9066b29dffceec500e3ea1edc0e
      https://github.com/llvm/llvm-project/commit/d857a81437cbd9066b29dffceec500e3ea1edc0e
  Author: Huihui Zhang <huihuiz at quicinc.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlan.h

  Log Message:
  -----------
  [VPlan] Use SetVector for VPExternalDefs to prevent non-determinism.

Use SetVector instead of SmallPtrSet for external definitions created for VPlan.
Doing this can help avoid non-determinism caused by iterating over unordered containers.

This bug was found with reverse iteration turning on,
 --extra-llvm-cmake-variables="-DLLVM_REVERSE_ITERATION=ON".
Failing LLVM-Unit test VPRecipeTest.dump.

Reviewed By: MaskRay

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


  Commit: 79ae41991c6bfe7e68e8c43d520297cf95853dc3
      https://github.com/llvm/llvm-project/commit/79ae41991c6bfe7e68e8c43d520297cf95853dc3
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/test/Transforms/InstCombine/abs-intrinsic.ll

  Log Message:
  -----------
  [InstCombine] add test for abs() demanded bits; NFC


  Commit: c2ebad8d55bd90ac921b1219b25c1d1a864655ff
      https://github.com/llvm/llvm-project/commit/c2ebad8d55bd90ac921b1219b25c1d1a864655ff
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
    M llvm/test/Transforms/InstCombine/abs-intrinsic.ll

  Log Message:
  -----------
  [InstCombine] add fold for demand of low bit of abs()

This is one problem shown in https://llvm.org/PR49763

https://alive2.llvm.org/ce/z/cV6-4K
https://alive2.llvm.org/ce/z/9_3g-L


  Commit: 73adc05cedb2da5c0f4b83a26478203937e3f501
      https://github.com/llvm/llvm-project/commit/73adc05cedb2da5c0f4b83a26478203937e3f501
  Author: Fangrui Song <i at maskray.me>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp

  Log Message:
  -----------
  [GlobalISel] Fix -Wunused-variable in -DLLVM_ENABLE_ASSERTIONS=off builds after D99463


  Commit: 3ad6dd5d8f0a70756f665e8179ad7c5210022c11
      https://github.com/llvm/llvm-project/commit/3ad6dd5d8f0a70756f665e8179ad7c5210022c11
  Author: Matheus Izvekov <mizvekov at gmail.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Sema/SemaConcept.cpp
    M clang/lib/Sema/SemaExprCXX.cpp
    M clang/lib/Sema/SemaType.cpp
    M clang/test/CXX/expr/expr.prim/expr.prim.req/compound-requirement.cpp

  Log Message:
  -----------
  [clang] Use decltype((E)) for compound requirement type constraint

See PR45088.

Compound requirement type constraints were using decltype(E) instead of
decltype((E)), as per `[expr.prim.req]p1.3.3`.

Since neither instantiation nor type dependence should matter for
the constraints, this uses an approach where a `decltype` type is not built,
and just the canonical type of the expression after template instantiation
is used on the requirement.

Signed-off-by: Matheus Izvekov <mizvekov at gmail.com>

Reviewed By: rsmith

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


  Commit: ae217bf1f3277b8c14590a130ee5e63cc1664443
      https://github.com/llvm/llvm-project/commit/ae217bf1f3277b8c14590a130ee5e63cc1664443
  Author: David Blaikie <dblaikie at gmail.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/test/CMakeLists.txt

  Log Message:
  -----------
  Conditionalize the JIT test dependency


  Commit: eb4967c8bd341b1623453bcbb67379e223a7cad7
      https://github.com/llvm/llvm-project/commit/eb4967c8bd341b1623453bcbb67379e223a7cad7
  Author: Luís Marques <luismarques at lowrisc.org>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/tests/sanitizer_allocator_test.cpp

  Log Message:
  -----------
  [Sanitizer][RISCV][AArch64][Android] Adjust allocator tests

On 64-bit systems with small VMAs (e.g. 39-bit) we can't use
SizeClassAllocator64 parameterized with size class maps containing a large
number of classes, as that will make the allocator region size too small
(< 2^32). Several tests were already disabled for Android because of this.

This patch provides the correct allocator configuration for RISC-V
(riscv64), generalizes the gating condition for tests that can't be enabled
for small VMA systems, and tweaks the tests that can be made compatible with
those systems to enable them.

I think the previous gating on Android should instead be AArch64+Android, so
the patch reflects that.

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


  Commit: e2c7bf08cc8e9c2461dd18b283b76ed2b3c59630
      https://github.com/llvm/llvm-project/commit/e2c7bf08cc8e9c2461dd18b283b76ed2b3c59630
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M clang/lib/CodeGen/CGStmtOpenMP.cpp
    A clang/test/OpenMP/debug-info-complex-byval.cpp

  Log Message:
  -----------
  [OPENMP]Fix PR48607: Crash during clang openmp codegen for firstprivate() of `float _Complex`.

Need to cast the argument for the debug wrapper function call to the
corresponding parameter type to avoid crash.

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


  Commit: 3a6365a439ede4b7c65076bb42b1b7dbf72216b5
      https://github.com/llvm/llvm-project/commit/3a6365a439ede4b7c65076bb42b1b7dbf72216b5
  Author: David Green <david.green at arm.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/lib/Target/ARM/ARM.td

  Log Message:
  -----------
  [ARM] Add FeatureHasNoBranchPredictor for Thumb1 cores

Mark v6m/v8m-baseline cores as having no branch predictors. This should
not alter very much on its own, but is more correct as the cores do not
have branch predictors and can help in the future.


  Commit: c06a8f9caa51c7ea71dac716e0a35f5e343e4546
      https://github.com/llvm/llvm-project/commit/c06a8f9caa51c7ea71dac716e0a35f5e343e4546
  Author: Louis Dionne <ldionne at apple.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M libcxx/CMakeLists.txt
    M libcxx/benchmarks/CMakeLists.txt
    M libcxx/cmake/Modules/HandleLibCXXABI.cmake
    M libcxx/docs/TestingLibcxx.rst
    M libcxx/include/CMakeLists.txt
    M libcxx/include/__config
    M libcxx/test/configs/legacy.cfg.in
    M libcxx/utils/ci/run-buildbot
    M libcxx/utils/libcxx/test/config.py
    M libcxxabi/test/libcxxabi/test/config.py
    M libunwind/test/libunwind/test/config.py

  Log Message:
  -----------
  [libc++] Include <__config_site> from <__config>

Prior to this patch, we would generate a fancy <__config> header by
concatenating <__config_site> and <__config>. This complexifies the
build system and also increases the difference between what's tested
and what's actually installed.

This patch removes that complexity and instead simply installs <__config_site>
alongside the libc++ headers. <__config_site> is then included by <__config>,
which is much simpler. Doing this also opens the door to having different
<__config_site> headers depending on the target, which was impossible before.

It does change the workflow for testing header-only changes to libc++.
Previously, we would run `lit` against the headers in libcxx/include.
After this patch, we run it against a fake installation root of the
headers (containing a proper <__config_site> header). This makes use
closer to testing what we actually install, which is good, however it
does mean that we have to update that root before testing header changes.
Thus, we now need to run `ninja check-cxx-deps` before running `lit` by
hand.

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


  Commit: b7899ba0e8b7a7b8fbab06a8b3f2d70f16d7a250
      https://github.com/llvm/llvm-project/commit/b7899ba0e8b7a7b8fbab06a8b3f2d70f16d7a250
  Author: Mike Rice <michael.p.rice at intel.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M clang/include/clang-c/Index.h
    M clang/include/clang/AST/RecursiveASTVisitor.h
    M clang/include/clang/AST/StmtOpenMP.h
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Basic/StmtNodes.td
    M clang/include/clang/Sema/Sema.h
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/lib/AST/StmtOpenMP.cpp
    M clang/lib/AST/StmtPrinter.cpp
    M clang/lib/AST/StmtProfile.cpp
    M clang/lib/Basic/OpenMPKinds.cpp
    M clang/lib/CodeGen/CGStmt.cpp
    M clang/lib/Parse/ParseOpenMP.cpp
    M clang/lib/Sema/SemaExceptionSpec.cpp
    M clang/lib/Sema/SemaOpenMP.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/lib/Serialization/ASTReaderStmt.cpp
    M clang/lib/Serialization/ASTWriterStmt.cpp
    M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
    A clang/test/OpenMP/dispatch_ast_print.cpp
    A clang/test/OpenMP/dispatch_messages.cpp
    M clang/tools/libclang/CIndex.cpp
    M clang/tools/libclang/CXCursor.cpp
    M llvm/include/llvm/Frontend/OpenMP/OMP.td
    M llvm/include/llvm/Frontend/OpenMP/OMPKinds.def

  Log Message:
  -----------
  [OPENMP51]Initial support for the dispatch directive.

Added basic parsing/sema/serialization support for dispatch directive.

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


  Commit: 58cbb222ebba687d1f710de56649f1e201f646dc
      https://github.com/llvm/llvm-project/commit/58cbb222ebba687d1f710de56649f1e201f646dc
  Author: Jon Roelofs <jonathan_roelofs at apple.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/docs/Contributing.rst

  Log Message:
  -----------
  [docs] Fix up dead clang-format links after monorepo move. NFC


  Commit: d535a05ca1a6b959399762d5e14efde1fcfe6af8
      https://github.com/llvm/llvm-project/commit/d535a05ca1a6b959399762d5e14efde1fcfe6af8
  Author: Wei Mi <wmi at google.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M clang/lib/CodeGen/BackendUtil.cpp
    M clang/test/CodeGen/thinlto_backend.ll
    M llvm/include/llvm/LTO/LTOBackend.h
    M llvm/lib/LTO/LTO.cpp
    M llvm/lib/LTO/LTOBackend.cpp

  Log Message:
  -----------
  [ThinLTO] During module importing, close one source module before open
another one for distributed mode.

Currently during module importing, ThinLTO opens all the source modules,
collect functions to be imported and append them to the destination module,
then leave all the modules open through out the lto backend pipeline. This
patch refactors it in the way that one source module will be closed before
another source module is opened. All the source modules will be closed after
importing phase is done. It will save some amount of memory when there are
many source modules to be imported.

Note that this patch only changes the distributed thinlto mode. For in
process thinlto mode, one source module is shared acorss different thinlto
backend threads so it is not changed in this patch.

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


  Commit: 427d3597219ec16c1bc92a0f4c9e39015e80c923
      https://github.com/llvm/llvm-project/commit/427d3597219ec16c1bc92a0f4c9e39015e80c923
  Author: Greg McGary <gkm at fb.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M lld/MachO/Arch/ARM64.cpp
    M lld/MachO/Arch/X86_64.cpp
    M lld/MachO/Driver.cpp
    M lld/MachO/InputSection.cpp
    M lld/MachO/MapFile.cpp
    M lld/MachO/UnwindInfoSection.cpp
    M lld/MachO/Writer.cpp

  Log Message:
  -----------
  [lld-macho][NFC] Drop unnecessary macho:: namespace prefix on unambiguous references to Symbol

Within `lld/macho/`, only `InputFiles.cpp` and `Symbols.h` require the `macho::` namespace qualifier to disambiguate references to `class Symbol`.

Add braces to outer `for` of a 5-level single-line `if`/`for` nest.

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


  Commit: a360a9786f5f82f4beff6fdcec12b40ee392db7a
      https://github.com/llvm/llvm-project/commit/a360a9786f5f82f4beff6fdcec12b40ee392db7a
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M mlir/lib/IR/Operation.cpp
    M mlir/lib/Transforms/Utils/DialectConversion.cpp
    M mlir/test/Transforms/test-legalizer.mlir
    M mlir/test/lib/Dialect/Test/TestOps.td
    M mlir/test/lib/Dialect/Test/TestPatterns.cpp

  Log Message:
  -----------
  Fix deletion of operations through the rewriter in a pattern matching a consumer operation

This allows for the conversion to match `A(B()) -> C()` with a pattern matching
`A` and marking `B` for deletion.

Also add better assertions when an operation is erased while still having uses.

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


  Commit: ee176d2e6e9d58af2dd1856f3c1f54ae85f2b89b
      https://github.com/llvm/llvm-project/commit/ee176d2e6e9d58af2dd1856f3c1f54ae85f2b89b
  Author: Richard Smith <richard at metafoo.co.uk>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M clang/www/cxx_status.html

  Log Message:
  -----------
  [www] Color Clang 11 and Clang 12 features as green and not yellow, and
Clang 13 features as yellow not green.


  Commit: eabd55b1b2c5e322c3b36cb44348f178692890c8
      https://github.com/llvm/llvm-project/commit/eabd55b1b2c5e322c3b36cb44348f178692890c8
  Author: Zequan Wu <zequanwu at google.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M lld/COFF/LTO.cpp

  Log Message:
  -----------
  [lld-link] Enable addrsig table in COFF lto

This allow safe-icf mode to work when linking with LTO.

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


  Commit: 1705136590cd88176729efec8d291e98249713cb
      https://github.com/llvm/llvm-project/commit/1705136590cd88176729efec8d291e98249713cb
  Author: Richard Smith <richard at metafoo.co.uk>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/test/Sema/warn-cast-function-type.c
    R clang/test/Sema/warn-cast-function-type.cpp
    A clang/test/SemaCXX/warn-cast-function-type.cpp

  Log Message:
  -----------
  Fix pluralization error in diagnostic, and move C++ testcase to proper
directory.


  Commit: d87384f7dfa1158150d9759654d5f19a929b81b7
      https://github.com/llvm/llvm-project/commit/d87384f7dfa1158150d9759654d5f19a929b81b7
  Author: Richard Smith <richard at metafoo.co.uk>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M clang/include/clang/Basic/AttrDocs.td

  Log Message:
  -----------
  [www] Fix build of attribute documentation.


  Commit: c5f174905b73620cf8690dbe68ea05b29d09f4a1
      https://github.com/llvm/llvm-project/commit/c5f174905b73620cf8690dbe68ea05b29d09f4a1
  Author: Richard Smith <richard at metafoo.co.uk>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    R clang/docs/DiagnosticsReference.rst

  Log Message:
  -----------
  Delete checked-in generated copy of diagnostic reference.

The documentation build rule will generate an up-to-date version of this
if it's not checked in.


  Commit: 144ec1c38ef1d3a6d37dadf7240ef5f04c10daae
      https://github.com/llvm/llvm-project/commit/144ec1c38ef1d3a6d37dadf7240ef5f04c10daae
  Author: Heejin Ahn <aheejin at gmail.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/lib/Object/WasmObjectFile.cpp
    A llvm/test/MC/WebAssembly/event-section-encoding.ll

  Log Message:
  -----------
  [WebAssembly] Encode numbers in ULEB128 in event section

The number of events and the type index should be encoded in ULEB128,
but they were incorrctly encoded in LEB128. The smallest number with
which its LEB128 and ULEB128 encodings are different is 64.
There's no way we can generate 64 events in the C++ toolchain
implementation so we can't test that, but the attached test tests when
the type index is 64.

Reviewed By: dschuff

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


  Commit: d6d3d21cd1cb1567eaf7ff8c0867b07227a19d99
      https://github.com/llvm/llvm-project/commit/d6d3d21cd1cb1567eaf7ff8c0867b07227a19d99
  Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
    M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
    M lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_arm64.cpp
    M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp
    M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.h
    M lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp
    M lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.h
    M lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp

  Log Message:
  -----------
  [LLDB] Add support for Arm64/Linux dynamic register sets

This is patch adds support for adding dynamic register sets for
AArch64 dynamic features in LLDB. AArch64 has optional features like
SVE, Pointer Authentication and MTE which means LLDB needs to decide
at run time which registers it needs to pull in for the current
executable based on underlying support for a certain feature.

This patch makes necessary adjustments to make way for dynamic
register infos and dynamic register sets.

Reviewed By: labath

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


  Commit: 1164b4e2957290e814c3dd781a68e504dd39148e
      https://github.com/llvm/llvm-project/commit/1164b4e2957290e814c3dd781a68e504dd39148e
  Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
    M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
    M lldb/source/Plugins/Process/Linux/NativeThreadLinux.h
    M lldb/source/Plugins/Process/POSIX/NativeProcessELF.h
    M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp
    M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.h
    M lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h

  Log Message:
  -----------
  [LLDB] Arm64/Linux Add MTE and Pointer Authentication registers

This patch adds two new dynamic register sets for AArch64 MTE and
Pointer Authentication features. These register sets are dynamic and
will only be available if underlying hardware support either of these
features. LLDB will pull in Aux vector information and create register
infos based on that information.

A follow up patch will add a test case to test these feature registers.

Reviewed By: labath, DavidSpickett

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


  Commit: 9ab677180091a690cd99d4ac55d5fb9e1149b1ec
      https://github.com/llvm/llvm-project/commit/9ab677180091a690cd99d4ac55d5fb9e1149b1ec
  Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/lldbtest.py
    A lldb/test/API/commands/register/register/aarch64_dynamic_regset/Makefile
    A lldb/test/API/commands/register/register/aarch64_dynamic_regset/TestArm64DynamicRegsets.py
    A lldb/test/API/commands/register/register/aarch64_dynamic_regset/main.c

  Log Message:
  -----------
  [LLDB] Arm64/Linux test case for MTE and Pointer Authentication regset

This patch adds a test case to test AArch64 dynamic register sets.
This tests for the availability of certain register sets and query
their registers accordingly.

Reviewed By: labath, DavidSpickett

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


  Commit: c23ee7718ea4f9292622af3d80efe2491eb2a506
      https://github.com/llvm/llvm-project/commit/c23ee7718ea4f9292622af3d80efe2491eb2a506
  Author: Richard Smith <richard at metafoo.co.uk>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M clang/utils/TableGen/ClangDiagnosticsEmitter.cpp

  Log Message:
  -----------
  [www] List both the regular and expanded form of %diff in the
diagnostics reference.

In passing, properly validate and diagnose errors in %diff format
specifiers.


  Commit: 0b69756110db444282c40ea16929186b2910c3b1
      https://github.com/llvm/llvm-project/commit/0b69756110db444282c40ea16929186b2910c3b1
  Author: Walter Erquinigo <a20012251 at gmail.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M lldb/docs/lldb-gdb-remote.txt
    M lldb/include/lldb/Core/PluginManager.h
    M lldb/include/lldb/Host/common/NativeProcessProtocol.h
    M lldb/include/lldb/Target/Process.h
    M lldb/include/lldb/Target/ProcessTrace.h
    M lldb/include/lldb/Target/StopInfo.h
    M lldb/include/lldb/Target/Target.h
    A lldb/include/lldb/Target/ThreadPostMortemTrace.h
    R lldb/include/lldb/Target/ThreadTrace.h
    M lldb/include/lldb/Target/Trace.h
    M lldb/include/lldb/Target/TraceSessionFileParser.h
    M lldb/include/lldb/Utility/StringExtractorGDBRemote.h
    A lldb/include/lldb/Utility/TraceGDBRemotePackets.h
    A lldb/include/lldb/Utility/TraceIntelPTGDBRemotePackets.h
    M lldb/include/lldb/Utility/TraceOptions.h
    M lldb/include/lldb/lldb-enumerations.h
    M lldb/include/lldb/lldb-forward.h
    M lldb/include/lldb/lldb-private-interfaces.h
    M lldb/source/API/SBThread.cpp
    M lldb/source/API/SBTrace.cpp
    M lldb/source/Commands/CommandObjectProcess.cpp
    M lldb/source/Commands/CommandObjectThread.cpp
    M lldb/source/Commands/CommandObjectThreadUtil.cpp
    M lldb/source/Commands/CommandObjectThreadUtil.h
    M lldb/source/Commands/CommandObjectTrace.cpp
    M lldb/source/Commands/CommandObjectTrace.h
    M lldb/source/Core/PluginManager.cpp
    M lldb/source/Interpreter/CommandInterpreter.cpp
    M lldb/source/Plugins/Process/Linux/CMakeLists.txt
    A lldb/source/Plugins/Process/Linux/IntelPTManager.cpp
    A lldb/source/Plugins/Process/Linux/IntelPTManager.h
    M lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
    M lldb/source/Plugins/Process/Linux/NativeProcessLinux.h
    M lldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp
    M lldb/source/Plugins/Process/Linux/NativeThreadLinux.h
    R lldb/source/Plugins/Process/Linux/ProcessorTrace.cpp
    R lldb/source/Plugins/Process/Linux/ProcessorTrace.h
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.h
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
    M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
    M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
    M lldb/source/Plugins/Trace/intel-pt/CommandObjectTraceStartIntelPT.cpp
    M lldb/source/Plugins/Trace/intel-pt/CommandObjectTraceStartIntelPT.h
    M lldb/source/Plugins/Trace/intel-pt/DecodedThread.cpp
    M lldb/source/Plugins/Trace/intel-pt/DecodedThread.h
    M lldb/source/Plugins/Trace/intel-pt/IntelPTDecoder.cpp
    M lldb/source/Plugins/Trace/intel-pt/IntelPTDecoder.h
    M lldb/source/Plugins/Trace/intel-pt/TraceIntelPT.cpp
    M lldb/source/Plugins/Trace/intel-pt/TraceIntelPT.h
    M lldb/source/Plugins/Trace/intel-pt/TraceIntelPTOptions.td
    M lldb/source/Plugins/Trace/intel-pt/TraceIntelPTSessionFileParser.cpp
    M lldb/source/Plugins/Trace/intel-pt/TraceIntelPTSessionFileParser.h
    A lldb/source/Plugins/Trace/intel-pt/forward-declarations.h
    M lldb/source/Target/CMakeLists.txt
    M lldb/source/Target/Process.cpp
    M lldb/source/Target/ProcessTrace.cpp
    M lldb/source/Target/StopInfo.cpp
    M lldb/source/Target/Target.cpp
    M lldb/source/Target/Thread.cpp
    A lldb/source/Target/ThreadPostMortemTrace.cpp
    R lldb/source/Target/ThreadTrace.cpp
    M lldb/source/Target/Trace.cpp
    M lldb/source/Target/TraceSessionFileParser.cpp
    M lldb/source/Utility/CMakeLists.txt
    M lldb/source/Utility/StringExtractorGDBRemote.cpp
    A lldb/source/Utility/TraceGDBRemotePackets.cpp
    A lldb/source/Utility/TraceIntelPTGDBRemotePackets.cpp
    R lldb/source/Utility/TraceOptions.cpp
    M lldb/test/API/commands/trace/TestTraceLoad.py
    M lldb/test/API/commands/trace/TestTraceSchema.py
    M lldb/test/API/commands/trace/TestTraceStartStop.py
    M lldb/test/API/commands/trace/intelpt-trace-multi-file/multi-file-no-ld.json
    M lldb/test/API/commands/trace/intelpt-trace/trace.json
    M lldb/test/API/commands/trace/intelpt-trace/trace_2threads.json
    M lldb/test/API/commands/trace/intelpt-trace/trace_bad.json
    M lldb/test/API/commands/trace/intelpt-trace/trace_bad2.json
    M lldb/test/API/commands/trace/intelpt-trace/trace_bad3.json
    M lldb/test/API/commands/trace/intelpt-trace/trace_bad4.json
    M lldb/test/API/commands/trace/intelpt-trace/trace_bad5.json
    M lldb/test/API/commands/trace/intelpt-trace/trace_bad_image.json
    M lldb/test/API/commands/trace/intelpt-trace/trace_wrong_cpu.json
    A lldb/test/API/commands/trace/multiple-threads/Makefile
    A lldb/test/API/commands/trace/multiple-threads/TestTraceStartStopMultipleThreads.py
    A lldb/test/API/commands/trace/multiple-threads/main.cpp
    M lldb/tools/lldb-vscode/JSONUtils.cpp
    M lldb/tools/lldb-vscode/LLDBUtils.cpp
    M lldb/unittests/Process/Linux/CMakeLists.txt
    A lldb/unittests/Process/Linux/IntelPTManagerTests.cpp
    R lldb/unittests/Process/Linux/ProcessorTraceTest.cpp
    M lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp

  Log Message:
  -----------
  [trace][intel-pt] Implement trace start and trace stop

This implements the interactive trace start and stop methods.

This diff ended up being much larger than I anticipated because, by doing it, I found that I had implemented in the beginning many things in a non optimal way. In any case, the code is much better now.

There's a lot of boilerplate code due to the gdb-remote protocol, but the main changes are:

- New tracing packets: jLLDBTraceStop, jLLDBTraceStart, jLLDBTraceGetBinaryData. The gdb-remote packet definitions are quite comprehensive.
- Implementation of the "process trace start|stop" and "thread trace start|stop" commands.
- Implementaiton of an API in Trace.h to interact with live traces.
- Created an IntelPTDecoder for live threads, that use the debugger's stop id as checkpoint for its internal cache.
- Added a functionality to stop the process in case "process tracing" is enabled and a new thread can't traced.
- Added tests

I have some ideas to unify the code paths for post mortem and live threads, but I'll do that in another diff.

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


  Commit: fb0b19c3de3b49bd6c343d6c02293cbcc77520fb
      https://github.com/llvm/llvm-project/commit/fb0b19c3de3b49bd6c343d6c02293cbcc77520fb
  Author: Nico Weber <thakis at chromium.org>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/utils/gn/secondary/clang/tools/driver/BUILD.gn
    M llvm/utils/gn/secondary/libcxx/include/BUILD.gn
    M llvm/utils/gn/secondary/libcxx/src/BUILD.gn
    M llvm/utils/gn/secondary/libcxxabi/src/BUILD.gn

  Log Message:
  -----------
  Reland "[gn build] port 48e4b0f (__config_site)"

This reverts commit 13aff21f0da7007c42d407b4ec5c1f6b24cb6831,
since the CMake part relanded in c06a8f9caa51c7ea7.

The GN part is a bit simpler than last time due to the
prior simplifications in acea470c167fc40.


  Commit: f59ba0849f7a148265dcc89d36a11717d365f368
      https://github.com/llvm/llvm-project/commit/f59ba0849f7a148265dcc89d36a11717d365f368
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/include/llvm/IR/DataLayout.h
    M llvm/lib/IR/DataLayout.cpp

  Log Message:
  -----------
  [StructLayout] Use TrailingObjects to allocate space for MemberOffsets.

MemberOffsets are stored at the end of StructLayout. The class
contains a single entry array to mark the start of the member
offsets. getStructLayout calculates the additional space needed
for additional elements before allocating memory.

This patch converts this to use TrailingObjects. This simplifies
the size computation in getStructLayout and gets rid of the
single entry array.

This is prep work, but to use TypeSize instead of uint64_t for
D98169. The single entry array doesn't work with TypeSize because
TypeSize doesn't have a default constructor. We thought this
change was an improvement by itself so we've separated it out.

Reviewed By: mehdi_amini

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


  Commit: 9eef0fae2b840cef0b44cf94517f70a41cd84d42
      https://github.com/llvm/llvm-project/commit/9eef0fae2b840cef0b44cf94517f70a41cd84d42
  Author: Richard Smith <richard at metafoo.co.uk>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M clang/test/TableGen/emit-diag-docs.td

  Log Message:
  -----------
  Fix test expectations for %diff documentation.


  Commit: 3a83b8b2d29e020b8ccde42d0949db45c7eb356a
      https://github.com/llvm/llvm-project/commit/3a83b8b2d29e020b8ccde42d0949db45c7eb356a
  Author: Lang Hames <lhames at gmail.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h

  Log Message:
  -----------
  [JITLink] Add a setProtectionFlags method to jitlink::Section.

This allows clients to modify the memory protection settings on sections via
jitlink passes. This can be used to, for example, override the default settings
on text pages and make them Read/Write/Executable under the JIT.


  Commit: a4ee79c8ae5ca1bbfa8d78a2782918d1f23f15b2
      https://github.com/llvm/llvm-project/commit/a4ee79c8ae5ca1bbfa8d78a2782918d1f23f15b2
  Author: Walter Erquinigo <a20012251 at gmail.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M lldb/source/Target/Target.cpp
    M lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp

  Log Message:
  -----------
  Fix errors in 0b69756110db444282c40ea16929186b2910c3b1

Errors found in
https://lab.llvm.org/buildbot/#/builders/68/builds/9681/steps/6/logs/stdio


  Commit: 99fd0662278470f5405b8abd79b681b96cac7856
      https://github.com/llvm/llvm-project/commit/99fd0662278470f5405b8abd79b681b96cac7856
  Author: Ta-Wei Tu <tu.da.wei at gmail.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M clang/lib/Sema/SemaDecl.cpp
    A clang/test/SemaCXX/PR49534.cpp

  Log Message:
  -----------
  [clang][Sema] Don't try to initialize implicit variable of invalid anonymous union/struct

This fixes https://bugs.llvm.org/show_bug.cgi?id=49534, where the call to the constructor
of the anonymous union is checked and triggers assertion failure when trying to retrieve
the alignment of the `this` argument (which is a union with virtual function).

The extra check for alignment was introduced in D97187.

Reviewed By: tmatheson

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


  Commit: 431a40e1e28f181e87dd247b91a5e6872dd64ab4
      https://github.com/llvm/llvm-project/commit/431a40e1e28f181e87dd247b91a5e6872dd64ab4
  Author: Juneyoung Lee <aqjune at gmail.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  Log Message:
  -----------
  [LoopUnswitch] Assert that branch condition is either and/or but not both

as suggested at https://reviews.llvm.org/rG5bb38e84d3d0#986321


  Commit: 05998701b93e7db18e6327293e6f634bd31bc4d8
      https://github.com/llvm/llvm-project/commit/05998701b93e7db18e6327293e6f634bd31bc4d8
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfo.td

  Log Message:
  -----------
  [RISCV] Remove some unused ImmLeafs. NFC

These got left behind when we switched RV32 to use selectImm to
match RV64.


  Commit: 0d7fd9f0d09812c6344a7df6498ce504c8d646d1
      https://github.com/llvm/llvm-project/commit/0d7fd9f0d09812c6344a7df6498ce504c8d646d1
  Author: Yang Fan <nullptr.cpp at gmail.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp

  Log Message:
  -----------
  [GlobalISel] Fix Wint-in-bool-context warning (NFC)

GCC warning:
```
/llvm-project/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp: In member function ‘bool llvm::CombinerHelper::matchFunnelShiftToRotate(llvm::MachineInstr&)’:
/llvm-project/llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp:3882:35: warning: ?: using integer constants in boolean context, the expression will always evaluate to ‘true’ [-Wint-in-bool-context]
 3882 |       Opc == TargetOpcode::G_FSHL ? TargetOpcode::G_ROTL : TargetOpcode::G_ROTR;
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```


  Commit: 5db19cc01017ed67ec443dd7b0e7b54d991a67da
      https://github.com/llvm/llvm-project/commit/5db19cc01017ed67ec443dd7b0e7b54d991a67da
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfo.td

  Log Message:
  -----------
  [RISCV] simm12_plus1 should not inherit from Operand. NFC

We only use this in Pat patterns, so it just needs to be an
ImmLeaf. If we did need it as an instruction operand, the
ParserMatchClass, EncoderMethod, and DecoderMethod were probably wrong.


  Commit: 3e5ee194c00dc0303593340daaba3bacbf1caa68
      https://github.com/llvm/llvm-project/commit/3e5ee194c00dc0303593340daaba3bacbf1caa68
  Author: Fangrui Song <i at maskray.me>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp

  Log Message:
  -----------
  [SimpleLoopUnswitch] Fix -Wunused-variable in -DLLVM_ENABLE_ASSERTIONS=off builds after 431a40e1e28f181e87dd247b91a5e6872dd64ab4


  Commit: d332bbee45b5dcd01b3fb7c83c7b3a15292953d7
      https://github.com/llvm/llvm-project/commit/d332bbee45b5dcd01b3fb7c83c7b3a15292953d7
  Author: Zhiwei Chen <chenzhiwei03 at kuaishou.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/utils/emacs/llvm-mode.el

  Log Message:
  -----------
  [Utils][Emacs] Improve syntax highlight

Reviewed By: MaskRay

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


  Commit: eb51dd719f34be09d21b1ef485edc4209fcf811b
      https://github.com/llvm/llvm-project/commit/eb51dd719f34be09d21b1ef485edc4209fcf811b
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/include/llvm/Transforms/Coroutines.h
    M llvm/include/llvm/Transforms/Coroutines/CoroSplit.h
    M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
    M llvm/lib/Transforms/Coroutines/CoroInternal.h
    M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
    A llvm/test/Transforms/Coroutines/coro-debug-O2.ll

  Log Message:
  -----------
  [Coroutine] [Debug] Insert dbg.declare to entry.resume to print alloca in the coroutine frame under O2

Summary: Try to insert dbg.declare to entry.resume basic block in resume
function. In this way, we could print alloca such as __promise in
gdb/lldb under O2, which would be beneficial to debug coroutine program.

Test Plan: check-llvm

Reviewed by: aprantl

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


  Commit: 0269a407f3afb7301594d9977093cb428d059935
      https://github.com/llvm/llvm-project/commit/0269a407f3afb7301594d9977093cb428d059935
  Author: Lang Hames <lhames at gmail.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
    M llvm/include/llvm/ExecutionEngine/JITLink/x86_64.h
    M llvm/include/llvm/ExecutionEngine/RuntimeDyldChecker.h
    M llvm/lib/ExecutionEngine/JITLink/EHFrameSupport.cpp
    M llvm/lib/ExecutionEngine/JITLink/ELF_x86_64.cpp
    M llvm/lib/ExecutionEngine/JITLink/JITLink.cpp
    M llvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp
    M llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp
    M llvm/lib/ExecutionEngine/JITLink/MachO_arm64.cpp
    M llvm/lib/ExecutionEngine/JITLink/MachO_x86_64.cpp
    M llvm/lib/ExecutionEngine/JITLink/x86_64.cpp
    M llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
    M llvm/tools/llvm-jitlink/llvm-jitlink-elf.cpp
    M llvm/tools/llvm-jitlink/llvm-jitlink-macho.cpp
    M llvm/tools/llvm-jitlink/llvm-jitlink.cpp
    M llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp
    M llvm/unittests/ExecutionEngine/JITLink/LinkGraphTests.cpp

  Log Message:
  -----------
  [JITLink] Switch from StringRef to ArrayRef<char>, add some generic x86-64 utils

Adds utilities for creating anonymous pointers and jump stubs to x86_64.h. These
are used by the GOT and Stubs builder, but may also be used by pass writers who
want to create pointer stubs for indirection.

This patch also switches the underlying type for LinkGraph content from
StringRef to ArrayRef<char>. This avoids any confusion when working with buffers
that contain null bytes in the middle like, for example, a newly added null
pointer content array. ;)


  Commit: 4e0045cc9b00ed18a7b8981d468a9d01eb4f6780
      https://github.com/llvm/llvm-project/commit/4e0045cc9b00ed18a7b8981d468a9d01eb4f6780
  Author: Nathan Chancellor <nathan at kernel.org>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M libc/CMakeLists.txt

  Log Message:
  -----------
  libc: Default LIBC_INSTALL_PREFIX to ${CMAKE_INSTALL_PREFIX}

b22f448c21e718a3b6 added a rule to install libllvmlibc.a to
${LIBC_INSTALL_PREFIX}/${LIBC_INSTALL_LIBRARY_DIR}, which will be /lib
by default, which is disruptive to builds that stay within a user's
/home holder:

  $ ninja install
  ...
  -- Installing: /lib/libllvmlibc.a
  CMake Error at projects/libc/lib/cmake_install.cmake:54 (file):
    file INSTALL cannot copy file
   "/home/nathan/cbl/github/tc-build/build/llvm/stage1/projects/libc/lib/libllvmlibc.a"
    to "/lib/libllvmlibc.a": Permission denied.
  Call Stack (most recent call first):
    projects/libc/cmake_install.cmake:51 (include)
    projects/cmake_install.cmake:47 (include)
    cmake_install.cmake:76 (include)
  ...

Change LIBC_INSTALL_PREFIX's default value to ${CMAKE_INSTALL_PREFIX} so
that 'ninja install' does not attempt to install anything outside of the
user's requested installation location.

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

Reviewed By: sivachandra

Signed-off-by: Nathan Chancellor <nathan at kernel.org>


  Commit: 9a9214fa2562b397764193517fa540a3dcbfd5a1
      https://github.com/llvm/llvm-project/commit/9a9214fa2562b397764193517fa540a3dcbfd5a1
  Author: Stella Laurenzo <stellaraccident at gmail.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M mlir/include/mlir-c/IR.h
    M mlir/lib/Bindings/Python/IRCore.cpp
    M mlir/lib/CAPI/IR/IR.cpp
    M mlir/test/Bindings/Python/dialects.py
    M mlir/test/CAPI/ir.c

  Log Message:
  -----------
  [mlir] Add C and python API for is_registered_operation.

* Suggested to be broken out of D99578

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


  Commit: ec235dd3556d9879b0ec58ebd6009904d0ef0d24
      https://github.com/llvm/llvm-project/commit/ec235dd3556d9879b0ec58ebd6009904d0ef0d24
  Author: Lang Hames <lhames at gmail.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
    M llvm/unittests/ExecutionEngine/JITLink/LinkGraphTests.cpp

  Log Message:
  -----------
  [JITLink] Delete copy and move constructors for jitlink::Section.

Sections are not movable or copyable.


  Commit: 32ca5a037ab9191d570bf9b5e0f13e28c3db27d9
      https://github.com/llvm/llvm-project/commit/32ca5a037ab9191d570bf9b5e0f13e28c3db27d9
  Author: Jim Lin <tclin914 at gmail.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M clang/test/Preprocessor/riscv-target-features.c

  Log Message:
  -----------
  [RISCV] Refine pre-define macro tests

1. Undefined macro test for rv32i and rv64i.
  a. Reorder it with canonical order.
  b. Add missing  undefined macro check.
  c. Append defined value to `__riscv_a`, `__riscv_f` and `__riscv_c` to distinguish with
      `__riscv_arch_test`, `__riscv_cmodel_medlow` and `__riscv_float_abi_soft`. They have the same prefix.
2. Move abi macro test below f and d.
3. Unify coding style for newline.

Reviewed By: HsiangKai

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


  Commit: 4a0a85becc9e19d288b5adcf713cb9e135c7f022
      https://github.com/llvm/llvm-project/commit/4a0a85becc9e19d288b5adcf713cb9e135c7f022
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M libcxx/test/libcxx/strings/c.strings/version_cuchar.pass.cpp
    M libcxx/test/std/strings/c.strings/cuchar.pass.cpp

  Log Message:
  -----------
  [libcxx] [test] Fix tests of <cuchar> that unexpectedly succeed on windows

The tests expect that the <cuchar> include should fail. When libc++
is built on top of the MSVC runtime, the header does exist provided
by MSVC. Therefore, just mark the test as unsupported on windows,
to avoid tests that unexpectedly succeed.

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


  Commit: 7acfd85756736b2e240cc3a4ffd56f26d73ace9e
      https://github.com/llvm/llvm-project/commit/7acfd85756736b2e240cc3a4ffd56f26d73ace9e
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M libcxx/utils/libcxx/test/config.py

  Log Message:
  -----------
  [libcxx] [test] Don't add dirs from the LIB env var to PATH

The directories in LIB normally only contain import libraries or
static libraries, no runtime DLLs that would need to be found
while running tests.

This code stems from 1cd196e7b46e49d170a4b4013879a577dee59cb2,
which (among other things) tried to do this:

> * [Test] Fix handling of library runtime search paths by correctly adding them
>   to the PATH variable when running the tests.

It's unclear to me exactly what this fixed (or tried to) at the time,
as the LIB var doesn't normally point to runtime libs.

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


  Commit: 7588ed3a49f1198dcf779067665f959fa6135ac9
      https://github.com/llvm/llvm-project/commit/7588ed3a49f1198dcf779067665f959fa6135ac9
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/test/CodeGen/X86/tbm_patterns.ll

  Log Message:
  -----------
  [X86] Regenerate test to add missing @PLT


  Commit: afed50a14b34eb619624aed5c85f4f610f360650
      https://github.com/llvm/llvm-project/commit/afed50a14b34eb619624aed5c85f4f610f360650
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M llvm/test/CodeGen/X86/bmi.ll
    M llvm/test/CodeGen/X86/tbm_patterns.ll

  Log Message:
  -----------
  [X86] Add test cases for PR48768 and D94856. NFC

This covers the BMI and TBM instructions. More tests will be
needed for other instructions.


  Commit: 465b9a4a3303727df1584ca52bdced964a34efe9
      https://github.com/llvm/llvm-project/commit/465b9a4a3303727df1584ca52bdced964a34efe9
  Author: Alexander Belyaev <pifon at google.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M mlir/docs/BufferDeallocationInternals.md
    M mlir/include/mlir/Dialect/MemRef/IR/MemRef.h
    M mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
    A mlir/include/mlir/Dialect/MemRef/Utils/MemRefUtils.h
    M mlir/include/mlir/Transforms/BufferUtils.h
    M mlir/include/mlir/Transforms/Passes.h
    M mlir/include/mlir/Transforms/Passes.td
    M mlir/lib/Dialect/MemRef/CMakeLists.txt
    M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
    A mlir/lib/Dialect/MemRef/Utils/MemRefUtils.cpp
    M mlir/lib/Transforms/BufferDeallocation.cpp
    M mlir/lib/Transforms/BufferUtils.cpp
    M mlir/lib/Transforms/CMakeLists.txt
    R mlir/lib/Transforms/CopyRemoval.cpp
    M mlir/test/Transforms/buffer-deallocation.mlir
    M mlir/test/Transforms/canonicalize.mlir
    R mlir/test/Transforms/copy-removal.mlir

  Log Message:
  -----------
  Revert "Revert "[mlir] Introduce CloneOp and adapt test cases in BufferDeallocation.""

This reverts commit 883912abe669ef246ada0adc9cf1c9748b742400.


  Commit: 43b9fa3ce0ddfa673158af1596c3aac613b258b3
      https://github.com/llvm/llvm-project/commit/43b9fa3ce0ddfa673158af1596c3aac613b258b3
  Author: Nicolas Vasilache <nicolas.vasilache at gmail.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M mlir/include/mlir-c/Dialect/Linalg.h
    M mlir/include/mlir/Dialect/Linalg/IR/LinalgBase.td
    M mlir/include/mlir/Dialect/Linalg/IR/LinalgTypes.h
    M mlir/lib/Bindings/Python/CMakeLists.txt
    A mlir/lib/Bindings/Python/DialectLinalg.cpp
    A mlir/lib/Bindings/Python/DialectLinalg.h
    M mlir/lib/Bindings/Python/MainModule.cpp
    M mlir/lib/Bindings/Python/mlir/dialects/linalg/opdsl/lang/dsl.py
    M mlir/lib/Bindings/Python/mlir/dialects/linalg/opdsl/lang/emitter.py
    M mlir/lib/CAPI/Dialect/Linalg.cpp
    M mlir/lib/Dialect/Linalg/IR/LinalgTypes.cpp
    M mlir/test/Bindings/Python/dialects/linalg/ops.py

  Log Message:
  -----------
  [mlir][Linalg][Python] Create the body of builtin named Linalg ops

This revision adds support to properly add the body of registered
builtin named linalg ops.
At this time, indexing_map and iterator_type support is still
missing so the op is not executable yet.

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


  Commit: 8fa570c96908a459d3b067a815b7c307f4555556
      https://github.com/llvm/llvm-project/commit/8fa570c96908a459d3b067a815b7c307f4555556
  Author: Alex Richardson <Alexander.Richardson at cl.cam.ac.uk>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/test/MC/WebAssembly/debug-info64.ll

  Log Message:
  -----------
  [WebAssembly] Fix incorrect DW_TAG_pointer_type size in test

It should be 64 bits not 32 for wasm64-unknown-unknown. I noticed this
because this test was failing in our CHERI fork of LLVM due to a larger
.debug_abbrev section size. It turns out this happens because we add
DW_AT_byte_size for non-default pointer sizes to allow debugging our
hybrid compilation mode where we can have two different kinds of pointers.

Reviewed By: aardappel

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


  Commit: ce193ea9e8430f15d19dd60d73f13a66e4f374ac
      https://github.com/llvm/llvm-project/commit/ce193ea9e8430f15d19dd60d73f13a66e4f374ac
  Author: Alex Richardson <Alexander.Richardson at cl.cam.ac.uk>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M compiler-rt/test/asan/TestCases/Posix/asan-sigbus.cpp

  Log Message:
  -----------
  [asan] Remove FreeBSD XFAIL from asan-sigbus.cpp test

This test passes for me on FreeBSD 12.2 and was probably fixed by
https://svnweb.freebsd.org/base?view=revision&revision=352807.

Reviewed By: emaste

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


  Commit: 44ce487bfe8badc3e3718e7cc81c289540e6725d
      https://github.com/llvm/llvm-project/commit/44ce487bfe8badc3e3718e7cc81c289540e6725d
  Author: Alex Richardson <Alexander.Richardson at cl.cam.ac.uk>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/utils/TableGen/CodeGenDAGPatterns.cpp

  Log Message:
  -----------
  [TableGen] Emit more helpful error messages on empty type set

I have seen this error quite frequently in our out-of-tree CHERI backends
and the lack of location information sometimes makes it quite difficult
to track down the actual source of the error.
This patch changes the llvm_unreachable() to a PrintFatalError() so that
tablegen prints a stack of source locations.

Reviewed By: craig.topper

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


  Commit: b5995fced41de0885a5ef8f1b8a25ef45d8be711
      https://github.com/llvm/llvm-project/commit/b5995fced41de0885a5ef8f1b8a25ef45d8be711
  Author: Sven van Haastregt <sven.vanhaastregt at arm.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M clang/lib/Headers/opencl-c.h
    M clang/lib/Sema/OpenCLBuiltins.td

  Log Message:
  -----------
  [OpenCL] Limit popcount to OpenCL 1.2 and above

s6.15.3 of the OpenCL C Specification v3.0.6 states that OpenCL 1.2 or
newer is required.


  Commit: 95f813504386aab17b16759602a37b0686115a1e
      https://github.com/llvm/llvm-project/commit/95f813504386aab17b16759602a37b0686115a1e
  Author: Matthias Springer <springerm at google.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/Vector/VectorOps.h
    M mlir/include/mlir/Dialect/Vector/VectorOps.td
    M mlir/include/mlir/Dialect/Vector/VectorTransforms.h
    M mlir/include/mlir/Interfaces/VectorInterfaces.td
    M mlir/lib/Conversion/StandardToSPIRV/LegalizeStandardForSPIRV.cpp
    M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
    M mlir/lib/Conversion/VectorToROCDL/VectorToROCDL.cpp
    M mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
    M mlir/lib/Dialect/Vector/VectorOps.cpp
    M mlir/lib/Dialect/Vector/VectorTransferOpTransforms.cpp
    M mlir/lib/Dialect/Vector/VectorTransforms.cpp
    M mlir/test/Conversion/LinalgToVector/linalg-to-vector.mlir
    M mlir/test/Conversion/StandardToSPIRV/legalization.mlir
    M mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
    M mlir/test/Conversion/VectorToSCF/vector-to-loops.mlir
    M mlir/test/Dialect/Linalg/forward-vector-transfers.mlir
    M mlir/test/Dialect/Linalg/vectorization.mlir
    M mlir/test/Dialect/Vector/canonicalize.mlir
    M mlir/test/Dialect/Vector/invalid.mlir
    M mlir/test/Dialect/Vector/ops.mlir
    M mlir/test/Dialect/Vector/vector-transfer-full-partial-split.mlir
    M mlir/test/Dialect/Vector/vector-transfer-lowering.mlir
    M mlir/test/Dialect/Vector/vector-transferop-opt.mlir
    M mlir/test/Dialect/Vector/vector-transforms.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-transfer-read.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-transfer-write.mlir

  Log Message:
  -----------
  [mlir] Change vector.transfer_read/write "masked" attribute to "in_bounds".

This is in preparation for adding a new "mask" operand. The existing "masked" attribute was used to specify dimensions that may be out-of-bounds. Such transfers can be lowered to masked load/stores. The new "in_bounds" attribute is used to specify dimensions that are guaranteed to be within bounds. (Semantics is inverted.)

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


  Commit: 49c0ab6d7611050ae902f6369fc878e17da453ad
      https://github.com/llvm/llvm-project/commit/49c0ab6d7611050ae902f6369fc878e17da453ad
  Author: Balázs Kéri <1.int32 at gmail.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
    A clang/test/Analysis/pthreadlock_state.c

  Log Message:
  -----------
  [clang][Checkers] Extend PthreadLockChecker state dump (NFC).

Add printing of map 'DestroyRetVal'.

Reviewed By: steakhal

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


  Commit: 3ccbd4f3c7d164f7cb655ea15ab048176f7ba5b8
      https://github.com/llvm/llvm-project/commit/3ccbd4f3c7d164f7cb655ea15ab048176f7ba5b8
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/TargetTransformInfo.h
    M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
    M llvm/include/llvm/CodeGen/BasicTTIImpl.h
    M llvm/lib/Analysis/InlineCost.cpp
    M llvm/lib/Analysis/TargetTransformInfo.cpp
    M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
    M llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp
    M llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h
    M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
    M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h

  Log Message:
  -----------
  NFC: Change getUserCost to return InstructionCost

This patch migrates the TTI cost interfaces to return an InstructionCost.

See this patch for the introduction of the type: https://reviews.llvm.org/D91174
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html

Depends on D97382

Reviewed By: ctetreau, paulwalker-arm

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


  Commit: 52e015081a7768e1ba00a811a8e1a456f8aeecb4
      https://github.com/llvm/llvm-project/commit/52e015081a7768e1ba00a811a8e1a456f8aeecb4
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/arm64-build-vector.ll

  Log Message:
  -----------
  [AArch64] Avoid SCALAR_TO_VECTOR for single FP constant vector.

Currently the code only checks for integer constants (ConstantSDNode)
and triggers an infinite cycle for single-element floating point
vector constants. We need to check for both FP and integer constants.

Reviewed By: t.p.northover

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


  Commit: 936d1e97a32d05471f845d69496abcbf54687e72
      https://github.com/llvm/llvm-project/commit/936d1e97a32d05471f845d69496abcbf54687e72
  Author: Balazs Benics <balazsbenics at sigmatechnology.se>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M clang/unittests/AST/ASTImporterTest.cpp

  Log Message:
  -----------
  [ASTImporter][NFC] Improve test coverage

All three cases were imported correctly.
For BlockDecls, correctly means that we don't support importing them, thus an
error is the expected behaviour.

 - BlockDecls were not yet covered. I know that they are not imported but the
   test at least documents it.
 - Default values for ParmVarDecls were also uncovered.
 - Importing bitfield FieldDecls were imported correctly.

Reviewed By: martong, shafik

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


  Commit: 5d0e9ddfa512ea3b2dd500e7abe93af30c1d9e11
      https://github.com/llvm/llvm-project/commit/5d0e9ddfa512ea3b2dd500e7abe93af30c1d9e11
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
    M llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
    A llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-atomicrmw-fadd-global.mir
    A llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-atomicrmw-fadd-local.mir
    R llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-atomicrmw-fadd.mir

  Log Message:
  -----------
  [AMDGPU][GlobalISel] Add support for global atomicrmw fadd

This includes gfx908 which only has a no-return version of the
global_atomic_add_f32 instruction, using the same hack that was
previously implemented for selecting from the
llvm.amdgcn.global.atomic.fadd intrinsic.

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


  Commit: 98d070396d2b80b8abcad1c24c5875b33495ada0
      https://github.com/llvm/llvm-project/commit/98d070396d2b80b8abcad1c24c5875b33495ada0
  Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M lldb/test/API/tools/lldb-vscode/disconnect/TestVSCode_disconnect.py

  Log Message:
  -----------
  Revert "[LLDB] Skip TestVSCode_disconnect.test_launch arm/linux"

This reverts commit 73cf85e527f69c495daece7c74743b9073d4717c.


  Commit: 10fc6e4358115258685cdf9c269a7eec30f97451
      https://github.com/llvm/llvm-project/commit/10fc6e4358115258685cdf9c269a7eec30f97451
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-stepvector-rv32.ll
    A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-stepvector-rv64.ll
    A llvm/test/CodeGen/RISCV/rvv/stepvector-rv32.ll
    A llvm/test/CodeGen/RISCV/rvv/stepvector-rv64.ll

  Log Message:
  -----------
  [RISCV] Add support for the stepvector intrinsic

This adds almost everything required for supporting the new stepvector
intrinsic on RVV. It is lowered to the existing VID_VL SDNode.

The only exception is a limitation that RV32 cannot yet lower the
intrinsic on i64 vectors. This is because the step operand is
(currently) required to be at least as large as the vector element type.
I will look into patching that out and loosening the requirement to only
an integer pointer type.

Reviewed By: craig.topper

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


  Commit: 9d474be11d71b5ae13490d3d8bd66150765560e3
      https://github.com/llvm/llvm-project/commit/9d474be11d71b5ae13490d3d8bd66150765560e3
  Author: Balazs Benics <balazsbenics at sigmatechnology.se>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M clang/unittests/AST/ASTImporterTest.cpp

  Log Message:
  -----------
  [ASTImporter][NFC] Fix duplicated symbols in "Improve test coverage"

D99576 introduced a duplicate symbol, now im removing it.

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


  Commit: ce548aa236962f95ccaf59f8692ed0861f3769dd
      https://github.com/llvm/llvm-project/commit/ce548aa236962f95ccaf59f8692ed0861f3769dd
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h
    M llvm/lib/Target/X86/X86.td

  Log Message:
  -----------
  [X86] AMD Zen 3 has macro fusion

This is an improvement over Zen 2, where only branch fusion is supported,
as per Agner, 21.4 Instruction fusion.
AMD SOG 17h has no mention of fusion.

AMD SOG 19h, 2.9.3 Branch Fusion
The following flag writing instructions support branch fusion
with their reg/reg, reg/imm and reg/mem forms
* CMP
* TEST
* SUB
* ADD
* INC (no fusion with branches dependent on CF)
* DEC (no fusion with branches dependent on CF)
* OR
* AND
* XOR

Agner, 22.4 Instruction fusion
<...> This applies to CMP, TEST, ADD, SUB, AND, OR, XOR, INC, DEC and
all conditional jumps, except if the arithmetic or logic instruction has a rip-relative address or
both an address displacement and an immediate operand.


  Commit: d2d6720a93a2469fb3a752bd59674bd2cf97d91f
      https://github.com/llvm/llvm-project/commit/d2d6720a93a2469fb3a752bd59674bd2cf97d91f
  Author: Liqiang Tao <taolq at outlook.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/lib/Analysis/InlineCost.cpp

  Log Message:
  -----------
  [InlineCost] Remove TODO comment that consider other forms of savings in the cost-benefit analysis

Attempts to compute savings more accurately cannot impact the set of critically important call sites.

Reviewed By: kazu

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


  Commit: feb6f2c78fa9474e7329c4a809f175b1675d0975
      https://github.com/llvm/llvm-project/commit/feb6f2c78fa9474e7329c4a809f175b1675d0975
  Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/lldbtest.py
    R lldb/test/API/commands/register/register/aarch64_dynamic_regset/Makefile
    R lldb/test/API/commands/register/register/aarch64_dynamic_regset/TestArm64DynamicRegsets.py
    R lldb/test/API/commands/register/register/aarch64_dynamic_regset/main.c

  Log Message:
  -----------
  Revert "[LLDB] Arm64/Linux test case for MTE and Pointer Authentication regset"

This reverts commit 9ab677180091a690cd99d4ac55d5fb9e1149b1ec.

Reason: LLDB AArch64/Linux buildbot failure.


  Commit: 71b648f7158c7a0b4918eaa3e94d307e4bbfce97
      https://github.com/llvm/llvm-project/commit/71b648f7158c7a0b4918eaa3e94d307e4bbfce97
  Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
    M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
    M lldb/source/Plugins/Process/Linux/NativeThreadLinux.h
    M lldb/source/Plugins/Process/POSIX/NativeProcessELF.h
    M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp
    M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.h
    M lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h

  Log Message:
  -----------
  Revert "[LLDB] Arm64/Linux Add MTE and Pointer Authentication registers"

This reverts commit 1164b4e2957290e814c3dd781a68e504dd39148e.

Reason: LLDB AArch64 Linux buildbot failure


  Commit: 8396aeb07cddd8ab9a6a154a4ab7ac56fc24bda5
      https://github.com/llvm/llvm-project/commit/8396aeb07cddd8ab9a6a154a4ab7ac56fc24bda5
  Author: Max Kazantsev <mkazantsev at azul.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/test/Transforms/GVN/condprop.ll

  Log Message:
  -----------
  [Test] Auto-update test checks


  Commit: 2f56e1c6b1370f48877acbd774638e451685f6db
      https://github.com/llvm/llvm-project/commit/2f56e1c6b1370f48877acbd774638e451685f6db
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/include/llvm/CodeGen/BasicTTIImpl.h
    M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
    M llvm/lib/Target/X86/X86TargetTransformInfo.h

  Log Message:
  -----------
  NFC: Change getTypeBasedIntrinsicCost to return InstructionCost

This patch migrates the TTI cost interfaces to return an InstructionCost.

See this patch for the introduction of the type: https://reviews.llvm.org/D91174
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html

Depends on D97466

Reviewed By: dmgreen

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


  Commit: 2f6f249a49e6f21f601d89597253fe71c07dc5c0
      https://github.com/llvm/llvm-project/commit/2f6f249a49e6f21f601d89597253fe71c07dc5c0
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/TargetTransformInfo.h
    M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
    M llvm/include/llvm/CodeGen/BasicTTIImpl.h
    M llvm/lib/Analysis/TargetTransformInfo.cpp
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
    M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
    M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
    M llvm/lib/Target/ARM/ARMTargetTransformInfo.h
    M llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp
    M llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h
    M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
    M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
    M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
    M llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
    M llvm/lib/Target/X86/X86TargetTransformInfo.h

  Log Message:
  -----------
  NFC: Change getIntrinsicInstrCost to return InstructionCost

This patch migrates the TTI cost interfaces to return an InstructionCost.

See this patch for the introduction of the type: https://reviews.llvm.org/D91174
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2020-November/146408.html

Depends on D97468

Reviewed By: dmgreen

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


  Commit: ffcb4b43b799f518891088076ef083ca8f13c537
      https://github.com/llvm/llvm-project/commit/ffcb4b43b799f518891088076ef083ca8f13c537
  Author: Balázs Kéri <1.int32 at gmail.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
    R clang/test/Analysis/pthreadlock_state.c

  Log Message:
  -----------
  Revert "[clang][Checkers] Extend PthreadLockChecker state dump (NFC)."

This reverts commit 49c0ab6d7611050ae902f6369fc878e17da453ad.

Test failures showed up because non-deterministic output.


  Commit: 9f4022ffeb20eff91c7461828592dc812ee5a28e
      https://github.com/llvm/llvm-project/commit/9f4022ffeb20eff91c7461828592dc812ee5a28e
  Author: Joerg Sonnenberger <joerg at bec.de>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M libcxx/include/thread

  Log Message:
  -----------
  [libc++] Avoid <climits> dependency in <thread>

The standard guarantees sleep durations of 2^63-1 nanoseconds to work.
Instead of depending on INT64_MAX or ULONGLONG_MAX to exist via the
header pollution, fold the constant directly. That has the additional
positive side effect that it avoids long double arithmetic bugs in GCC.

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


  Commit: dc7ebd2cb0cf4a83bb6cd1bfc8853b0a30054777
      https://github.com/llvm/llvm-project/commit/dc7ebd2cb0cf4a83bb6cd1bfc8853b0a30054777
  Author: Anton Bikineev <bikineev at chromium.org>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticCommonKinds.td
    M clang/include/clang/Lex/LiteralSupport.h
    M clang/lib/Frontend/InitPreprocessor.cpp
    M clang/lib/Lex/LiteralSupport.cpp
    M clang/lib/Lex/PPExpressions.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/test/Lexer/cxx-features.cpp
    A clang/test/Lexer/size_t-literal.cpp
    M clang/test/SemaCXX/cxx1y-user-defined-literals.cpp
    A clang/test/SemaCXX/size_t-literal.cpp
    M clang/www/cxx_status.html

  Log Message:
  -----------
  [C++2b] Support size_t literals

This adds support for C++2b's z/uz suffixes for size_t literals (P0330).


  Commit: b6d05297803d8e6bae6a1159b66e85a07995d6fb
      https://github.com/llvm/llvm-project/commit/b6d05297803d8e6bae6a1159b66e85a07995d6fb
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/include/llvm/CodeGen/BasicTTIImpl.h
    M llvm/test/Analysis/CostModel/AArch64/sve-intrinsics.ll
    M llvm/test/Analysis/CostModel/AArch64/sve-math.ll

  Log Message:
  -----------
  [CostModel] Align the cost model for intrinsics for scalable/fixed-width vectors.

Let getIntrinsicInstrCost call getTypeBasedIntrinsicInstrCost for scalable vectors,
similar to how this is done for fixed-width vectors, instead of falling back
on BaseT::getIntrinsicInstrCost().

If the intrinsic cannot be costed (or is not overloaded by the target),
it will return InstructionCost::getInvalid() instead.

Depends on D97469

Reviewed By: david-arm

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


  Commit: 7108b2dec17d895aec874477f62ccc6c663c2307
      https://github.com/llvm/llvm-project/commit/7108b2dec17d895aec874477f62ccc6c663c2307
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Analysis/CostModel/AArch64/sve-intrinsics.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/scalable-call.ll

  Log Message:
  -----------
  [SVE] Fix LoopVectorizer test scalalable-call.ll

This marks FSIN and other operations to EXPAND for scalable
vectors, so that they are not assumed to be legal by the cost-model.

Depends on D97470

Reviewed By: dmgreen, paulwalker-arm

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


  Commit: a8cf32baf57de151bb6a8341957e101b04a6e816
      https://github.com/llvm/llvm-project/commit/a8cf32baf57de151bb6a8341957e101b04a6e816
  Author: Luís Marques <luismarques at lowrisc.org>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M clang/test/CodeGen/sanitize-coverage-old-pm.c

  Log Message:
  -----------
  [RISCV] Add XFAIL riscv32 for known issue with the old pass manager

See D80668, rG7b4832648a63 and https://bugs.llvm.org/show_bug.cgi?id=46117
for details of the issue.

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


  Commit: 3bdd674fbf767d719dc67e10bc079cb183dd3a3f
      https://github.com/llvm/llvm-project/commit/3bdd674fbf767d719dc67e10bc079cb183dd3a3f
  Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M libcxx/test/std/utilities/tuple/tuple.tuple/tuple.assign/convert_copy.pass.cpp

  Log Message:
  -----------
  [libc++] Mark convert_copy.pass.cpp as UNSUPPORTED on clang-13 (i.e. trunk).

Because the constexpr-time codepath triggers a Clang bug. It seems
that Clang compiles it okay in release mode, but when Clang itself
is compiled in debug mode (with assertions turned on), this input
triggers an assertion failure in Clang itself. See comments on D96385
and Clang bug report https://bugs.llvm.org/show_bug.cgi?id=45879

This commit should get the debug-mode buildbots back to green.


  Commit: 5018e15fdfda855f130cdb78acb88540046853af
      https://github.com/llvm/llvm-project/commit/5018e15fdfda855f130cdb78acb88540046853af
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M clang/include/clang/Parse/Parser.h
    M clang/lib/Parse/ParseDecl.cpp
    M clang/lib/Parse/ParseDeclCXX.cpp
    M clang/test/Parser/cxx0x-attributes.cpp

  Log Message:
  -----------
  [clang][parser] Allow GNU-style attributes in explicit template...

... instantiations

They are currently not being diagnosed because ProhibitAttributes() does
not handle attribute lists with an invalid source range. But once it
does, we need to allow GNU attributes in this place.

Additionally, start optionally diagnosing empty attr lists in
ProhibitCXX11Attributes(), since ProhibitAttribute() does it.

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


  Commit: 4e52daa2540473286429862883a643869def8fe1
      https://github.com/llvm/llvm-project/commit/4e52daa2540473286429862883a643869def8fe1
  Author: Bradley Smith <bradley.smith at arm.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    A llvm/test/CodeGen/AArch64/sve-fixed-length-int-rem.ll

  Log Message:
  -----------
  [AArch64][SVE] Add tests for UREM/SREM using fixed SVE types

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


  Commit: 07a6d07c482706268caa9c4f9e3a13d71f9c7fb9
      https://github.com/llvm/llvm-project/commit/07a6d07c482706268caa9c4f9e3a13d71f9c7fb9
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/test/Transforms/InstCombine/abs-intrinsic.ll

  Log Message:
  -----------
  [InstCombine] add tests for srem+abs; NFC


  Commit: 1462bdf1b985256fb52ddccdbbe8fbf5a9ad48b5
      https://github.com/llvm/llvm-project/commit/1462bdf1b985256fb52ddccdbbe8fbf5a9ad48b5
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/test/Transforms/InstCombine/abs-intrinsic.ll

  Log Message:
  -----------
  [InstCombine] fold abs(srem X, 2)

This is a missing optimization based on an example in:
https://llvm.org/PR49763

As noted there and the test here, we could add a more
general fold if that is shown useful.

https://alive2.llvm.org/ce/z/xEHdTv
https://alive2.llvm.org/ce/z/97dcY5


  Commit: f38a9d63402d8a6b524e5397845a6435faedb10a
      https://github.com/llvm/llvm-project/commit/f38a9d63402d8a6b524e5397845a6435faedb10a
  Author: Heejin Ahn <aheejin at gmail.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    A llvm/test/MC/WebAssembly/event-section-decoding.ll
    R llvm/test/MC/WebAssembly/event-section-encoding.ll

  Log Message:
  -----------
  [WebAssembly] Raname a test and fix comments

D99627 fixed a decoding bug, not an encoding bug. This renames the test
to correct it and fix comments.

Reviewed By: dschuff

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


  Commit: 09b2419360e1bf35037fc7b4299074150e8e68a5
      https://github.com/llvm/llvm-project/commit/09b2419360e1bf35037fc7b4299074150e8e68a5
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/tools/llvm-jitlink/llvm-jitlink.cpp

  Log Message:
  -----------
  [llvm-jitlink] Fix -Wunused-function on Windows

Reviewed By: sgraenitz

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


  Commit: 04f10ab367b5c547f5de3285890e74146a5949b0
      https://github.com/llvm/llvm-project/commit/04f10ab367b5c547f5de3285890e74146a5949b0
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoV.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/test/CodeGen/RISCV/rvv/vsub-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vsub-rv64.ll

  Log Message:
  -----------
  [RISCV] Add isel patterns to select vsub_vx intrinsic to vadd.vi if it uses a small enough immediate

Also modify the simm5_plus1 check because Imm-1 is UB if Imm happens
to be INT64_MIN. I don't think the compiler would optimize based on that in this
usage, but it could fail UBSan or -ftrapv.

Reviewed By: HsiangKai, frasercrmck

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


  Commit: a991ee330b6f008b7c68816ace9ec44561ce69de
      https://github.com/llvm/llvm-project/commit/a991ee330b6f008b7c68816ace9ec44561ce69de
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.load.1d.ll

  Log Message:
  -----------
  [AMDGPU] Use a common check prefix for some image tests. NFC.


  Commit: b138cf115efaea69326b5852c3abbef1c1d03e79
      https://github.com/llvm/llvm-project/commit/b138cf115efaea69326b5852c3abbef1c1d03e79
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.load.1d.ll

  Log Message:
  -----------
  [AMDGPU] Add some image tests with enable-prt-strict-null disabled. NFC.


  Commit: 2a8b7cab6a3b52ab27acc44ba50a1528c8aa2d44
      https://github.com/llvm/llvm-project/commit/2a8b7cab6a3b52ab27acc44ba50a1528c8aa2d44
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/lib/Target/RISCV/RISCVInstrInfoB.td
    M llvm/test/CodeGen/RISCV/rv64zbb.ll

  Log Message:
  -----------
  [RISCV] Add RISCVISD opcodes for CLZW and CTZW.

Our CLZW isel pattern is quite easily broken by surrounding code
preventing it from matching sometimes. This usually results in
failing to remove the and X, 0xffffffff inserted by type
legalization. The add with -32 that type legalization also inserts
will often gets combined into other add/sub nodes. That doesn't
usually result in extra code when we don't use clzw.

CTTZ seems to be less fragile, but I wanted to keep it consistent
with CTLZ.

Reviewed By: asb, HsiangKai

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


  Commit: 563cdeaafd5812cb90656380a8f9d6b85d2abf08
      https://github.com/llvm/llvm-project/commit/563cdeaafd5812cb90656380a8f9d6b85d2abf08
  Author: Wael Yehia <wyehia at ca.ibm.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/include/llvm-c/lto.h
    M llvm/include/llvm/LTO/legacy/LTOCodeGenerator.h
    M llvm/lib/LTO/LTOCodeGenerator.cpp
    M llvm/tools/lto/lto.cpp
    M llvm/tools/lto/lto.exports

  Log Message:
  -----------
  [LTO][Legacy] Decouple option parsing from LTOCodeGenerator

in this patch we add a new libLTO API to specify debug options independent of an lto_code_gen_t.
This allows clients to pass codegen flags (through libLTO) which otherwise today are ignored.

Reviewed By: steven_wu

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


  Commit: 50b8634a99b6f2f36a3fdbea7aa7892c9b881d64
      https://github.com/llvm/llvm-project/commit/50b8634a99b6f2f36a3fdbea7aa7892c9b881d64
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/test/CodeGen/X86/bmi.ll
    M llvm/test/CodeGen/X86/tbm_patterns.ll

  Log Message:
  -----------
  [X86] Improve optimizeCompareInstr for signed comparisons after BMI/TBM instructions

We previously couldn't optimize out a TEST if the branch/setcc/cmov
used the overflow flag. This patches allows the TEST to be removed
if the flag producing instruction is known to clear the OF flag.
Thats what the TEST instruction would have done so that should be
equivalent.

Need to add test cases. I'll try to get back to this if I have bandwidth.

Fixes PR48768.

Reviewed By: RKSimon

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


  Commit: 00c0c8c87d300406d8121bcdf02ae75b9b1af9c3
      https://github.com/llvm/llvm-project/commit/00c0c8c87d300406d8121bcdf02ae75b9b1af9c3
  Author: Shimin Cui <scui at ca.ibm.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
    M llvm/test/CodeGen/PowerPC/licm-tocReg.ll

  Log Message:
  -----------
  [PowerPC] [MLICM] Enable hoisting of caller preserved registers on AIX

On ppc64 linux , MachineLICM will hoist caller preserved registers, including TOC loads of the global variable address, out of loops. This is to enable this on AIX for both ppc64 and ppc32.

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


  Commit: 437958d9fdb63779c10499befd7fb6ef67418a5f
      https://github.com/llvm/llvm-project/commit/437958d9fdb63779c10499befd7fb6ef67418a5f
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/prefer-avx256-mulo.ll
    M llvm/test/CodeGen/X86/vec_smulo.ll
    M llvm/test/CodeGen/X86/vec_umulo.ll

  Log Message:
  -----------
  [X86] Improve SMULO/UMULO codegen for vXi8 vectors.

The default expansion creates a MUL and either a MULHS/MULHU. Each
of those separately expand to sequences that use one or more
PMULLW instructions as well as additional instructions to
extend the types to vXi16. The MULHS/MULHU expansion computes the
whole 16-bit product, but only keeps the high part.

We can improve the lowering of SMULO/UMULO for some cases by using the MULHS/MULHU
expansion, but keep both the high and low parts. And we can use
those parts to calculate the overflow.

For AVX512 we might have vXi1 overflow outputs. We can improve those by using
vpcmpeqw to produce a k register if AVX512BW is enabled. This is a little better
than truncating the high result to use vpcmpeqb. If we don't have avx512bw we
can extend up to v16i32 to use vpcmpeqd to produce a k register.

Reviewed By: RKSimon

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


  Commit: ae7b1e8823a51068cfa64875fc5222e5b1d16760
      https://github.com/llvm/llvm-project/commit/ae7b1e8823a51068cfa64875fc5222e5b1d16760
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/test/Analysis/ScalarEvolution/shift-recurrences.ll

  Log Message:
  -----------
  [SCEV] Handle unreachable binop when matching shift recurrence

This fixes an issue introduced with my change d4648e, and reported in pr49768.

The root problem is that dominance collapses in unreachable code, and that LoopInfo explicitly only models reachable code.  Since the recurrence matcher doesn't filter by reachability (and can't easily because not all consumers have domtree), we need to bailout before assuming that finding a recurrence implies we found a loop.


  Commit: df0b97dab08abb8605533974f6b977c183f6be37
      https://github.com/llvm/llvm-project/commit/df0b97dab08abb8605533974f6b977c183f6be37
  Author: Juneyoung Lee <aqjune at gmail.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/unittests/Analysis/ValueTrackingTest.cpp

  Log Message:
  -----------
  [ValueTracking] Add with.overflow intrinsics to poison analysis functions

This is a patch teaching ValueTracking that `s/u*.with.overflow` intrinsics do not
create undef/poison and they propagate poison.
I couldn't write a nice example like the one with ctpop; ValueTrackingTest.cpp were simply updated
to check these instead.
This patch helps reducing regression while fixing https://llvm.org/pr49688 .

Reviewed By: nikic

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


  Commit: 45783d0e8a3632b7c1f5b0cdd258bfba1f8583e7
      https://github.com/llvm/llvm-project/commit/45783d0e8a3632b7c1f5b0cdd258bfba1f8583e7
  Author: Thomas Lively <tlively at google.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsWebAssembly.def
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/test/CodeGen/builtins-wasm.c
    M llvm/include/llvm/IR/IntrinsicsWebAssembly.td
    M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
    M llvm/test/CodeGen/WebAssembly/simd-comparisons.ll
    M llvm/test/CodeGen/WebAssembly/simd-intrinsics.ll
    M llvm/test/CodeGen/WebAssembly/simd-select.ll
    M llvm/test/MC/WebAssembly/simd-encodings.s

  Log Message:
  -----------
  [WebAssembly] Implement i64x2 comparisons

Removes the prototype builtin and intrinsic for i64x2.eq and implements that
instruction as well as the other i64x2 comparison instructions in the final SIMD
spec. Unsigned comparisons were not included in the final spec, so they still
need to be scalarized via a custom lowering.

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


  Commit: fcf6800506862586e2d409aaa03a1cff818edfcc
      https://github.com/llvm/llvm-project/commit/fcf6800506862586e2d409aaa03a1cff818edfcc
  Author: Petr Hosek <phosek at google.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M clang/include/clang/Driver/ToolChain.h
    M clang/lib/Driver/ToolChain.cpp
    M clang/lib/Driver/ToolChains/Fuchsia.cpp
    M clang/lib/Driver/ToolChains/Gnu.cpp
    A clang/test/Driver/Inputs/basic_fuchsia_tree/include/c++/v1/.keep

  Log Message:
  -----------
  [Driver] Move detectLibcxxIncludePath to ToolChain

This helper method is useful even outside of Gnu toolchains, so move
it to ToolChain so it can be reused in other toolchains such as Fuchsia.

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


  Commit: 888c5067b4dce403774536a08f79d59865db3d12
      https://github.com/llvm/llvm-project/commit/888c5067b4dce403774536a08f79d59865db3d12
  Author: Suraj Sudhir <Suraj.Sudhir at arm.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td
    A mlir/include/mlir/Dialect/Tosa/IR/TosaUtilOps.td

  Log Message:
  -----------
  Move non-spec TOSA operators into TosaUtilOps.td

Reviewed By: stellaraccident

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


  Commit: fe5c4a06a49c697399323cc55e2135a5452ed616
      https://github.com/llvm/llvm-project/commit/fe5c4a06a49c697399323cc55e2135a5452ed616
  Author: Huihui Zhang <huihuiz at quicinc.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  Log Message:
  -----------
  [LoopVectorize] Use SetVector to track uniform uses to prevent non-determinism.

Use SetVector instead of SmallPtrSet to track values with uniform use. Doing this
can help avoid non-determinism caused by iterating over unordered containers.

This bug was found with reverse iteration turning on,
--extra-llvm-cmake-variables="-DLLVM_REVERSE_ITERATION=ON".
Failing LLVM test consecutive-ptr-uniforms.ll .

Reviewed By: MaskRay

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


  Commit: 7f8da0791c33a9c87b357859ad84346fe3ccb5f2
      https://github.com/llvm/llvm-project/commit/7f8da0791c33a9c87b357859ad84346fe3ccb5f2
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M flang/include/flang/Evaluate/tools.h
    M flang/include/flang/Evaluate/traverse.h
    M flang/lib/Evaluate/check-expression.cpp
    M flang/lib/Semantics/check-data.cpp
    M flang/test/Semantics/init01.f90

  Log Message:
  -----------
  [flang] Refine checks for pointer initialization targets

f18 was emitting a bogus error message about the lack of a TARGET
attribute when a pointer was initialized with a component of a
variable that was a legitimate TARGET.

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


  Commit: 10847f6217b159e01b72a34eb366a543ca612aa6
      https://github.com/llvm/llvm-project/commit/10847f6217b159e01b72a34eb366a543ca612aa6
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    A llvm/test/Transforms/SLPVectorizer/X86/inst_size_bug.ll

  Log Message:
  -----------
  [SLP]Add a test for the bug in `getVectorElementSize()`, NFC.


  Commit: 807b019ca292e53cc40cc76c1f0efd8a7b2efe62
      https://github.com/llvm/llvm-project/commit/807b019ca292e53cc40cc76c1f0efd8a7b2efe62
  Author: George Mitenkov <georgemitenk0v at gmail.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/lib/Analysis/ConstantFolding.cpp
    M llvm/test/Transforms/InstSimplify/ConstProp/overflow-ops.ll

  Log Message:
  -----------
  [ConstantFolding] Fixing addo/subo with undef

When folding addo/subo with undef, the current
convention is to use { -1, false } for addo and
{ 0, false } for subo. This was fixed for InstSimplify in
https://reviews.llvm.org/rGf094d65beaa492e845b03561eddd75b5be653a01,
but not in ConstantFolding.

Reviewed By: nikic, lebedev.ri

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


  Commit: 9c61c76b127d53a5d14033cdb6abb4b3daaa0f67
      https://github.com/llvm/llvm-project/commit/9c61c76b127d53a5d14033cdb6abb4b3daaa0f67
  Author: Andrew Young <youngar17 at gmail.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M mlir/lib/Transforms/CSE.cpp
    M mlir/test/Transforms/cse.mlir

  Log Message:
  -----------
  [mlir][cse] do not replace operands in previously simplified operations

If an operation has been inserted as a key in to the known values
hashtable, then it can not be modified in a way which changes its hash.
This change avoids modifying the operands of any previously recorded
operation, which prevents their hash from changing.

In an SSACFG region, it is impossible to visit an operation before
visiting its operands, so this is not a problem. This situation can only
happen in regions without strict dominance, such as graph regions.

Reviewed By: rriddle

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


  Commit: 9e00b6660d2b6ffa83a7fb8c82fc6862d6b80c05
      https://github.com/llvm/llvm-project/commit/9e00b6660d2b6ffa83a7fb8c82fc6862d6b80c05
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

  Log Message:
  -----------
  [SelectionDAG] Remove unneeded vector resize from the end of FoldConstantArithmetic. NFC

There's an assert right before that makes sure the size already matches.
Earlier in this function's life, scalars and vectors shared more
code.


  Commit: 4ced958dc205de0de935e6d2f27767ebcec6c29f
      https://github.com/llvm/llvm-project/commit/4ced958dc205de0de935e6d2f27767ebcec6c29f
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/test/Transforms/SLPVectorizer/AArch64/ext-trunc.ll

  Log Message:
  -----------
  [SLP]Update test checks, NFC


  Commit: 09aed384ba19ff8b74763bdc42467232c9c012b3
      https://github.com/llvm/llvm-project/commit/09aed384ba19ff8b74763bdc42467232c9c012b3
  Author: Jez Ng <jezng at fb.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M lld/test/MachO/lto-archive.ll

  Log Message:
  -----------
  [lld-macho][nfc] Test that -ObjC will import bitcode with category sections

The functionality was originally added in {D95265}, but the test in that
diff only checked if `-ObjC` would cause bitcode containing ObjC class
symbols to be loaded. It neglected to test for bitcode containing
categories but no class symbols.

This diff also changes the lto-archive.ll test to use `-why_load`
instead of inspecting the output binary's symbol table. This is
motivated by the stacked diff {D99105}, which will hide irrelevant
bitcode symbols.

Reviewed By: #lld-macho, oontvoo

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


  Commit: 9b6dde8af8f0880690792e3faa7987a8529232f6
      https://github.com/llvm/llvm-project/commit/9b6dde8af8f0880690792e3faa7987a8529232f6
  Author: Jez Ng <jezng at fb.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M lld/ELF/Writer.cpp
    M lld/MachO/Writer.cpp
    A lld/include/lld/Common/Arrays.h

  Log Message:
  -----------
  [lld-macho] Parallelize UUID hash computation

This reuses the approach (and some code) from LLD-ELF.

It's a decent win when linking chromium_framework on a Mac Pro (3.2 GHz 16-Core Intel Xeon W):

      N           Min           Max        Median           Avg        Stddev
  x  20          4.58          4.83          4.66        4.6685   0.066591844
  +  20          4.42          4.61           4.5         4.505    0.04751731
  Difference at 95.0% confidence
          -0.1635 +/- 0.0370242
          -3.5022% +/- 0.793064%
          (Student's t, pooled s = 0.0578462)

The output binary is 381MB.

Reviewed By: #lld-macho, oontvoo

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


  Commit: 98f08e7d8132daba7f9723e7977f0f073b0302ad
      https://github.com/llvm/llvm-project/commit/98f08e7d8132daba7f9723e7977f0f073b0302ad
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/test/Analysis/ScalarEvolution/shift-recurrences.ll

  Log Message:
  -----------
  [tests] Exercise cases where SCEV can use trip counts to refine ashr/lshr recurrences


  Commit: 66da4f6fc9c1cd2a63f089b9888729292f0709f8
      https://github.com/llvm/llvm-project/commit/66da4f6fc9c1cd2a63f089b9888729292f0709f8
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M clang/lib/CodeGen/CGStmtOpenMP.cpp
    M clang/test/OpenMP/atomic_codegen.cpp

  Log Message:
  -----------
  [OPENMP]Fix PR48658: [OpenMP 5.0] Compiler crash when OpenMP atomic sync hints used.

No need to consider hint clause kind as the main atomic clause kind at the
codegen.

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


  Commit: a28e835e9494af058bcbad667906271eec5da83b
      https://github.com/llvm/llvm-project/commit/a28e835e9494af058bcbad667906271eec5da83b
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M clang/lib/CodeGen/CGStmtOpenMP.cpp
    M clang/test/OpenMP/declare_mapper_codegen.cpp
    M clang/test/OpenMP/master_taskloop_firstprivate_codegen.cpp
    M clang/test/OpenMP/master_taskloop_in_reduction_codegen.cpp
    M clang/test/OpenMP/master_taskloop_lastprivate_codegen.cpp
    M clang/test/OpenMP/master_taskloop_private_codegen.cpp
    M clang/test/OpenMP/master_taskloop_simd_firstprivate_codegen.cpp
    M clang/test/OpenMP/master_taskloop_simd_in_reduction_codegen.cpp
    M clang/test/OpenMP/master_taskloop_simd_lastprivate_codegen.cpp
    M clang/test/OpenMP/master_taskloop_simd_private_codegen.cpp
    M clang/test/OpenMP/nvptx_param_translate.c
    M clang/test/OpenMP/parallel_master_taskloop_firstprivate_codegen.cpp
    M clang/test/OpenMP/parallel_master_taskloop_lastprivate_codegen.cpp
    M clang/test/OpenMP/parallel_master_taskloop_private_codegen.cpp
    M clang/test/OpenMP/parallel_master_taskloop_simd_firstprivate_codegen.cpp
    M clang/test/OpenMP/parallel_master_taskloop_simd_lastprivate_codegen.cpp
    M clang/test/OpenMP/parallel_master_taskloop_simd_private_codegen.cpp
    M clang/test/OpenMP/target_codegen.cpp
    M clang/test/OpenMP/target_depend_codegen.cpp
    M clang/test/OpenMP/target_enter_data_codegen.cpp
    M clang/test/OpenMP/target_enter_data_depend_codegen.cpp
    M clang/test/OpenMP/target_exit_data_codegen.cpp
    M clang/test/OpenMP/target_exit_data_depend_codegen.cpp
    M clang/test/OpenMP/target_parallel_depend_codegen.cpp
    M clang/test/OpenMP/target_parallel_for_codegen.cpp
    M clang/test/OpenMP/target_parallel_for_depend_codegen.cpp
    M clang/test/OpenMP/target_parallel_for_simd_depend_codegen.cpp
    M clang/test/OpenMP/target_simd_depend_codegen.cpp
    M clang/test/OpenMP/target_teams_codegen.cpp
    M clang/test/OpenMP/target_teams_depend_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_depend_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_parallel_for_depend_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_depend_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_simd_codegen.cpp
    M clang/test/OpenMP/target_teams_distribute_simd_depend_codegen.cpp
    M clang/test/OpenMP/target_update_codegen.cpp
    M clang/test/OpenMP/target_update_depend_codegen.cpp
    M clang/test/OpenMP/task_codegen.cpp
    M clang/test/OpenMP/task_firstprivate_codegen.cpp
    M clang/test/OpenMP/task_in_reduction_codegen.cpp
    M clang/test/OpenMP/task_private_codegen.cpp
    M clang/test/OpenMP/taskloop_firstprivate_codegen.cpp
    M clang/test/OpenMP/taskloop_in_reduction_codegen.cpp
    M clang/test/OpenMP/taskloop_lastprivate_codegen.cpp
    M clang/test/OpenMP/taskloop_private_codegen.cpp
    M clang/test/OpenMP/taskloop_simd_firstprivate_codegen.cpp
    M clang/test/OpenMP/taskloop_simd_in_reduction_codegen.cpp
    M clang/test/OpenMP/taskloop_simd_lastprivate_codegen.cpp
    M clang/test/OpenMP/taskloop_simd_private_codegen.cpp
    M clang/test/OpenMP/taskloop_with_atomic_codegen.cpp

  Log Message:
  -----------
  [OPENMP]Fix PR48885: Crash in passing firstprivate args to tasks on Apple M1.

Need to bitcast the function pointer passed as a parameter to the real
type to avoid possible problem with calling conventions.

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


  Commit: 2c3cf62d4a26de85aab180bb43a579c913b17f3e
      https://github.com/llvm/llvm-project/commit/2c3cf62d4a26de85aab180bb43a579c913b17f3e
  Author: Aaron Puchert <aaronpuchert at alice-dsl.net>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/unittests/TableGen/CMakeLists.txt
    M llvm/utils/TableGen/CMakeLists.txt
    M llvm/utils/TableGen/GlobalISel/CMakeLists.txt

  Log Message:
  -----------
  Make TableGenGlobalISel an object library

That's how it was originally intended but that wasn't possible because
we still needed to support older CMake versions.

The problem here is that the sources in TableGenGlobalISel are meant to
be linked into both llvm-tblgen and TableGenTests (a unit test), but not
be part of LLVM proper. So they shouldn't be an ordinary LLVM component.
Because they are used in llvm-tblgen, they can't draw in the LLVM dylib
dependency, but then we'd have to do the same thing in TableGenTests to
make sure we don't link both a static Support library and another copy
through the LLVM dylib.

With an object library we're just reusing the object files and don't
have to care about dependencies at all.

Reviewed By: beanz

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


  Commit: e8d8754c063c2bd3861bf0570012c827ee58e747
      https://github.com/llvm/llvm-project/commit/e8d8754c063c2bd3861bf0570012c827ee58e747
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/unittests/TableGen/CMakeLists.txt
    M llvm/utils/TableGen/CMakeLists.txt
    M llvm/utils/TableGen/GlobalISel/CMakeLists.txt

  Log Message:
  -----------
  Revert "Make TableGenGlobalISel an object library"

This reverts commit 2c3cf62d4a26de85aab180bb43a579c913b17f3e.

Causes build failures on x86_64, will respond to commit thread with link errors.


  Commit: 43ded90094f761a4763497773e722c196c69d17e
      https://github.com/llvm/llvm-project/commit/43ded90094f761a4763497773e722c196c69d17e
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/lib/Transforms/Utils/LoopRotationUtils.cpp

  Log Message:
  -----------
  [NFC][LoopRotation] Count the number of instructions hoisted/cloned into preheader


  Commit: e927053a0d6a3afcae1dc33ebac2fdabbf459e76
      https://github.com/llvm/llvm-project/commit/e927053a0d6a3afcae1dc33ebac2fdabbf459e76
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/test/Transforms/InferFunctionAttrs/annotate.ll

  Log Message:
  -----------
  [test, InferFunctionAttrs] Fix use of var defined in CHECK-NOT

LLVM test Transforms/InferFunctionAttrs/annotate contains two RUN
invokation (UNKNOWN and NVPTX lines) which involve a CHECK-NOT directive
with a variable not defined by the enabled CHECK prefixes. This commit
fixes that by:

- enabling CHECK prefix for unknown target with specialisation when it
  differs from other targets
- checking for absence of bcmp with any attribute for NVPTX

Reviewed By: tra

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


  Commit: e4701471d69fc3b9f5fcbe3b4fc06343a453c11f
      https://github.com/llvm/llvm-project/commit/e4701471d69fc3b9f5fcbe3b4fc06343a453c11f
  Author: Jianzhou Zhao <jianzhouzh at google.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M compiler-rt/lib/dfsan/dfsan_custom.cpp

  Log Message:
  -----------
   [dfsan] Set sigemptyset's return label to be 0

This was not set from when the wrapper was introduced.

Reviewed By: gbalats

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


  Commit: a879a1b034943318f2a8fa52c12bd142df5ebd51
      https://github.com/llvm/llvm-project/commit/a879a1b034943318f2a8fa52c12bd142df5ebd51
  Author: natashaknk <natashaknk at google.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir

  Log Message:
  -----------
  [mlir][tosa] Add tosa.reciprocal and tosa.sigmoid lowerings

Lowering reciprocal and sigmoid elementwise operations to linalg dialect.

Reviewed By: rsuderman

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


  Commit: 1c268a8ff4e90a85d0e634350b1104080614cf2b
      https://github.com/llvm/llvm-project/commit/1c268a8ff4e90a85d0e634350b1104080614cf2b
  Author: YangKeao <keao.yang at yahoo.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86FrameLowering.cpp
    M llvm/lib/Target/X86/X86FrameLowering.h
    M llvm/test/CodeGen/X86/stack-clash-medium-natural-probes-mutliple-objects.ll
    M llvm/test/CodeGen/X86/stack-clash-medium-natural-probes.ll
    M llvm/test/CodeGen/X86/stack-clash-medium.ll
    M llvm/test/CodeGen/X86/stack-clash-unknown-call.ll

  Log Message:
  -----------
  [X86] add dwarf annotation for inline stack probe

While probing stack, the stack register is moved without dwarf
information, which could cause panic if unwind the backtrace.
This commit only add annotation for the inline stack probe case.
Dwarf information for the loop case should be done in another
patch and need further discussion.

Reviewed By: nagisa

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


  Commit: c88ee1a094a9043da146dda0ffe4accbb81e7dd8
      https://github.com/llvm/llvm-project/commit/c88ee1a094a9043da146dda0ffe4accbb81e7dd8
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVSchedRocket.td
    M llvm/lib/Target/RISCV/RISCVSchedSiFive7.td
    M llvm/lib/Target/RISCV/RISCVSchedule.td

  Log Message:
  -----------
  [RISCV] Add UnsupportedSchedZfh multiclass to reduce duplicate lines from RISCVSchedRocket.td and RISCVSchedSiFive7.td. NFC


  Commit: 777a58e05b22973d902e78091a2e06b99c71b65c
      https://github.com/llvm/llvm-project/commit/777a58e05b22973d902e78091a2e06b99c71b65c
  Author: Simonas Kazlauskas <git at kazlauskas.me>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
    M llvm/test/CodeGen/AArch64/srem-seteq-illegal-types.ll
    M llvm/test/CodeGen/AArch64/srem-seteq-vec-nonsplat.ll
    M llvm/test/CodeGen/AArch64/srem-seteq-vec-splat.ll
    M llvm/test/CodeGen/AArch64/srem-seteq.ll
    M llvm/test/CodeGen/AArch64/urem-seteq-illegal-types.ll
    M llvm/test/CodeGen/AArch64/urem-seteq-nonzero.ll
    M llvm/test/CodeGen/AArch64/urem-seteq-vec-nonsplat.ll
    M llvm/test/CodeGen/AArch64/urem-seteq-vec-nonzero.ll
    M llvm/test/CodeGen/AArch64/urem-seteq-vec-splat.ll
    M llvm/test/CodeGen/AArch64/urem-seteq.ll
    M llvm/test/CodeGen/AMDGPU/srem-seteq-illegal-types.ll
    M llvm/test/CodeGen/AMDGPU/urem-seteq-illegal-types.ll
    M llvm/test/CodeGen/ARM/srem-seteq-illegal-types.ll
    M llvm/test/CodeGen/ARM/urem-seteq-illegal-types.ll
    M llvm/test/CodeGen/Mips/srem-seteq-illegal-types.ll
    M llvm/test/CodeGen/Mips/urem-seteq-illegal-types.ll
    M llvm/test/CodeGen/PowerPC/srem-seteq-illegal-types.ll
    M llvm/test/CodeGen/PowerPC/urem-seteq-illegal-types.ll
    M llvm/test/CodeGen/RISCV/rvv/vmulh-sdnode-rv32.ll
    M llvm/test/CodeGen/RISCV/srem-seteq-illegal-types.ll
    M llvm/test/CodeGen/RISCV/urem-seteq-illegal-types.ll
    M llvm/test/CodeGen/Thumb/srem-seteq-illegal-types.ll
    M llvm/test/CodeGen/Thumb/urem-seteq-illegal-types.ll
    M llvm/test/CodeGen/Thumb2/srem-seteq-illegal-types.ll
    M llvm/test/CodeGen/Thumb2/urem-seteq-illegal-types.ll
    M llvm/test/CodeGen/X86/omit-urem-of-power-of-two-or-zero-when-comparing-with-zero.ll
    M llvm/test/CodeGen/X86/srem-seteq-illegal-types.ll
    M llvm/test/CodeGen/X86/srem-seteq-vec-nonsplat.ll
    M llvm/test/CodeGen/X86/srem-seteq-vec-splat.ll
    M llvm/test/CodeGen/X86/urem-seteq-illegal-types.ll
    M llvm/test/CodeGen/X86/urem-seteq-nonzero.ll
    M llvm/test/CodeGen/X86/urem-seteq-vec-nonsplat.ll
    M llvm/test/CodeGen/X86/urem-seteq-vec-nonzero.ll
    M llvm/test/CodeGen/X86/urem-seteq-vec-splat.ll

  Log Message:
  -----------
  Support {S,U}REMEqFold before legalization

This allows these optimisations to apply to e.g. `urem i16` directly
before `urem` is promoted to i32 on architectures where i16 operations
are not intrinsically legal (such as on Aarch64). The legalization then
later can happen more directly and generated code gets a chance to avoid
wasting time on computing results in types wider than necessary, in the end.

Seems like mostly an improvement in terms of results at least as far as x86_64 and aarch64 are concerned, with a few regressions here and there. It also helps in preventing regressions in changes like {D87976}.

Reviewed By: lebedev.ri

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


  Commit: 115a42ad1e1c25fee6d10d5faab999b1b5c8b52c
      https://github.com/llvm/llvm-project/commit/115a42ad1e1c25fee6d10d5faab999b1b5c8b52c
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/include/llvm/Support/KnownBits.h
    M llvm/lib/Support/KnownBits.cpp

  Log Message:
  -----------
  Add debug printers for KnownBits [nfc]


  Commit: 3cc3c0f8352ec33ca2f2636f94cb1d85fc57ac16
      https://github.com/llvm/llvm-project/commit/3cc3c0f8352ec33ca2f2636f94cb1d85fc57ac16
  Author: Jian Cai <jiancai at google.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M clang/lib/Driver/ToolChains/Clang.cpp
    A clang/test/Driver/as-version.s

  Log Message:
  -----------
  Add support to -Wa,--version in clang

Clang currently only supports -Wa,--version when -no-integrated-as is
used. This adds support to -Wa,--version with -integrated-as.

Link:
https://github.com/ClangBuiltLinux/linux/issues/1320

Reviewed By: nickdesaulniers, MaskRay

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


  Commit: 0f70a17d0ad971eaa4368be76f3439471b2ab13e
      https://github.com/llvm/llvm-project/commit/0f70a17d0ad971eaa4368be76f3439471b2ab13e
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/test/Analysis/ValueTracking/monotonic-phi.ll

  Log Message:
  -----------
  [tests] Add tests for ashr/lshr recurrences in isKnownNonZero


  Commit: 4af4828a6ef5778609c6738f674a35bc28eaf829
      https://github.com/llvm/llvm-project/commit/4af4828a6ef5778609c6738f674a35bc28eaf829
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Analysis/ValueTracking/monotonic-phi.ll

  Log Message:
  -----------
  [ValueTracking] Handle non-zero ashr/lshr recurrences

If we know we don't shift out bits (e.g. exact), all we need to know is that input is non-zero.


  Commit: f1e4e2fb204d24a62cc7eff912bcda08c4030977
      https://github.com/llvm/llvm-project/commit/f1e4e2fb204d24a62cc7eff912bcda08c4030977
  Author: Alexander Shaposhnikov <alexshap at fb.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M lld/MachO/Driver.cpp
    M lld/MachO/InputFiles.cpp
    M lld/MachO/InputFiles.h
    M lld/MachO/Relocations.h

  Log Message:
  -----------
  [lld][MachO] Refactor handling of subsections

This diff is a preparation for fixing FunStabs (incorrect size calculation).
std::map<uint32_t, InputSection*> (SubsectionMap) is replaced with
a sorted vector + binary search. If .subsections_via_symbols is set
this vector will contain the list of subsections, otherwise,
the offsets will be used for calculating the symbols sizes.

Test plan: make check-all

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


  Commit: bf2479c347c8ca88fefdb144d8bae0a7a4231e2a
      https://github.com/llvm/llvm-project/commit/bf2479c347c8ca88fefdb144d8bae0a7a4231e2a
  Author: Nick Desaulniers <ndesaulniers at google.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M clang/lib/Driver/ToolChains/Clang.cpp
    R clang/test/Driver/as-version.s

  Log Message:
  -----------
  Revert "Add support to -Wa,--version in clang"

This reverts commit 3cc3c0f8352ec33ca2f2636f94cb1d85fc57ac16.

Breaks non-linux platforms.

https://reviews.llvm.org/D99556#2662706
Signed-off-by: Nick Desaulniers <ndesaulniers at google.com>


  Commit: 62b74f75645f53610c1d3c5387072fc4fff98bb9
      https://github.com/llvm/llvm-project/commit/62b74f75645f53610c1d3c5387072fc4fff98bb9
  Author: qixingxue <qixingxue at outlook.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Utils/VNCoercion.cpp

  Log Message:
  -----------
  [GVN][NFC] Refactor analyzeLoadFromClobberingWrite

This commit adjusts the order of two swappable if statements to
make code cleaner.

Reviewed By: lattner, nikic
Differential Revision: https://reviews.llvm.org/D99648


  Commit: 565b28f57b55a88de96b5d58a92bce904f4a9afc
      https://github.com/llvm/llvm-project/commit/565b28f57b55a88de96b5d58a92bce904f4a9afc
  Author: KAWASHIMA Takahiro <t-kawashima at fujitsu.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    A llvm/test/Transforms/GVN/PRE/load-pre-metadata-accsess-group.ll

  Log Message:
  -----------
  [GVN][NFC] Pre-commit test for D93503


  Commit: 5fac7c60467c58d567779c3568dcfeb8d164af21
      https://github.com/llvm/llvm-project/commit/5fac7c60467c58d567779c3568dcfeb8d164af21
  Author: KAWASHIMA Takahiro <t-kawashima at fujitsu.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/GVN.cpp
    M llvm/test/Transforms/GVN/PRE/load-pre-metadata-accsess-group.ll

  Log Message:
  -----------
  [GVN] Propagate llvm.access.group metadata of loads

Before this change, the `llvm.access.group` metadata was dropped
when moving a load instruction in GVN. This prevents vectorizing
a C/C++ loop with `#pragma clang loop vectorize(assume_safety)`.
This change propagates the metadata as well as other metadata if
it is safe (the move-destination basic block and source basic
block belong to the same loop).

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


  Commit: a8219991d0245db8f31a923ba7f24e6beda345b0
      https://github.com/llvm/llvm-project/commit/a8219991d0245db8f31a923ba7f24e6beda345b0
  Author: Yang Fan <nullptr.cpp at gmail.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M clang/lib/APINotes/APINotesYAMLCompiler.cpp

  Log Message:
  -----------
  [clang][APINotes] Fix -Wunused-function warning (NFC)

GCC warning:
```
/llvm-project/clang/lib/APINotes/APINotesYAMLCompiler.cpp:574:23: warning: ‘void {anonymous}::Module::dump()’ defined but not used [-Wunused-function]
  574 | LLVM_DUMP_METHOD void Module::dump() {
      |                       ^~~~~~
```


  Commit: dfc8da19c5d7ed48f62a4cc588b641f2deee8789
      https://github.com/llvm/llvm-project/commit/dfc8da19c5d7ed48f62a4cc588b641f2deee8789
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M lldb/source/Utility/Reproducer.cpp

  Log Message:
  -----------
  [lldb] Remove LLDB_CAPTURE_REPRODUCER override

Remove the LLDB_CAPTURE_REPRODUCER as it is inherently dangerous. The
reproducers require careful initialization which cannot be guaranteed by
overwriting the reproducer mode at this level.

If we want to provide this functionality, we should do it in the driver
instead. It was originally added to enable capture in CI, but we now
have a dedicated CI job that captures and replays the test suite.


  Commit: bfcd21876adc3498065e4da92799f613e730d475
      https://github.com/llvm/llvm-project/commit/bfcd21876adc3498065e4da92799f613e730d475
  Author: Chen Zheng <czhengsz at cn.ibm.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M clang/docs/UsersManual.rst
    M clang/include/clang/Basic/CodeGenOptions.def
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/AIX.h
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Driver/ToolChains/CommonArgs.cpp
    M clang/test/Driver/debug-options.c
    M llvm/include/llvm/Target/TargetOptions.h

  Log Message:
  -----------
  [debug-info] support new tuning debugger type DBX for XCOFF DWARF

Based on this debugger type, for now, we plan to:
1: use inline string by default for XCOFF DWARF
2: generate no column info for debug line table.

Reviewed By: aprantl

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


  Commit: 54c3c2e82874d8ee65b32f1f79bfd494b0551986
      https://github.com/llvm/llvm-project/commit/54c3c2e82874d8ee65b32f1f79bfd494b0551986
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M lldb/tools/lldb-vscode/lldb-vscode.cpp

  Log Message:
  -----------
  [lldb-vscode] Consistently use return EXIT_SUCCESS and EXIT_FAILURE (NFC)

Consistently use return with EXIT_SUCCESS or EXIT_FAILURE instead of
mix-and-matching return, exit 0, 1 etc.

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


  Commit: b7e2c2acb8eea471d0960f01d4c75d45156bd9ae
      https://github.com/llvm/llvm-project/commit/b7e2c2acb8eea471d0960f01d4c75d45156bd9ae
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M lldb/tools/lldb-vscode/lldb-vscode.cpp

  Log Message:
  -----------
  [lldb-vscode] Use LLVM's ScopeExit to ensure we always terminate the debugger

Make sure we always terminate the debugger by using a RAII object.

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


  Commit: d1828937ed8d79a772ec60a8f3c7f4a873f581d4
      https://github.com/llvm/llvm-project/commit/d1828937ed8d79a772ec60a8f3c7f4a873f581d4
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2021-03-31 (Wed, 31 Mar 2021)

  Changed paths:
    M lldb/docs/design/reproducers.rst
    M lldb/test/API/lit.cfg.py
    R lldb/test/Shell/Reproducer/TestCaptureEnvOverride.test
    M lldb/test/Shell/Reproducer/lit.local.cfg
    M lldb/test/Shell/lit.cfg.py

  Log Message:
  -----------
  [lldb] Remove references to LLDB_CAPTURE_REPRODUCER

Remove the remaining references to LLDB_CAPTURE_REPRODUCER. I removed
the functionality in an earlier commit but forgot that there was a
corresponding test and logic to unset it in our test suite.


  Commit: 630818a850f754af852247c775280de6fde8560e
      https://github.com/llvm/llvm-project/commit/630818a850f754af852247c775280de6fde8560e
  Author: Max Kazantsev <mkazantsev at azul.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Transforms/Scalar/GVN.h
    M llvm/lib/Transforms/Scalar/GVN.cpp

  Log Message:
  -----------
  [NFC] Disambiguate LI in GVN

Name GVN uses name 'LI' for two different unrelated things:
LoadInst and LoopInfo. This patch relates the variables with
former meaning into 'Load' to disambiguate the code.


  Commit: a1d83776bfa186422ec2e1b19eb9d12c96c33348
      https://github.com/llvm/llvm-project/commit/a1d83776bfa186422ec2e1b19eb9d12c96c33348
  Author: Max Kazantsev <mkazantsev at azul.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/GVN.cpp

  Log Message:
  -----------
  [NFC] Undo some erroneous renamings

Some vars renamed by mistake during auto-replacements. Undoing them.


  Commit: 5c703f0fd81960386cc02b9ca618e866c9d5e29a
      https://github.com/llvm/llvm-project/commit/5c703f0fd81960386cc02b9ca618e866c9d5e29a
  Author: Marek Kurdej <marek.kurdej+llvm.org at gmail.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M libcxx/CMakeLists.txt
    M libcxx/include/__config
    M libcxx/include/experimental/simd
    M libcxx/include/ext/hash_map
    M libcxx/include/ext/hash_set
    M libcxx/include/future
    M libcxx/include/type_traits
    M libcxx/test/std/atomics/types.pass.cpp
    M libcxx/test/std/numerics/rand/rand.eng/rand.eng.mers/ctor_sseq_all_zero.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_shared_ptr.pass.cpp
    M libcxx/test/support/test_macros.h
    M libcxx/utils/libcxx/test/params.py

  Log Message:
  -----------
  [libc++] Build and test with -Wundef warning. NFC.

This will avoid typos like `_LIBCPP_STD_VERS` (<future>) or using `#if TEST_STD_VER > 17` without including "test_macros.h".

Reviewed By: ldionne, #libc

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


  Commit: 3bea7306e8669f94bacafae68748a9139cfc0b98
      https://github.com/llvm/llvm-project/commit/3bea7306e8669f94bacafae68748a9139cfc0b98
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux.h
    M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp
    M lldb/source/Plugins/Process/Utility/NativeRegisterContextDBReg_x86.h
    M lldb/unittests/Utility/ReproducerInstrumentationTest.cpp

  Log Message:
  -----------
  [lldb] Fix compilation with gcc-6.5

This fixes (works around) two errors with gcc-6.5.
- in the RegisterContext_x86 files, gcc is unable to synthesize a
  default constructor -- it thinks it needs to initialize the virtual
  base class, even though said classes are abstract. I fix that by
  providing a dummy constructor.
- In ReproducerInstrumentationTest, it is not able to deduce that the
  TestingRegistry class is movable (it contains a map of unique
  pointers). I change the type from Optional<TestingRegistry> to
  unique_ptr<TestingRegistry), so that moving is not required
  (copying/moving a polymorphic type is not a very good idea in any
  case).


  Commit: e1d4fb1ebfffffc612d65331f72bb0827d7206d4
      https://github.com/llvm/llvm-project/commit/e1d4fb1ebfffffc612d65331f72bb0827d7206d4
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_x86_64.cpp
    M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.cpp
    M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
    M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_ppc64le.cpp
    M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_s390x.cpp
    M lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp

  Log Message:
  -----------
  [lldb] Fix build errors from 3bea7306e8

The addition of the dummy constructors requires matching changes in os-
and arch-specific files, which I forgot about.


  Commit: 335d2df5335f95d49c864ecdba4fd5731c7c3e89
      https://github.com/llvm/llvm-project/commit/335d2df5335f95d49c864ecdba4fd5731c7c3e89
  Author: Nicolas Vasilache <nicolas.vasilache at gmail.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M mlir/include/mlir-c/AffineMap.h
    M mlir/include/mlir/IR/AffineMap.h
    M mlir/lib/Bindings/Python/IRAffine.cpp
    M mlir/lib/Bindings/Python/mlir/dialects/linalg/opdsl/lang/emitter.py
    M mlir/lib/CAPI/IR/AffineMap.cpp
    M mlir/lib/IR/AffineMap.cpp
    M mlir/test/Bindings/Python/dialects/linalg/opdsl/emit_structured_generic.py
    M mlir/test/Bindings/Python/dialects/linalg/ops.py
    A mlir/test/Bindings/Python/dialects/linalg/opsrun.py

  Log Message:
  -----------
  [mlir][Python][Linalg] Add missing attributes to linalg ops

This revision tightens up the handling of attributes for both named
and generic linalg ops.
To demonstrate the IR validity, a working e2e Linalg example is added.

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


  Commit: 92e7771483597935bce523a6f2a1b6109efe7af0
      https://github.com/llvm/llvm-project/commit/92e7771483597935bce523a6f2a1b6109efe7af0
  Author: Sam Parker <sam.parker at arm.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td
    M llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
    M llvm/test/CodeGen/WebAssembly/comparisons-f32.ll
    M llvm/test/CodeGen/WebAssembly/comparisons-f64.ll

  Log Message:
  -----------
  [WebAssembly] Invert branch condition on xor input

A frequent pattern for floating point conditional branches use an xor
to invert the input for the branch. Instead we can fold away the xor
by swapping the branch target instead.

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


  Commit: 1d463c2a386099597a8e2d26b9b964bc8fda8042
      https://github.com/llvm/llvm-project/commit/1d463c2a386099597a8e2d26b9b964bc8fda8042
  Author: Harald van Dijk <harald at gigawatt.nl>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M clang/lib/Driver/ToolChains/Gnu.cpp
    A clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/i386-unknown-linux-gnu/10.2.0/crtbegin.o
    R clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/i386-unknown-linux-gnu/4.6.0/crtbegin.o
    A clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/crtbegin.o
    A clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/crtbeginT.o
    A clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/crtfastmath.o
    A clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/x32/crtbegin.o
    A clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/x32/crtbeginT.o
    A clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/10.2.0/x32/crtfastmath.o
    R clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/crtbegin.o
    R clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/crtbeginT.o
    R clang/test/Driver/Inputs/basic_cross_linux_tree/usr/lib/gcc/x86_64-unknown-linux-gnu/4.6.0/crtfastmath.o
    A clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/i386-unknown-linux/10.2.0/crtbegin.o
    R clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0/crtbegin.o
    A clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/i686-unknown-linux/10.2.0/crtbegin.o
    R clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/i686-unknown-linux/4.6.0/crtbegin.o
    A clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/x86_64-unknown-linux/10.2.0/crtbegin.o
    A clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/x86_64-unknown-linux/10.2.0/crtbeginT.o
    A clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/x86_64-unknown-linux/10.2.0/crtfastmath.o
    R clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtbegin.o
    R clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtbeginT.o
    R clang/test/Driver/Inputs/basic_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtfastmath.o
    A clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/10.2.0/64/crtbegin.o
    A clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/10.2.0/crtbegin.o
    R clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0/64/crtbegin.o
    R clang/test/Driver/Inputs/multilib_32bit_linux_tree/usr/lib/gcc/i386-unknown-linux/4.6.0/crtbegin.o
    A clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/10.2.0/32/crtbegin.o
    A clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/10.2.0/crtbegin.o
    A clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/10.2.0/x32/crtbegin.o
    R clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/32/crtbegin.o
    R clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/crtbegin.o
    R clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/lib/gcc/x86_64-unknown-linux/4.6.0/x32/crtbegin.o
    A clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/libx32/gcc/x86_64-unknown-gnu/10.2.0/32/crtbegin.o
    A clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/libx32/gcc/x86_64-unknown-gnu/10.2.0/crtbegin.o
    A clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/libx32/gcc/x86_64-unknown-gnu/10.2.0/x32/crtbegin.o
    R clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/libx32/gcc/x86_64-unknown-gnu/4.6.0/32/crtbegin.o
    R clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/libx32/gcc/x86_64-unknown-gnu/4.6.0/crtbegin.o
    R clang/test/Driver/Inputs/multilib_64bit_linux_tree/usr/libx32/gcc/x86_64-unknown-gnu/4.6.0/x32/crtbegin.o
    M clang/test/Driver/baremetal.cpp
    M clang/test/Driver/cl-options.c
    M clang/test/Driver/cross-linux.c
    M clang/test/Driver/env.c
    M clang/test/Driver/linux-ld.c
    M clang/test/Preprocessor/iwithprefix.c

  Log Message:
  -----------
  [Driver] Fix architecture triplets and search paths for Linux x32

Currently, support for the x32 ABI is handled as a multilib to the
x86_64 target only. However, full self-hosting x32 systems treating it
as a separate architecture with its own architecture triplets as well as
search paths exist as well, in Debian's x32 port and elsewhere.

This adds the missing architecture triplets and search paths so that
clang can work as a native compiler on x32, and updates the tests so
that they pass when using an x32 libdir suffix.

Additionally, we would previously also assume that objects from any
x86_64-linux-gnu GCC installation could be used to target x32. This
changes the logic so that only GCC installations that include x32
support are used when targetting x32, meaning x86_64-linux-gnux32 GCC
installations, and x86_64-linux-gnu and i686-linux-gnu GCC installations
that include x32 multilib support.

Reviewed By: MaskRay

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


  Commit: 1ed53d44d8e9d709fcd96cc6cfc579d71ba4c894
      https://github.com/llvm/llvm-project/commit/1ed53d44d8e9d709fcd96cc6cfc579d71ba4c894
  Author: Yevgeny Rouban <yrouban at azul.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LoopFlatten.cpp

  Log Message:
  -----------
  [LoopFlatten] Do not report CFG analyses as up-to-date

Removes CFGAnalyses from the preserved analyses set
returned by LoopFlattenPass::run().

Reviewed By: Dave Green, Ta-Wei Tu

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


  Commit: 88a5b35d63f927db69ec953ff487a7ba2504a610
      https://github.com/llvm/llvm-project/commit/88a5b35d63f927db69ec953ff487a7ba2504a610
  Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
    M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.h
    M lldb/source/Plugins/Process/Linux/NativeThreadLinux.h
    M lldb/source/Plugins/Process/POSIX/NativeProcessELF.h
    M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.cpp
    M lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_arm64.h
    M lldb/source/Plugins/Process/Utility/RegisterInfos_arm64.h

  Log Message:
  -----------
  Revert "Revert "[LLDB] Arm64/Linux Add MTE and Pointer Authentication registers""

This reverts commit 71b648f7158c7a0b4918eaa3e94d307e4bbfce97.

There was a typo in the last commit which was causing LLDB AArch64 Linux
buildbot testsuite failures. Now fixed in current version.


  Commit: dd2a63e1ee53c1178d8e17a3763edc26d23f00a2
      https://github.com/llvm/llvm-project/commit/dd2a63e1ee53c1178d8e17a3763edc26d23f00a2
  Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/lldbtest.py
    A lldb/test/API/commands/register/register/aarch64_dynamic_regset/Makefile
    A lldb/test/API/commands/register/register/aarch64_dynamic_regset/TestArm64DynamicRegsets.py
    A lldb/test/API/commands/register/register/aarch64_dynamic_regset/main.c

  Log Message:
  -----------
  Revert "Revert "[LLDB] Arm64/Linux test case for MTE and Pointer Authentication regset""

This reverts commit feb6f2c78fa9474e7329c4a809f175b1675d0975.


  Commit: b468f0e165ed67c5b1046b295b65e446afee62aa
      https://github.com/llvm/llvm-project/commit/b468f0e165ed67c5b1046b295b65e446afee62aa
  Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M lldb/test/API/tools/lldb-vscode/launch/TestVSCode_launch.py

  Log Message:
  -----------
  [LLDB] Fix sync issue in TestVSCode_launch.test_progress_events

This fixes flakiness in TestVSCode_launch.test_progress_events
vscode.progress_events some times failed to populate in time for
follow up iterations.

Adding a minor delay before the the for the loop fixes the issue.

Reviewed By: clayborg

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


  Commit: dc537158d5372894b539b7cf90ace3cfe911a520
      https://github.com/llvm/llvm-project/commit/dc537158d5372894b539b7cf90ace3cfe911a520
  Author: Vinayaka Bandishti <vinayaka at polymagelabs.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Analysis/Utils.h
    M mlir/include/mlir/Transforms/LoopFusionUtils.h
    M mlir/lib/Analysis/AffineStructures.cpp
    M mlir/lib/Analysis/Utils.cpp
    M mlir/lib/Transforms/Utils/LoopFusionUtils.cpp
    M mlir/test/Transforms/loop-fusion-slice-computation.mlir
    M mlir/test/Transforms/loop-fusion.mlir
    M mlir/test/lib/Transforms/TestLoopFusion.cpp

  Log Message:
  -----------
  [MLIR][Affine] Add utility to check if the slice is valid

Fixes a bug in affine fusion pipeline where an incorrect slice is computed.
After the slice computation is done, original domain of the the source is
compared with the new domain that will result if the fusion succeeds. If the
new domain must be a subset of the original domain for the slice to be
valid. If the slice computed is incorrect, fusion based on such a slice is
avoided.

Relevant test cases are added/edited.

Fixes https://bugs.llvm.org/show_bug.cgi?id=49203

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


  Commit: e3a13304fc036f25eacee9c084294d3b80f7c5bb
      https://github.com/llvm/llvm-project/commit/e3a13304fc036f25eacee9c084294d3b80f7c5bb
  Author: David Sherwood <david.sherwood at arm.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    A llvm/test/Transforms/LoopVectorize/AArch64/sve-large-strides.ll

  Log Message:
  -----------
  [NFC] Add tests for scalable vectorization of loops with large stride acesses

This patch just adds tests that we can vectorize loop such as these:

  for (i = 0; i < n; i++)
    dst[i * 7] += 1;

and

  for (i = 0; i < n; i++)
    if (cond[i])
      dst[i * 7] += 1;

using scalable vectors, where we expect to use gathers and scatters in the
vectorized loop. The vector of pointers used for the gather is identical
to those used for the scatter so there should be no memory dependences.

Tests are added here:

  Transforms/LoopVectorize/AArch64/sve-large-strides.ll

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


  Commit: df4fa53fddb61c2514e7e09fb7cdde53edced958
      https://github.com/llvm/llvm-project/commit/df4fa53fddb61c2514e7e09fb7cdde53edced958
  Author: Balázs Kéri <1.int32 at gmail.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
    A clang/test/Analysis/pthreadlock_state.c
    A clang/test/Analysis/pthreadlock_state_nottracked.c

  Log Message:
  -----------
  [clang][Checkers] Extend PthreadLockChecker state dump (NFC).

Add printing of map 'DestroyRetVal'.

Reviewed By: steakhal

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


  Commit: 6be8662c52424db366f0b33f3203de6ba36f5d61
      https://github.com/llvm/llvm-project/commit/6be8662c52424db366f0b33f3203de6ba36f5d61
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    A llvm/test/Transforms/SLPVectorizer/AArch64/vectorize-free-extracts-inserts.ll

  Log Message:
  -----------
  [SLP] Add test cases for missing SLP vectorization on AArch64.


  Commit: 0f5ebbcc7fc38f587ffd0b84da4693a8625c1ccb
      https://github.com/llvm/llvm-project/commit/0f5ebbcc7fc38f587ffd0b84da4693a8625c1ccb
  Author: Dmitry Preobrazhensky <dmitry.preobrazhensky at amd.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.td
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
    M llvm/lib/Target/AMDGPU/VOP1Instructions.td
    M llvm/lib/Target/AMDGPU/VOP2Instructions.td
    M llvm/lib/Target/AMDGPU/VOP3Instructions.td
    M llvm/lib/Target/AMDGPU/VOP3PInstructions.td
    M llvm/lib/Target/AMDGPU/VOPInstructions.td

  Log Message:
  -----------
  [AMDGPU][MC] Added flag to identify VOP instructions which have a single variant

By convention, VOP1/2/C instructions which can be promoted to VOP3 have _e32 suffix while promoted instructions have _e64 suffix. Instructions which have a single variant should have no _e32/_e64 suffix. Unfortunately there was no simple way to identify single variant instructions - it was implemented by a hack. See bug https://bugs.llvm.org/show_bug.cgi?id=39086.

This fix simplifies handling of single VOP instructions by adding a dedicated flag.

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


  Commit: f7aeaced658c507c5d5ac6e589f4844588267eef
      https://github.com/llvm/llvm-project/commit/f7aeaced658c507c5d5ac6e589f4844588267eef
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  [X86][SSE] Add isHorizOp helper function. NFCI.


  Commit: 301319840e112c090b6c424a9ade475b7504b34a
      https://github.com/llvm/llvm-project/commit/301319840e112c090b6c424a9ade475b7504b34a
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/horizontal-sum.ll

  Log Message:
  -----------
  [X86][SSE] Enable (F)HADD/SUB handling to SimplifyMultipleUseDemandedVectorElts

Attempt to bypass unused horiz-op operands.

This is very similar to the PACKSS/PACKUS handling - we should try to merge these.


  Commit: abbe80fa52c5286ec929116df6a58d793d6f0d0e
      https://github.com/llvm/llvm-project/commit/abbe80fa52c5286ec929116df6a58d793d6f0d0e
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/horizontal-sum.ll

  Log Message:
  -----------
  [X86][SSE] Fold HOP(HOP(X,X),HOP(Y,Y)) -> HOP(PERMUTE(HOP(X,Y)),PERMUTE(HOP(X,Y))

For slow-hop targets, attempt to merge HADD/SUB pairs used in chains.


  Commit: cd953434f2a406a19e8ea4daeb603e07071a0c32
      https://github.com/llvm/llvm-project/commit/cd953434f2a406a19e8ea4daeb603e07071a0c32
  Author: Dmitry Preobrazhensky <dmitry.preobrazhensky at amd.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/VOP2Instructions.td
    M llvm/lib/Target/AMDGPU/VOP3Instructions.td
    M llvm/test/CodeGen/AMDGPU/GlobalISel/ashr.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/combine-short-clamp.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/extractelement.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/fshl.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/insertelement.large.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.atomic.inc.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.global.atomic.csub.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/lshr.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/mul.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/saddsat.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/shl-ext-reduce.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/shl.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/ssubsat.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/uaddsat.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/usubsat.ll
    M llvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
    M llvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
    M llvm/test/CodeGen/AMDGPU/atomic_optimizations_pixelshader.ll
    M llvm/test/CodeGen/AMDGPU/carryout-selection.ll
    M llvm/test/CodeGen/AMDGPU/cgp-addressing-modes-gfx1030.ll
    M llvm/test/CodeGen/AMDGPU/chain-hi-to-lo.ll
    M llvm/test/CodeGen/AMDGPU/ctlz.ll
    M llvm/test/CodeGen/AMDGPU/cvt_f32_ubyte.ll
    M llvm/test/CodeGen/AMDGPU/expand-scalar-carry-out-select-user.ll
    M llvm/test/CodeGen/AMDGPU/fshr.ll
    M llvm/test/CodeGen/AMDGPU/gfx10-vop-literal.ll
    M llvm/test/CodeGen/AMDGPU/global-saddr-atomics.ll
    M llvm/test/CodeGen/AMDGPU/global-saddr-load.ll
    M llvm/test/CodeGen/AMDGPU/idiv-licm.ll
    M llvm/test/CodeGen/AMDGPU/idot2.ll
    M llvm/test/CodeGen/AMDGPU/idot4s.ll
    M llvm/test/CodeGen/AMDGPU/idot4u.ll
    M llvm/test/CodeGen/AMDGPU/idot8s.ll
    M llvm/test/CodeGen/AMDGPU/idot8u.ll
    M llvm/test/CodeGen/AMDGPU/imm16.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.fmul.legacy.ll
    M llvm/test/CodeGen/AMDGPU/llvm.mulo.ll
    M llvm/test/CodeGen/AMDGPU/llvm.pow-gfx9.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-nontemporal.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-volatile.ll
    M llvm/test/CodeGen/AMDGPU/min.ll
    M llvm/test/CodeGen/AMDGPU/offset-split-flat.ll
    M llvm/test/CodeGen/AMDGPU/offset-split-global.ll
    M llvm/test/CodeGen/AMDGPU/preserve-hi16.ll
    M llvm/test/CodeGen/AMDGPU/saddo.ll
    M llvm/test/CodeGen/AMDGPU/saddsat.ll
    M llvm/test/CodeGen/AMDGPU/sdwa-peephole.ll
    M llvm/test/CodeGen/AMDGPU/shl_add_ptr_csub.ll
    M llvm/test/CodeGen/AMDGPU/shrink-add-sub-constant.ll
    M llvm/test/CodeGen/AMDGPU/ssubsat.ll
    M llvm/test/CodeGen/AMDGPU/usubsat.ll
    M llvm/test/CodeGen/AMDGPU/vgpr-descriptor-waterfall-loop-idom-update.ll
    M llvm/test/CodeGen/AMDGPU/wave32.ll
    M llvm/test/MC/AMDGPU/gfx90a_asm_features.s
    M llvm/test/MC/AMDGPU/literalv216.s
    M llvm/test/MC/AMDGPU/vop3-literal.s
    M llvm/test/MC/AMDGPU/wave32.s
    M llvm/test/MC/AMDGPU/wave_any.s
    M llvm/test/MC/Disassembler/AMDGPU/gfx10_dasm_all.txt
    M llvm/test/MC/Disassembler/AMDGPU/gfx90a_dasm_features.txt
    M llvm/test/MC/Disassembler/AMDGPU/literalv216_gfx10.txt
    M llvm/test/MC/Disassembler/AMDGPU/vop3-literal.txt
    M llvm/test/MC/Disassembler/AMDGPU/wave32.txt

  Log Message:
  -----------
  [AMDGPU][MC][GFX10][GFX90A] Corrected _e32/_e64 suffices

Fixed bugs https://bugs.llvm.org//show_bug.cgi?id=49643, https://bugs.llvm.org//show_bug.cgi?id=49644, https://bugs.llvm.org//show_bug.cgi?id=49645.

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


  Commit: fcea4181bbfbc15a27ad4d3c06a09b706b1d6c47
      https://github.com/llvm/llvm-project/commit/fcea4181bbfbc15a27ad4d3c06a09b706b1d6c47
  Author: Michał Górny <mgorny at moritz.systems>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M lldb/test/API/tools/lldb-server/TestLldbGdbServer.py
    M lldb/test/API/tools/lldb-server/vCont-threads/TestGdbRemote_vContThreads.py

  Log Message:
  -----------
  [lldb] [test] Mark lldb-server multiprocess tests as LLGS cat


  Commit: 48e3da13519dea3bd91ab7de656c7d46105c2c01
      https://github.com/llvm/llvm-project/commit/48e3da13519dea3bd91ab7de656c7d46105c2c01
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M lldb/test/API/commands/target/auto-install-main-executable/Makefile
    M lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py
    M lldb/test/API/commands/target/auto-install-main-executable/main.cpp

  Log Message:
  -----------
  [lldb] Rewrite TestAutoInstallMainExecutable logic

The test uses debug info from one binary to debug a different one. This
does not work on macos, and its pure luck that it works elsewhere (the
variable that it inspects happens to have the same address in both).

The purpose of this test is to verify that lldb has not overwritten the
target executable. That can be more easily achieved by checking the exit
code of the binary, so change the test to do that.

Also remove the llgs_test decorator, as it's preventing the test from
running on macos. All the test needs is the platform functionality of
lldb-server, which is available everywhere.


  Commit: ce98a0556aa2d0144af7fca83ff06061a137179d
      https://github.com/llvm/llvm-project/commit/ce98a0556aa2d0144af7fca83ff06061a137179d
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  Log Message:
  -----------
  [SLP]Remove `else` after `return`, NFC.`


  Commit: bad5ee15ea2e5a5aaaed9c9a5d9982e23cedba55
      https://github.com/llvm/llvm-project/commit/bad5ee15ea2e5a5aaaed9c9a5d9982e23cedba55
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M lldb/test/API/functionalities/load_lazy/TestLoadUsingLazyBind.py

  Log Message:
  -----------
  [lldb] Make TestLoadUsingLazyBind work on linux

and probably other posix oses. Use extra_images to ensure
LD_LIBRARY_PATH is set correctly.

Also take the opportunity to remove hand-rolled library extension
management code in favor of the existing one.


  Commit: 7c541a195f651aa8d6aa270db83932a6ac7fac78
      https://github.com/llvm/llvm-project/commit/7c541a195f651aa8d6aa270db83932a6ac7fac78
  Author: Anastasia Stulova <anastasia.stulova at arm.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M clang/docs/OpenCLSupport.rst

  Log Message:
  -----------
  [OpenCL][Docs] Added a label for C++ libs section and example link


  Commit: dc14e89a1fab6a840c5d8bc3f2bd29f1d1b190be
      https://github.com/llvm/llvm-project/commit/dc14e89a1fab6a840c5d8bc3f2bd29f1d1b190be
  Author: Andrzej Warzynski <andrzej.warzynski at arm.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M flang/lib/Frontend/FrontendOptions.cpp

  Log Message:
  -----------
  [flang] Move .f77 to the list of fixed-form file extensions

The free form was introduced in Fortran 90, so treating .f77 as
free-form was a bug.

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


  Commit: 77d625f8d8aa08cd162d20af51c41776a5034705
      https://github.com/llvm/llvm-project/commit/77d625f8d8aa08cd162d20af51c41776a5034705
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/test/CodeGen/X86/haddsub-undef.ll
    M llvm/test/CodeGen/X86/phaddsub.ll
    M llvm/test/CodeGen/X86/x86-interleaved-access.ll

  Log Message:
  -----------
  [DAG] MergeInnerShuffle with BinOps - sometimes accept undef mask elements

If the inner shuffle already contains undef elements, then accept them in the merged shuffle as well.

This helps some X86 HADD/SUB patterns where slow targets were ending up with HADD/SUB because the (un)merged shuffles were stuck either side of the ADD/SUB - meaning we ended up with a total cost much higher than the "2*shuffle+add" that a slow target usually expands a HADD/SUB to.


  Commit: c03696da5e13d355775dd4382957b3dcd3c3ad7c
      https://github.com/llvm/llvm-project/commit/c03696da5e13d355775dd4382957b3dcd3c3ad7c
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/ext-trunc.ll
    M llvm/test/Transforms/SLPVectorizer/X86/inst_size_bug.ll

  Log Message:
  -----------
  [SLP]Improve and fix getVectorElementSize.

1. Need to cleanup InstrElementSize map for each new tree, otherwise might
use sizes from the previous run of the vectorization attempt.
2. No need to include into analysis the instructions from the different basic
   blocks to save compile time.

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


  Commit: 65c8bfb5094e73f15a826d37146e4bb7c74a5a7e
      https://github.com/llvm/llvm-project/commit/65c8bfb5094e73f15a826d37146e4bb7c74a5a7e
  Author: Brendon Cahoon <brendon.cahoon at amd.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
    M llvm/test/CodeGen/AMDGPU/omod.ll

  Log Message:
  -----------
  [AMDGPU] Enable output modifiers for double precision instructions

Update SIFoldOperands pass to recognize v_add_f64 and v_mul_f64
instructions for folding output modifiers.

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


  Commit: 0934fa4f5d5b07856a73b5dddd395f70c8a3fa84
      https://github.com/llvm/llvm-project/commit/0934fa4f5d5b07856a73b5dddd395f70c8a3fa84
  Author: Bradley Smith <bradley.smith at arm.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/sve-calling-convention.ll
    M llvm/test/CodeGen/AArch64/sve-tailcall.ll

  Log Message:
  -----------
  [AArch64][SVE] SVE functions should use the SVE calling convention for fast calls

When an SVE function calls another SVE function using the C calling
convention we use the more efficient SVE VectorCall PCS.  However,
for the Fast calling convention we're incorrectly falling back to
the generic AArch64 PCS.

This patch adds the same "can use SVE vector calling convention"
detection used by CallingConv::C to CallingConv::Fast.

Co-authored-by: Paul Walker <paul.walker at arm.com>

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


  Commit: 2f45e632c0029d6efa0f8df210c2f5a3f3affc17
      https://github.com/llvm/llvm-project/commit/2f45e632c0029d6efa0f8df210c2f5a3f3affc17
  Author: Bradley Smith <bradley.smith at arm.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/sve-fixed-length-fp-select.ll
    A llvm/test/CodeGen/AArch64/sve-fixed-length-fp-vselect.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-int-select.ll
    A llvm/test/CodeGen/AArch64/sve-fixed-length-int-vselect.ll

  Log Message:
  -----------
  [AArch64][SVE] Improve codegen for select nodes with fixed types

Additionally, move the existing fixed vselect tests to *-vselect.ll.

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


  Commit: 7b921a674756dacebbe0431211ce43edb3493230
      https://github.com/llvm/llvm-project/commit/7b921a674756dacebbe0431211ce43edb3493230
  Author: Anirudh Prasad <anirudh_prasad at hotmail.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/include/llvm/MC/MCParser/MCAsmLexer.h
    M llvm/lib/MC/MCParser/AsmLexer.cpp
    M llvm/unittests/MC/SystemZ/SystemZAsmLexerTest.cpp

  Log Message:
  -----------
  [AsmParser][SystemZ][z/OS] Add in support to accept "#" as part of an Identifier token

- This patch adds in support to accept the "#" character as part of an Identifier.
- This support is needed especially for the HLASM dialect since "#" is treated as part of the valid "Alphabet" range
- The way this is done is by making use of the previous precedent set by the `AllowAtInIdentifier` field in `MCAsmLexer.h`. A new field called `AllowHashInIdentifier` is introduced.
- The static function `IsIdentifierChar` is also updated to accept the `#` character if the `AllowHashInIdentifier` field is set to true.
Note: The field introduced in `MCAsmLexer.h` could very well be moved to `MCAsmInfo.h`. I'm not opposed to it. I decided to put it in `MCAsmLexer` since there seems to be some sort of precedent already with `AllowAtInIdentifier`.

Reviewed By: abhina.sreeskantharajan, nickdesaulniers, MaskRay

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


  Commit: 1ea9fa8c507ec360cf43faf46d13b149e37c950d
      https://github.com/llvm/llvm-project/commit/1ea9fa8c507ec360cf43faf46d13b149e37c950d
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/ParsedAttr.h
    M clang/lib/Parse/ParseDecl.cpp
    M clang/test/AST/sourceranges.cpp
    M clang/test/SemaCXX/switch-implicit-fallthrough.cpp

  Log Message:
  -----------
  [clang][parser] Set source ranges for GNU-style attributes

Set the source ranges for parsed GNU-style attributes in
ParseGNUAttributes(), the same way that ParseCXX11Attributes() does it.

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


  Commit: 908a267b5a3b8dff1cd2af0f5971c05c30aaccb0
      https://github.com/llvm/llvm-project/commit/908a267b5a3b8dff1cd2af0f5971c05c30aaccb0
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/ParsedAttr.h
    M clang/lib/Parse/ParseDecl.cpp
    M clang/test/AST/sourceranges.cpp
    M clang/test/SemaCXX/switch-implicit-fallthrough.cpp

  Log Message:
  -----------
  Revert "[clang][parser] Set source ranges for GNU-style attributes"

This reverts commit 1ea9fa8c507ec360cf43faf46d13b149e37c950d.


  Commit: ce61def529e2d9ef46b79c9d1f489d69b45b95bf
      https://github.com/llvm/llvm-project/commit/ce61def529e2d9ef46b79c9d1f489d69b45b95bf
  Author: Mircea Trofin <mtrofin at google.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/include/llvm/CodeGen/LiveIntervalUnion.h
    M llvm/lib/CodeGen/LiveIntervalUnion.cpp
    M llvm/lib/CodeGen/LiveRegMatrix.cpp
    M llvm/lib/CodeGen/RegAllocGreedy.cpp
    M llvm/lib/Target/AArch64/AArch64Subtarget.h
    M llvm/lib/Target/X86/X86Subtarget.h
    M llvm/test/CodeGen/AArch64/ragreedy-local-interval-cost.ll
    M llvm/test/CodeGen/X86/bug26810.ll
    M llvm/test/CodeGen/X86/greedy_regalloc_bad_eviction_sequence.ll
    M llvm/test/CodeGen/X86/i128-mul.ll
    M llvm/test/CodeGen/X86/mmx-arith.ll
    M llvm/test/CodeGen/X86/optimize-max-0.ll

  Log Message:
  -----------
  [regalloc] Ensure Query::collectInterferringVregs is called before interval iteration

The main part of the patch is the change in RegAllocGreedy.cpp: Q.collectInterferringVregs()
needs to be called before iterating the interfering live ranges.

The rest of the patch offers support that is the case: instead of  clearing the query's
InterferingVRegs field, we invalidate it. The clearing happens when the live reg matrix
is invalidated (existing triggering mechanism).

Without the change in RegAllocGreedy.cpp, the compiler ices.

This patch should make it more easily discoverable by developers that
collectInterferringVregs needs to be called before iterating.

I will follow up with a subsequent patch to improve the usability and maintainability of Query.

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


  Commit: e2c6621e638e4dc30963293bff052784d3a3305a
      https://github.com/llvm/llvm-project/commit/e2c6621e638e4dc30963293bff052784d3a3305a
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/include/llvm/IR/Value.h
    M llvm/lib/Analysis/Loads.cpp
    M llvm/lib/IR/Value.cpp
    M llvm/test/Transforms/LICM/hoist-alloc.ll
    M llvm/test/Transforms/LoopVectorize/X86/load-deref-pred.ll

  Log Message:
  -----------
  [deref-at-point] restrict inference of dereferenceability based on allocsize attribute

Support deriving dereferenceability facts from allocation sites with known object sizes while correctly accounting for any possibly frees between allocation and use site. (At the moment, we're conservative and only allowing it in functions where we know we can't free.)

This is part of the work on deref-at-point semantics. I'm making the change unconditional as the miscompile in this case is way too easy to trip by accident, and the optimization was only recently added (by me).

There will be a follow up patch wiring through TLI since that should now be doable without introducing widespread miscompiles.

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


  Commit: b1fbfd9e4c2c4d630eb25588061b3096704fe680
      https://github.com/llvm/llvm-project/commit/b1fbfd9e4c2c4d630eb25588061b3096704fe680
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp

  Log Message:
  -----------
  [AMDGPU] Small cleanup to constructRetValue and its caller. NFC.


  Commit: 802c5ce364a21c54c1568c8791b1d5f36c11829e
      https://github.com/llvm/llvm-project/commit/802c5ce364a21c54c1568c8791b1d5f36c11829e
  Author: Stella Stamenova <stilis at microsoft.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M lldb/test/API/commands/target/auto-install-main-executable/TestAutoInstallMainExecutable.py

  Log Message:
  -----------
  [lldb] Un-XFAIL TestAutoInstallMainExecutable on Windows


  Commit: 7a4abc07dd8f1d8217e482ebbf438197c1aea7f0
      https://github.com/llvm/llvm-project/commit/7a4abc07dd8f1d8217e482ebbf438197c1aea7f0
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/LoopVectorize/assume.ll

  Log Message:
  -----------
  [LoopVectorize] auto-generate complete checks; NFC

We can't see how much overhead/redundancy is being
created with the partial checks.

To make it smaller and easier to read, I reduced the
vectorization factor because that does not add new
information - it just duplicates things.


  Commit: 56b39afb58627507ffbc7eaa749781a30b750c03
      https://github.com/llvm/llvm-project/commit/56b39afb58627507ffbc7eaa749781a30b750c03
  Author: cchen <chichunchen844 at gmail.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M clang/docs/OpenMPSupport.rst

  Log Message:
  -----------
  [OpenMP51][DOCS] Mark "add present modifier in defaultmap clause" as
done, NFC.


  Commit: 97834378852b1eeef34fae7c9354a7f33327004e
      https://github.com/llvm/llvm-project/commit/97834378852b1eeef34fae7c9354a7f33327004e
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    A llvm/test/Transforms/FunctionAttrs/nosync.ll

  Log Message:
  -----------
  [tests] Cover the most basic cases of nosync inference


  Commit: d61b40ed27509d8a99b4d85499a8d5ca9f37f111
      https://github.com/llvm/llvm-project/commit/d61b40ed27509d8a99b4d85499a8d5ca9f37f111
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMatInt.cpp
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMatInt.h
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/test/CodeGen/RISCV/copysign-casts.ll
    M llvm/test/CodeGen/RISCV/double-bitmanip-dagcombines.ll
    M llvm/test/CodeGen/RISCV/double-intrinsics.ll
    M llvm/test/CodeGen/RISCV/float-bit-preserving-dagcombines.ll
    M llvm/test/CodeGen/RISCV/imm.ll
    M llvm/test/CodeGen/RISCV/rv64zbp.ll
    M llvm/test/CodeGen/RISCV/rv64zbs.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-int.ll
    M llvm/test/CodeGen/RISCV/rvv/vreductions-int-rv64.ll
    M llvm/test/CodeGen/RISCV/sadd_sat.ll
    M llvm/test/CodeGen/RISCV/sadd_sat_plus.ll
    M llvm/test/CodeGen/RISCV/srem-seteq-illegal-types.ll
    M llvm/test/CodeGen/RISCV/srem-vector-lkk.ll
    M llvm/test/CodeGen/RISCV/ssub_sat.ll
    M llvm/test/CodeGen/RISCV/ssub_sat_plus.ll
    M llvm/test/CodeGen/RISCV/urem-seteq-illegal-types.ll
    M llvm/test/MC/RISCV/rv64c-aliases-valid.s
    M llvm/test/MC/RISCV/rv64i-aliases-valid.s

  Log Message:
  -----------
  [RISCV] Improve 64-bit integer materialization for some cases.

This adds a new integer materialization strategy mainly targeted
at 64-bit constants like 0xffffffff where there are 32 or more trailing
ones with leading zeros. We can materialize these by using an addi -1
and srli to restore the leading zeros. This matches what gcc does.

I haven't limited to just these cases though. The implementation
here takes the constant, shifts out all the leading zeros and
shifts ones into the LSBs, creates the new sequence, adds an srli,
and checks if this is shorter than our original strategy.

I've separated the recursive portion into a standalone function
so I could append the new strategy outside of the recursion. Since
external users are no longer using the recursive function, I've
cleaned up the external interface to return the sequence instead of
taking a vector by reference.

Reviewed By: asb

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


  Commit: 85ff35a9529a1ea9ed7ab8cda10761d66705d518
      https://github.com/llvm/llvm-project/commit/85ff35a9529a1ea9ed7ab8cda10761d66705d518
  Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M clang/lib/Headers/__clang_hip_cmath.h

  Log Message:
  -----------
  [HIP] remove overloaded abs in header

This function seems to be introduced by accident by
https://github.com/llvm/llvm-project/commit/aa2b593f1495a972a4a592952760ec9d5f7c01f1

Such overloaded abs function did not exist before
the refactoring, and does not exist in
https://github.com/llvm/llvm-project/blob/main/clang/lib/Headers/__clang_cuda_cmath.h

Conceptually it also does not make sense, since it adds something like

double abs(int x) {
  return ::abs((double)x);
}

It caused regressions in CuPy.

Reviewed by: Aaron Enye Shi, Artem Belevich

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


  Commit: 0af4e74aef2eaddc17e1e92eb6d1102cdb5f8ff4
      https://github.com/llvm/llvm-project/commit/0af4e74aef2eaddc17e1e92eb6d1102cdb5f8ff4
  Author: Joseph Huber <jhuber6 at vols.utk.edu>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M openmp/libomptarget/src/omptarget.cpp

  Log Message:
  -----------
  [OpenMP][NFC] Fix typo in libomptarget error message

Summary:
There was a typo suggesting the user to use `LIBOMPTARGET_DEBUG` instead of
`LIBOMPTARGET_INFO`


  Commit: 0c653d4c3d1426267337576ab202bb594144111c
      https://github.com/llvm/llvm-project/commit/0c653d4c3d1426267337576ab202bb594144111c
  Author: Dave Lee <davelee.com at gmail.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M lldb/docs/resources/test.rst

  Log Message:
  -----------
  [lldb] Update test.rst with a paragraph about pdb

Debugging tests sometimes involves debugging the Python source. This adds a paragraph to
the "Debugging Test Failures" section about using `pdb`, and also describes how to run
lldb commands from pdb.

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


  Commit: 0bc5436ae892eaa6ee038f2d1ea26e02a72eed96
      https://github.com/llvm/llvm-project/commit/0bc5436ae892eaa6ee038f2d1ea26e02a72eed96
  Author: Samuel <swamulism at gmail.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    R llvm/test/Reduce/Inputs/remove-args.py
    R llvm/test/Reduce/Inputs/remove-bbs.py
    R llvm/test/Reduce/Inputs/remove-instructions.py
    R llvm/test/Reduce/Inputs/remove-metadata.py
    R llvm/test/Reduce/do-not-remove-terminator.ll
    R llvm/test/Reduce/no-replace-intrinsic-callee-with-undef.ll
    R llvm/test/Reduce/remove-alias.ll
    R llvm/test/Reduce/remove-all-of-multiple-args.ll
    R llvm/test/Reduce/remove-args-2.ll
    R llvm/test/Reduce/remove-args-from-declaration.ll
    R llvm/test/Reduce/remove-args-used-by-ret.ll
    R llvm/test/Reduce/remove-args.ll
    R llvm/test/Reduce/remove-attributes-from-intrinsic-like-functions.ll
    R llvm/test/Reduce/remove-attributes-from-intrinsics.ll
    R llvm/test/Reduce/remove-bbs-ret-nonvoid.ll
    R llvm/test/Reduce/remove-bbs-unwinded-to.ll
    R llvm/test/Reduce/remove-bbs.ll
    R llvm/test/Reduce/remove-call-site-attributes.ll
    R llvm/test/Reduce/remove-dso-local.ll
    R llvm/test/Reduce/remove-funcs.ll
    R llvm/test/Reduce/remove-function-arguments-of-funcs-used-in-blockaddress.ll
    R llvm/test/Reduce/remove-function-attributes.ll
    R llvm/test/Reduce/remove-function-bodies-comdat.ll
    R llvm/test/Reduce/remove-function-bodies-used-in-globals.ll
    R llvm/test/Reduce/remove-function-bodies.ll
    R llvm/test/Reduce/remove-global-variable-attributes.ll
    R llvm/test/Reduce/remove-global-vars.ll
    R llvm/test/Reduce/remove-instructions.ll
    R llvm/test/Reduce/remove-invoked-functions.ll
    R llvm/test/Reduce/remove-metadata.ll
    R llvm/test/Reduce/remove-multiple-use-of-args-in-same-instruction.ll
    R llvm/test/Reduce/remove-multiple-use-of-global-vars-in-same-instruction.ll
    R llvm/test/Reduce/remove-operand-bundles.ll
    R llvm/test/Reduce/remove-single-arg.ll
    R llvm/test/Reduce/remove-unused-declarations.ll
    A llvm/test/tools/llvm-reduce/Inputs/remove-args.py
    A llvm/test/tools/llvm-reduce/Inputs/remove-bbs.py
    A llvm/test/tools/llvm-reduce/Inputs/remove-instructions.py
    A llvm/test/tools/llvm-reduce/Inputs/remove-metadata.py
    A llvm/test/tools/llvm-reduce/do-not-remove-terminator.ll
    A llvm/test/tools/llvm-reduce/no-replace-intrinsic-callee-with-undef.ll
    A llvm/test/tools/llvm-reduce/remove-alias.ll
    A llvm/test/tools/llvm-reduce/remove-all-of-multiple-args.ll
    A llvm/test/tools/llvm-reduce/remove-args-2.ll
    A llvm/test/tools/llvm-reduce/remove-args-from-declaration.ll
    A llvm/test/tools/llvm-reduce/remove-args-used-by-ret.ll
    A llvm/test/tools/llvm-reduce/remove-args.ll
    A llvm/test/tools/llvm-reduce/remove-attributes-from-intrinsic-like-functions.ll
    A llvm/test/tools/llvm-reduce/remove-attributes-from-intrinsics.ll
    A llvm/test/tools/llvm-reduce/remove-bbs-ret-nonvoid.ll
    A llvm/test/tools/llvm-reduce/remove-bbs-unwinded-to.ll
    A llvm/test/tools/llvm-reduce/remove-bbs.ll
    A llvm/test/tools/llvm-reduce/remove-call-site-attributes.ll
    A llvm/test/tools/llvm-reduce/remove-dso-local.ll
    A llvm/test/tools/llvm-reduce/remove-funcs.ll
    A llvm/test/tools/llvm-reduce/remove-function-arguments-of-funcs-used-in-blockaddress.ll
    A llvm/test/tools/llvm-reduce/remove-function-attributes.ll
    A llvm/test/tools/llvm-reduce/remove-function-bodies-comdat.ll
    A llvm/test/tools/llvm-reduce/remove-function-bodies-used-in-globals.ll
    A llvm/test/tools/llvm-reduce/remove-function-bodies.ll
    A llvm/test/tools/llvm-reduce/remove-global-variable-attributes.ll
    A llvm/test/tools/llvm-reduce/remove-global-vars.ll
    A llvm/test/tools/llvm-reduce/remove-instructions.ll
    A llvm/test/tools/llvm-reduce/remove-invoked-functions.ll
    A llvm/test/tools/llvm-reduce/remove-metadata.ll
    A llvm/test/tools/llvm-reduce/remove-multiple-use-of-args-in-same-instruction.ll
    A llvm/test/tools/llvm-reduce/remove-multiple-use-of-global-vars-in-same-instruction.ll
    A llvm/test/tools/llvm-reduce/remove-operand-bundles.ll
    A llvm/test/tools/llvm-reduce/remove-single-arg.ll
    A llvm/test/tools/llvm-reduce/remove-unused-declarations.ll

  Log Message:
  -----------
  [llvm-reduce] Move tests to tools folder

Move tests for llvm-reduce to tools folder

Reviewed By: fhahn, lebedev.ri

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


  Commit: 0ba0a7315c4f74f48a75c6d793fbf6921b5cc460
      https://github.com/llvm/llvm-project/commit/0ba0a7315c4f74f48a75c6d793fbf6921b5cc460
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/PowerPC/pr27078.ll

  Log Message:
  -----------
  [PPC] Regenerate PR27078 test checks


  Commit: 96d8c6b571e696f520a054820d13872cdc17c793
      https://github.com/llvm/llvm-project/commit/96d8c6b571e696f520a054820d13872cdc17c793
  Author: Petr Hosek <phosek at google.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M libcxx/CMakeLists.txt
    M libcxx/cmake/Modules/HandleLibCXXABI.cmake
    M libcxx/docs/BuildingLibcxx.rst
    M libcxx/include/CMakeLists.txt
    M libcxx/src/CMakeLists.txt
    M libcxxabi/CMakeLists.txt
    M libcxxabi/src/CMakeLists.txt
    M libunwind/CMakeLists.txt
    M libunwind/src/CMakeLists.txt

  Log Message:
  -----------
  [CMake] Remove {LIBCXX,LIBCXXABI,LIBUNWIND}_INSTALL_PREFIX

These variables were introduced during early work on the runtimes build
but were obsoleted by {LIBCXX,LIBCXXABI,LIBUNWIND}_INSTALL_LIBRARY_DIR.

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


  Commit: 4af6251cea025c1ea67013af0ff2a13a63204292
      https://github.com/llvm/llvm-project/commit/4af6251cea025c1ea67013af0ff2a13a63204292
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/lib/Target/AMDGPU/SIISelLowering.h

  Log Message:
  -----------
  [AMDGPU][SDag] Add IMG init in AdjustInstrPostInstrSelection

Doing this in a post-isel hook avoids the cost of running SIAddIMGInit
which is yet another pass over the MIR.

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


  Commit: 3d07a6d891f58c5ebb64e0ff63f27ca97493e6f4
      https://github.com/llvm/llvm-project/commit/3d07a6d891f58c5ebb64e0ff63f27ca97493e6f4
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp

  Log Message:
  -----------
  [AMDGPU][GlobalISel] Add IMG init in selectImageIntrinsic

Doing this during instruction selection avoids the cost of running
SIAddIMGInit which is yet another pass over the MIR.

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


  Commit: fdc4f19e2f80b2d8b6f667d854a2305f0025b34b
      https://github.com/llvm/llvm-project/commit/fdc4f19e2f80b2d8b6f667d854a2305f0025b34b
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPU.h
    M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
    M llvm/lib/Target/AMDGPU/CMakeLists.txt
    R llvm/lib/Target/AMDGPU/SIAddIMGInit.cpp

  Log Message:
  -----------
  [AMDGPU] Remove SIAddIMGInit pass which is now unused

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


  Commit: 7d15fb5779452c5efbceb82ce0e1f8724a82d290
      https://github.com/llvm/llvm-project/commit/7d15fb5779452c5efbceb82ce0e1f8724a82d290
  Author: Vedant Kumar <vsk at apple.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/lldbutil.py

  Log Message:
  -----------
  [lldb/test] Respect --apple-sdk path when querying SDK info

Respect --apple-sdk <path> if it's specified. If the SDK is simply
mounted from some disk image, and not actually installed, this is the
only way to use it.

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


  Commit: dadcd940f0897c125f568c7d355cc23c6a5544f4
      https://github.com/llvm/llvm-project/commit/dadcd940f0897c125f568c7d355cc23c6a5544f4
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/RISCV/mul.ll

  Log Message:
  -----------
  [RISCV] Add MULHU and MULHS tests with a constant operand.


  Commit: b7c2e577cc8f9f92b7ce206ea7d6cba3eaa3f98c
      https://github.com/llvm/llvm-project/commit/b7c2e577cc8f9f92b7ce206ea7d6cba3eaa3f98c
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/lib/Target/RISCV/RISCVInstrInfoM.td
    M llvm/test/CodeGen/RISCV/mul.ll

  Log Message:
  -----------
  [RISCV] Add custom type legalization to form MULHSU when possible.

There's no target independent ISD opcode for MULHSU, so custom
legalize 2*XLen multiplies ourselves. We have to be a little
careful to prefer MULHU or MULHSU.

I thought about doing this in isel by pattern matching the
(add (mul X, (srai Y, XLen-1)), (mulhu X, Y)) pattern. I decided
against this because the add might become part of a chain of adds.
I don't trust DAG combine not to reassociate with other adds making
it difficult to find both pieces again.

Reviewed By: asb

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


  Commit: 4be379b18bdece0929df2f3d2d3bebc739f6bece
      https://github.com/llvm/llvm-project/commit/4be379b18bdece0929df2f3d2d3bebc739f6bece
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/lib/Target/AMDGPU/BUILD.gn

  Log Message:
  -----------
  [gn build] Port fdc4f19e2f80


  Commit: 1addc231cd5b948012c3c07ad0f6b671a0793e55
      https://github.com/llvm/llvm-project/commit/1addc231cd5b948012c3c07ad0f6b671a0793e55
  Author: Nick Desaulniers <ndesaulniers at google.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/ARM/ARMInstrThumb2.td
    M llvm/test/MC/ARM/basic-thumb2-instructions.s

  Log Message:
  -----------
  [MC][ARM] add .w suffixes for ORN/ORNS T1

See also:
F5.1.128 ORN, ORNS (register) T1 shift or rotate by value variant
of the Arm ARM.

Link: https://github.com/ClangBuiltLinux/linux/issues/1309

Reviewed By: DavidSpickett

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


  Commit: d157e3f387c918a6736fb29fccd78a80425e5f88
      https://github.com/llvm/llvm-project/commit/d157e3f387c918a6736fb29fccd78a80425e5f88
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/test/CodeGen/RISCV/rvv/vmsgt-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmsgt-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/vmsgtu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmsgtu-rv64.ll

  Log Message:
  -----------
  [RISCV] Fix handling of nxvXi64 vmsgt(u).vx intrinsics on RV32.

We need to splat the scalar separately and use .vv, but there is
no vmsgt(u).vv. So add isel patterns to select vmslt(u).vv with
swapped operands.

We also need to get VT to use for the splat from an operand rather
than the result since the result VT is nxvXi1.

Reviewed By: HsiangKai

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


  Commit: 6b05d753e0769d841a5e95ccf86938143a922dc8
      https://github.com/llvm/llvm-project/commit/6b05d753e0769d841a5e95ccf86938143a922dc8
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/include/llvm/IR/Intrinsics.td
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/test/Analysis/BasicAA/cs-cs.ll

  Log Message:
  -----------
  Mark unordered memset/memmove/memcpy as nosync

Mostly a means to remove a bit of code from attributor in advance of implementing a FuncAttr inference for nosync.


  Commit: 232d3a3e4755057b51cec1c4c5eaa7ecdec9e70a
      https://github.com/llvm/llvm-project/commit/232d3a3e4755057b51cec1c4c5eaa7ecdec9e70a
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M libcxx/utils/run.py

  Log Message:
  -----------
  [libc++] Fix codesigning in run.py

Without this patch, we'd always try to codesign the first argument in
the command line, which in some cases is not something we can codesign
(e.g. `bash` for some .sh.cpp tests).

Note that this "hack" is the same thing we do in `ssh.py` - we might need
to admit that it's not a hack after all in the future, but I'm not ready
for that yet.

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


  Commit: 60854c328d8729b2ef10b9bb4dcbcc282f43c5e7
      https://github.com/llvm/llvm-project/commit/60854c328d8729b2ef10b9bb4dcbcc282f43c5e7
  Author: Raphael Isemann <teemperor at gmail.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M clang/lib/CodeGen/BackendUtil.cpp

  Log Message:
  -----------
  Avoid calling ParseCommandLineOptions in BackendUtil if possible

Calling `ParseCommandLineOptions` should only be called from `main` as the
CommandLine setup code isn't thread-safe. As BackendUtil is part of the
generic Clang FrontendAction logic, a process which has several threads executing
Clang FrontendActions will randomly crash in the unsafe setup code.

This patch avoids calling the function unless either the debug-pass option or
limit-float-precision option is set. Without these two options set the
`ParseCommandLineOptions` call doesn't do anything beside parsing
the command line `clang` which doesn't set any options.

See also D99652 where LLDB received a workaround for this crash.

Reviewed By: JDevlieghere

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


  Commit: 775e55462a6497795b8444718f136b753453bd30
      https://github.com/llvm/llvm-project/commit/775e55462a6497795b8444718f136b753453bd30
  Author: Petr Hosek <phosek at google.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M compiler-rt/test/CMakeLists.txt

  Log Message:
  -----------
  [CMake] Include dependency on cxx-headers in compiler-rt tests

The missing dependency was revealed by D97572.

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


  Commit: e93c95dea103ead27c522a41085949bd73a30d9a
      https://github.com/llvm/llvm-project/commit/e93c95dea103ead27c522a41085949bd73a30d9a
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M libcxx/utils/ci/run-buildbot

  Log Message:
  -----------
  [libc++] Print the CMake version before generating CMake


  Commit: 52338af5695e48bfd74fdb8e253b32ba82b016f5
      https://github.com/llvm/llvm-project/commit/52338af5695e48bfd74fdb8e253b32ba82b016f5
  Author: Nick Desaulniers <ndesaulniers at google.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/ARM/ARMInstrThumb2.td
    M llvm/test/MC/ARM/basic-thumb2-instructions.s

  Log Message:
  -----------
  [MC][ARM] add .w suffixes for RSB/RSBS T1

See also:
F5.1.167 RSB, RSBS (register) T1 shift or rotate by value variant
of the Arm ARM.

Link: https://github.com/ClangBuiltLinux/linux/issues/1309

Reviewed By: DavidSpickett

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


  Commit: 8f7c1b22721da9f38e2129248d27df280861fdb1
      https://github.com/llvm/llvm-project/commit/8f7c1b22721da9f38e2129248d27df280861fdb1
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    A libcxx/test/std/containers/sequences/list/list.cons/dtor.pass.cpp

  Log Message:
  -----------
  [libc++] NFC: Add a simple test to make sure we destroy elements in std::list

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


  Commit: 3ba1b1cd201dbf2d5f9da4d3a018091c3e3a2d78
      https://github.com/llvm/llvm-project/commit/3ba1b1cd201dbf2d5f9da4d3a018091c3e3a2d78
  Author: Aden Grue <agrue at google.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    A mlir/include/mlir/Dialect/StandardOps/Transforms/ComposeSubView.h
    M mlir/lib/Dialect/StandardOps/Transforms/CMakeLists.txt
    A mlir/lib/Dialect/StandardOps/Transforms/ComposeSubView.cpp
    A mlir/test/Transforms/compose-subview.mlir
    M mlir/test/lib/Transforms/CMakeLists.txt
    A mlir/test/lib/Transforms/TestComposeSubView.cpp
    M mlir/tools/mlir-opt/mlir-opt.cpp

  Log Message:
  -----------
  Add a pattern to combine composed subview ops

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


  Commit: 432b2ab427e2b1980df47a76bbd7018b862ae8c3
      https://github.com/llvm/llvm-project/commit/432b2ab427e2b1980df47a76bbd7018b862ae8c3
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll

  Log Message:
  -----------
  [SLP]Test for min/max reductions bug, NFC.


  Commit: 4d9039c8dc2d1f0be1b5ee486d5a83b1614b038a
      https://github.com/llvm/llvm-project/commit/4d9039c8dc2d1f0be1b5ee486d5a83b1614b038a
  Author: Jim Ingham <jingham at apple.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M lldb/source/Plugins/Language/ObjC/Cocoa.cpp
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
    M lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h
    M lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCCF.py

  Log Message:
  -----------
  Add support for fetching signed values from tagged pointers.

The ObjC runtime offers both signed & unsigned tagged pointer value
accessors to tagged pointer providers, but lldb's tagged pointer
code only implemented the unsigned one.  This patch adds an
emulation of the signed one.

The motivation for doing this is that NSNumbers use the signed
accessor (they are always signed) and we need to follow that in our
summary provider or we will get incorrect values for negative
NSNumbers.

The data-formatter-objc test file had NSNumber examples (along with lots of other
goodies) but the NSNumber values weren't tested.  So I also added
checks for those values to the test.

I also did a quick audit of the other types in that main.m file, and
it looks like pretty much all the other values are either intermediates
or are tested.

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


  Commit: 18dbe0f954a75f25bd57bba95dfa83cc5e2aa497
      https://github.com/llvm/llvm-project/commit/18dbe0f954a75f25bd57bba95dfa83cc5e2aa497
  Author: Raphael Isemann <teemperor at gmail.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M lldb/source/API/SystemInitializerFull.cpp

  Log Message:
  -----------
  [lldb] Prevent that LLDB randomly crashes in CommandLineParser::addOption by initializing LLVM's command line parser

Since quite a while Apple's LLDB fork (that contains the Swift debugging
support) is randomly crashing in `CommandLineParser::addOption` with an error
such as `CommandLine Error: Option 'h' registered more than once!`

The backtrace of the crashing thread is shown below. There are also usually many
other threads also performing similar clang::FrontendActions which are all
trying to generate (usually outdated) Clang modules which are used by Swift for
various reasons.

```
[  6] LLDB`CommandLineParser::addOption(llvm::cl::Option*, llvm::cl::SubCommand*) + 856
[  7] LLDB`CommandLineParser::addOption(llvm::cl::Option*, llvm::cl::SubCommand*) + 733
[  8] LLDB`CommandLineParser::addOption(llvm::cl::Option*, bool) + 184
[  9] LLDB`llvm::cl::ParseCommandLineOptions(...) [inlined] ::CommandLineParser::ParseCommandLineOptions(... + 1279
[  9] LLDB`llvm::cl::ParseCommandLineOptions(...) + 497
[ 10] LLDB`setCommandLineOpts(clang::CodeGenOptions const&) + 416
[ 11] LLDB`EmitAssemblyHelper::EmitAssemblyWithNewPassManager(...) + 98
[ 12] LLDB`clang::EmitBackendOutput(...) + 4580
[ 13] LLDB`PCHContainerGenerator::HandleTranslationUnit(clang::ASTContext&) + 871
[ 14] LLDB`clang::MultiplexConsumer::HandleTranslationUnit(clang::ASTContext&) + 43
[ 15] LLDB`clang::ParseAST(clang::Sema&, bool, bool) + 579
[ 16] LLDB`clang::FrontendAction::Execute() + 74
[ 17] LLDB`clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 1808
```

The underlying reason for the crash is that the CommandLine code in LLVM isn't
thread-safe and will never be thread-safe with its current architecture. The way
LLVM's CommandLine logic works is that all parts of the LLVM can provide command
line arguments by defining `cl::opt` global variables and their constructors
(which are invoked during static initialisation) register the variable in LLVM's
CommandLineParser (which is also just a global variable). At some later point
after static initialization we actually try to parse command line arguments and
we ask the CommandLineParser to parse our `argv`.  The CommandLineParser then
lazily constructs it's internal parsing state in a non-thread-safe way (this is
where the crash happens), parses the provided command line and then goes back to
the respective `cl::opt` global variables and sets their values according to the
parse result.

As all of this is based on global state, this whole mechanism isn't thread-safe
so the only time to ever use it is when we know we only have one active thread
dealing with LLVM logic. That's why nearly all callers of
`llvm::cl::ParseCommandLineOptions` are at the top of the `main` function of the
some LLVM-based tool. One of the few exceptions to this rule is in the
`setCommandLineOpts` function in `BackendUtil.cpp` which is in our backtrace:

```
static void setCommandLineOpts(const CodeGenOptions &CodeGenOpts) {
  SmallVector<const char *, 16> BackendArgs;
  BackendArgs.push_back("clang"); // Fake program name.
  if (!CodeGenOpts.DebugPass.empty()) {
    BackendArgs.push_back("-debug-pass");
    BackendArgs.push_back(CodeGenOpts.DebugPass.c_str());
  }
  if (!CodeGenOpts.LimitFloatPrecision.empty()) {
    BackendArgs.push_back("-limit-float-precision");
    BackendArgs.push_back(CodeGenOpts.LimitFloatPrecision.c_str());
  }
  BackendArgs.push_back(nullptr);
  llvm::cl::ParseCommandLineOptions(BackendArgs.size() - 1,
                                    BackendArgs.data());
}
```

This is trying to set `cl::opt` variables in the LLVM backend to their right
value as the passed via CodeGenOptions by invoking the CommandLine parser. As
this is just in some generic Clang CodeGen code (where we allow having multiple
threads) this is code is clearly wrong. If we're unlucky it either overwrites
the value of the global variables or it causes the CommandLine parser to crash.

So the next question is why is this only crashing in LLDB? The main reason seems
to be that easiest way to crash this code is to concurrently enter the initial
CommandLineParser construction where it tries to collect all the registered
`cl::opt` options and checks for sanity:

```
      // If it's a DefaultOption, check to make sure it isn't already there.
      if (O->isDefaultOption() &&
          SC->OptionsMap.find(O->ArgStr) != SC->OptionsMap.end())
        return;

      // Add argument to the argument map!
      if (!SC->OptionsMap.insert(std::make_pair(O->ArgStr, O)).second) {
        errs() << ProgramName << ": CommandLine Error: Option '" << O->ArgStr
               << "' registered more than once!\n";
        HadErrors = true;
      }
```

The `OptionsMap` here is global variable and if we end up in this code with two
threads at once then two threads at the same time can register an option (such
as 'h') when they pass the first `if` and then we fail with the sanity check in
the second `if`.

After this sanity check and initial setup code the only remaining work is just
parsing the provided CommandLine which isn't thread-safe but at least doesn't
crash in all my attempts at breaking it (as it's usually just reading from the
already generated parser state but not further modifying it). The exception to
this is probably that once people actually specify the options in the code
snippet above we might run into some new interesting ways to crash everything.

To go back to why it's only affecting LLDB: Nearly all LLVM tools I could find
(even if they are using threads) seem to call the CommandLine parser at the
start so they all execute the initial parser setup at a point where there is
only one thread. So once the code above is executed they are mostly safe from
the sanity check crashes. We even have some shady code for the gtest `main` in
`TestMain.cpp` which is why this also doesn't affect unit tests.

The only exception to this rule is ... *drum roll* ... LLDB! it's not using that
CommandLine library for parsing options so it also never ends up calling it in
`main`. So when we end up in the `FrontendAction` code from the backtrace we are
already very deep in some LLDB logic and usually already have several threads.
In a situation where Swift decides to compile a large amount of Clang modules in
parallel we then end up entering this code via several threads. If several
threads reach this code at the same time we end up in the situation where the
sanity-checking code of CommandLine crashes. I have a very reliable way of
demonstrating the whole thing in D99650 (just run the unit test several times,
it usually crashes after 3-4 attempts).

We have several ways to fix this:

1. Make the whole CommandLine mechanism in LLVM thread-safe.

2. Get rid of `setCommandLineOpts` in `BackendUtil.cpp` and other callers of the
command line parsing in generic Clang code.

3. Initialise the CommandLine library in a safe point in LLDB.

Option 1 is just a lot of work and I'm not even sure where to start. The whole
mechanism is based on global variables and global state and this seems like a
humongous task.

Option 2 is probably the best thing we can do in the near future. There are only
two callers of the command line parser in generic Clang code. The one in
`BackendUtils.cpp` looks like it can be replaced with some reasonable
refactoring (as it only deals with two specific options). There is another one
in `ExecuteCompilerInvocation` which deals with forwarding the generic `-mllvm`
options to the backend which seems like it will just end up requiring us to do
Option 1.

Option 3 is what this patch is doing. We just parse some dummy command line
invocation in a point of the LLDB execution where we only have one thread that
is dealing with LLVM/Clang stuff. This way we are at least prevent the frequent
crashes for users as parsing the dummy command line invocation will set up the
initial parser state safely.

Fixes rdar://70989856

Reviewed By: mib, JDevlieghere

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


  Commit: e372e0f906194cb051ad71305e00f4634860bdf3
      https://github.com/llvm/llvm-project/commit/e372e0f906194cb051ad71305e00f4634860bdf3
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    A flang/include/flang/Common/long-double.h
    M flang/include/flang/Common/uint128.h
    M flang/include/flang/Decimal/decimal.h
    M flang/lib/Decimal/binary-to-decimal.cpp
    M flang/lib/Decimal/decimal-to-binary.cpp
    M flang/runtime/CMakeLists.txt
    M flang/runtime/character.cpp
    M flang/runtime/character.h
    A flang/runtime/complex-reduction.c
    A flang/runtime/complex-reduction.h
    A flang/runtime/cpp-type.h
    M flang/runtime/descriptor-io.h
    M flang/runtime/descriptor.cpp
    M flang/runtime/descriptor.h
    M flang/runtime/entry-names.h
    M flang/runtime/io-api.cpp
    A flang/runtime/reduction.cpp
    A flang/runtime/reduction.h
    M flang/runtime/tools.cpp
    M flang/runtime/tools.h
    M flang/runtime/transformational.cpp
    M flang/runtime/transformational.h
    M flang/runtime/type-code.cpp
    M flang/unittests/Evaluate/reshape.cpp
    M flang/unittests/RuntimeGTest/CMakeLists.txt
    A flang/unittests/RuntimeGTest/Reduction.cpp

  Log Message:
  -----------
  [flang] Implement reductions in the runtime

Add runtime APIs, implementations, and tests for ALL, ANY, COUNT,
MAXLOC, MAXVAL, MINLOC, MINVAL, PRODUCT, and SUM reduction
transformantional intrinsic functions for all relevant argument
and result types and kinds, both without DIM= arguments
(total reductions) and with (partial reductions).

Complex-valued reductions have their APIs in C so that
C's _Complex types can be used for their results.

Some infrastructure work was also necessary or noticed:
* Usage of "long double" in the compiler was cleaned up a
  bit, and host dependences on x86 / MSVC have been isolated
  in a new Common/long-double header.
* Character comparison has been exposed via an extern template
  so that reductions could use it.
* Mappings from Fortran type category/kind to host C++ types
  and vice versa have been isolated into runtime/cpp-type.h and
  then used throughout the runtime as appropriate.
* The portable 128-bit integer package in Common/uint128.h
  was generalized to support signed comparisons.
* Bugs in descriptor indexing code were fixed.

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


  Commit: ffa15e9463d07e9ba75e2c072afbc0c33f4f68a0
      https://github.com/llvm/llvm-project/commit/ffa15e9463d07e9ba75e2c072afbc0c33f4f68a0
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/include/llvm/IR/Instruction.h
    M llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
    M llvm/lib/IR/Instruction.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  Log Message:
  -----------
  Extract isVolatile helper on Instruction [NFCI]

We have this logic duplicated in several cases, none of which were exhaustive.  Consolidate it in one place.

I don't believe this actually impacts behavior of the callers.  I think they all filter their inputs such that their partial implementations were correct.  If not, this might be fixing a cornercase bug.


  Commit: 46e992f90500914443e2eea25b258d0b0276811f
      https://github.com/llvm/llvm-project/commit/46e992f90500914443e2eea25b258d0b0276811f
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M libcxx/test/std/utilities/time/time.clock/time.clock.file/now.pass.cpp

  Log Message:
  -----------
  [libcxx] [test] Remove XFAIL LIBCXX-WINDOWS-FIXME from time.clock.file/now.pass.cpp

This doesn't fail when _LIBCPP_HAS_NO_INT128 is defined consistently
in both CMAKE_CXX_FLAGS and LIBCXX_TEST_COMPILER_FLAGS; the XFAIL was
added based on early CI testruns where that flag was missing in
LIBCXX_TEST_COMPILER_FLAGS.

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


  Commit: 4391d764e153d17315a2822137e1ceca13b4c98d
      https://github.com/llvm/llvm-project/commit/4391d764e153d17315a2822137e1ceca13b4c98d
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendWinCOFF.h
    M llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h
    M llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp

  Log Message:
  -----------
  [ARM] Remove an unused parameter in ARMWinCOFFObjectWriter. NFC.

This writer only ever operates on 32 bit arm code.

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


  Commit: db357891f0cf76253be3cd75f682b68544a411da
      https://github.com/llvm/llvm-project/commit/db357891f0cf76253be3cd75f682b68544a411da
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Analysis/Loads.cpp
    M llvm/test/Transforms/LICM/hoist-alloc.ll

  Log Message:
  -----------
  Infer dereferenceability from malloc and friends

Hookup TLI when inferring object size from allocation calls. This allows the analysis to prove dereferenceability for known allocation functions (such as malloc/new/etc) in addition to those marked explicitly with the allocsize attribute.

This is a follow up to 0129cd5 now that the bug fixed by e2c6621e6 is resolved.

As noted in the test, this relies on being able to prove that there is no free between allocation and context (e.g. hoist location). At the moment, this is handled conservatively. I'm working strengthening out ability to reason about no-free regions separately.

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


  Commit: 2d733923b8d32230d5af777dd1d84ae2c7fc968d
      https://github.com/llvm/llvm-project/commit/2d733923b8d32230d5af777dd1d84ae2c7fc968d
  Author: Greg Clayton <gclayton at fb.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M lldb/include/lldb/Symbol/SymbolContext.h
    M lldb/source/Symbol/SymbolContext.cpp
    M lldb/source/Target/Trace.cpp
    A lldb/test/Shell/Commands/command-image-lookup.yaml

  Log Message:
  -----------
  Fix "image lookup --address" Summary results for inline functions.

Inline callstacks were being incorrectly displayed in the results of "image lookup --address". The deepest frame wasn't displaying the line table line entry, it was always showing the inline information's call file and line on the previous frame. This is now fixed and has tests to make sure it doesn't regress.

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


  Commit: 6ef4505298be08b8cb4243c7d28751e0e315370a
      https://github.com/llvm/llvm-project/commit/6ef4505298be08b8cb4243c7d28751e0e315370a
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
    M llvm/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll
    M llvm/test/Other/cgscc-devirt-iteration.ll
    M llvm/test/Other/cgscc-iterate-function-mutation.ll
    M llvm/test/Other/cgscc-observe-devirt.ll
    M llvm/test/Transforms/FunctionAttrs/atomic.ll
    M llvm/test/Transforms/FunctionAttrs/incompatible_fn_attrs.ll
    M llvm/test/Transforms/FunctionAttrs/nofree-attributor.ll
    M llvm/test/Transforms/FunctionAttrs/norecurse.ll
    M llvm/test/Transforms/FunctionAttrs/nosync.ll
    M llvm/test/Transforms/FunctionAttrs/nounwind.ll
    M llvm/test/Transforms/FunctionAttrs/optnone.ll
    M llvm/test/Transforms/Inline/cgscc-update.ll

  Log Message:
  -----------
  [funcattrs] Infer nosync from readnone and non-convergent

This implements the most basic possible nosync inference. The choice of inference rule is taken from the comments in attributor and the discussion on the review of the change which introduced the nosync attribute (0626367202c).

This is deliberately minimal. As noted in code comments, I do plan to add a more robust inference which actually scans the function IR directly, but a) I need to do some refactoring of the attributor code to use common interfaces, and b) I wanted to get something in. I also wanted to minimize the "interesting" analysis discussion since that's time intensive.

Context: This combines with existing nofree attribute inference to help prove dereferenceability in the ongoing deref-at-point semantics work.

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


  Commit: 01aa9e1f6e7df5a936612084c73be704e300c881
      https://github.com/llvm/llvm-project/commit/01aa9e1f6e7df5a936612084c73be704e300c881
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp
    M libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for.pass.cpp

  Log Message:
  -----------
  [libcxx] [test] Make the condvar wait_for tests less brittle

These seem to fail occasionally (they are marked as possibly requiring
a retry).

When doing a condvar wait_for(), it can wake up before the timeout
as a spurious wakeup. In these cases, the wait_for() method returns that
the timeout wasn't hit, and the test reruns another wait_for().

On Windows, it seems like the wait_for() operation often can end up
returning slightly before the intended deadline - when intending to
wait for 250 milliseconds, it can return after e.g. 235 milliseconds.
In these cases, the wait_for() doesn't indicate a timeout.

Previously, the test then reran a new wait_for() for a full 250
milliseconds each time. So for N consecutive wakeups slightly too early,
we'd wait for (N+1)*250 milliseconds. Now it only reruns wait_for() for
the remaining intended wait duration.

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


  Commit: 8e596f7e27b47a4bf7c0890214a89b5e60a01b77
      https://github.com/llvm/llvm-project/commit/8e596f7e27b47a4bf7c0890214a89b5e60a01b77
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  Log Message:
  -----------
  [Attributor] Cleanup intrinsic handling in nosync inference [mostly NFC]

Mostly stylistic adjustment, but the old code didn't handle the memcpy.inline intrinsic.  By using the matcher class, we now do.


  Commit: 1e69a5af92242cfffc88df91fa990a8e17441b48
      https://github.com/llvm/llvm-project/commit/1e69a5af92242cfffc88df91fa990a8e17441b48
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  Log Message:
  -----------
  [Attributor] Cleanup detection of non-relaxed atomics in nosync inference

The code was checking for cases which are disallowed by the verifier.  Delete dead code and adjust style.


  Commit: a8ac8816c94f4cb3235fda50603fea66721d9adb
      https://github.com/llvm/llvm-project/commit/a8ac8816c94f4cb3235fda50603fea66721d9adb
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/AMDGPU/inline-attr.ll

  Log Message:
  -----------
  Update a test missed in 6ef4505


  Commit: d4e9fe813f4fabc260f8e859cf2846cb34e0ad3b
      https://github.com/llvm/llvm-project/commit/d4e9fe813f4fabc260f8e859cf2846cb34e0ad3b
  Author: Anastasia Stulova <anastasia.stulova at arm.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M clang/docs/OpenCLSupport.rst
    M clang/docs/UsersManual.rst

  Log Message:
  -----------
  [OpenCL][Docs] Update links to the C++ for OpenCL documentation


  Commit: dbbc95e3e5aa09928ed4531f7ca01dd979cabab7
      https://github.com/llvm/llvm-project/commit/dbbc95e3e5aa09928ed4531f7ca01dd979cabab7
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/test/CodeGen/RISCV/calling-conv-half.ll
    M llvm/test/CodeGen/RISCV/copysign-casts.ll
    M llvm/test/CodeGen/RISCV/fp16-promote.ll
    M llvm/test/CodeGen/RISCV/half-bitmanip-dagcombines.ll
    M llvm/test/CodeGen/RISCV/rv32i-rv64i-half.ll

  Log Message:
  -----------
  [RISCV] Use softPromoteHalf legalization for fp16 without Zfh rather than PromoteFloat.

The default legalization strategy is PromoteFloat which keeps
half in single precision format through multiple floating point
operations. Conversion to/from float is done at loads, stores,
bitcasts, and other places that care about the exact size being 16
bits.

This patches switches to the alternative method softPromoteHalf.
This aims to keep the type in 16-bit format between every operation.
So we promote to float and immediately round for any arithmetic
operation. This should be closer to the IR semantics since we
are rounding after each operation and not accumulating extra
precision across multiple operations. X86 is the only other
target that enables this today. See https://reviews.llvm.org/D73749

I had to update getRegisterTypeForCallingConv to force f16 to
use f32 when the F extension is enabled. This way we can still
pass it in the lower bits of an FPR for ilp32f and lp64f ABIs.
The softPromoteHalf would otherwise always give i16 as the
argument type.

Reviewed By: asb, frasercrmck

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


  Commit: 69ca50bd7dfdb54aab8b0b262df635e25cf6baf0
      https://github.com/llvm/llvm-project/commit/69ca50bd7dfdb54aab8b0b262df635e25cf6baf0
  Author: Joseph Huber <jhuber6 at vols.utk.edu>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M clang/lib/CodeGen/CGOpenMPRuntime.cpp
    M clang/lib/CodeGen/CGOpenMPRuntime.h
    M clang/test/OpenMP/target_map_names.cpp

  Log Message:
  -----------
  [OpenMP] Pass mapping names to add components in a user defined mapper

Summary:
Currently the mapping names are not passed to the mapper components that set up
the array region. This means array mappings will not have their names availible
in the runtime. This patch fixes this by passing the argument name to the region
correctly. This means that the mapped variable's name will be the declared
mapper that placed it on the device.

Reviewed By: jdoerfert

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


  Commit: 1b88df1c8e4aa03cf3102ab0b4f8688fe79864ed
      https://github.com/llvm/llvm-project/commit/1b88df1c8e4aa03cf3102ab0b4f8688fe79864ed
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M flang/runtime/complex-reduction.c

  Log Message:
  -----------
  [flang] Fix arm clang build

The new source file flang/runtime/complex-reduction.c contains
a portability work-around that implicitly assumed that a recent
version of clang would be used; this patch changes the code and
should be portable to older clangs and any other C compilers that
don't support the standard CMPLXF/CMPLX/CMPLXL macros.


  Commit: 0f7e3a55463d2ed9abc60c6fd0126bcb19fc6d69
      https://github.com/llvm/llvm-project/commit/0f7e3a55463d2ed9abc60c6fd0126bcb19fc6d69
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp

  Log Message:
  -----------
  [NFC][scudo] Simplify UseQuarantine initialization


  Commit: da98177cda168468160912272213c695c03682d9
      https://github.com/llvm/llvm-project/commit/da98177cda168468160912272213c695c03682d9
  Author: David Green <david.green at arm.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
    M llvm/test/Transforms/LoopUnroll/ARM/loop-unrolling.ll

  Log Message:
  -----------
  [ARM] Allow v6m runtime loop unrolling

This removes the restriction that only Thumb2 targets enable runtime
loop unrolling, allowing it for Thumb1 only cores as well. The existing
T2 heuristics are used (for the time being) to control when and how
unrolling is performed.

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


  Commit: ce9e1a3632779294077766d6646ef3d79b35d414
      https://github.com/llvm/llvm-project/commit/ce9e1a3632779294077766d6646ef3d79b35d414
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/local_cache.h
    M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp

  Log Message:
  -----------
  [Scudo] Fix SizeClassAllocatorLocalCache::drain

It leaved few blocks in PerClassArray[0].

Reviewed By: cryptoad

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


  Commit: 622500479b521554d2c869633eb6cf51c8d47ba1
      https://github.com/llvm/llvm-project/commit/622500479b521554d2c869633eb6cf51c8d47ba1
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/tests/tsd_test.cpp
    M compiler-rt/lib/scudo/standalone/tsd_exclusive.h

  Log Message:
  -----------
  [scudo][NFC] Make tests runs with --gtest_repeat=2

Reviewed By: cryptoad

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


  Commit: 17095dc861116b0fe4303b62d1fed5eb14c2ecd0
      https://github.com/llvm/llvm-project/commit/17095dc861116b0fe4303b62d1fed5eb14c2ecd0
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M libcxx/include/typeinfo

  Log Message:
  -----------
  [libc++][NFC] Increase readability of typeinfo comparison of ARM64

We wasted a good deal of time trying to figure out whether our implementation
was correct. In the end, it was, but it wasn't so easy to determine. This
patch dumbs down the implementation and improves the documentation to make
it easier to validate.

See https://lists.llvm.org/pipermail/libcxx-dev/2020-December/001060.html.

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


  Commit: 76d9bc72784d88f4dd57b9939e52c73739438af5
      https://github.com/llvm/llvm-project/commit/76d9bc72784d88f4dd57b9939e52c73739438af5
  Author: Jian Cai <jiancai at google.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M clang/lib/Driver/ToolChains/Clang.cpp
    A clang/test/Driver/as-version.s

  Log Message:
  -----------
  Reland "Add support to -Wa,--version in clang""

This relands commit 3cc3c0f8352ec33ca2f2636f94cb1d85fc57ac16 with fixed
test cases, which was reverted by commit
bf2479c347c8ca88fefdb144d8bae0a7a4231e2a.


  Commit: 17800f900dca8243773dec5f90578cce03069b8f
      https://github.com/llvm/llvm-project/commit/17800f900dca8243773dec5f90578cce03069b8f
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/FunctionAttrs/nosync.ll

  Log Message:
  -----------
  [tests] Add tests for forthcoming funcattrs nosync inference improvement

These are basically all the attributor tests for the same attribute with some minor cleanup for readability and autogened.


  Commit: 766d27dc857200cd1fbb3a30e62b84ce271fb84f
      https://github.com/llvm/llvm-project/commit/766d27dc857200cd1fbb3a30e62b84ce271fb84f
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/test/CodeGen/RISCV/rvv/vrsub-rv32.ll

  Log Message:
  -----------
  [RISCV] Add isel patterns to handle vrsub intrinsic with 2 vector operands.

This occurs when we type legalize an i64 scalar input on RV32. We
need to manually splat, which requires a vector input. Rather
than special case this in lowering just pattern match it.


  Commit: 6fe7de90b9e4e466a5c2baadafd5f72d3203651d
      https://github.com/llvm/llvm-project/commit/6fe7de90b9e4e466a5c2baadafd5f72d3203651d
  Author: Fangrui Song <i at maskray.me>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M clang/lib/Driver/ToolChains/Gnu.cpp
    M clang/test/Driver/nostdincxx.cpp

  Log Message:
  -----------
  [Driver] -nostdinc -nostdinc++: don't warn for -Wunused-command-line-argument


  Commit: b23a314146956dd29b719ab537608ced736fc036
      https://github.com/llvm/llvm-project/commit/b23a314146956dd29b719ab537608ced736fc036
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
    M llvm/test/Transforms/FunctionAttrs/nofree.ll

  Log Message:
  -----------
  [funcattrs] Respect nofree attribute on callsites (not just callee)


  Commit: 43ceb74eb1a5801662419fb66a6bf0d5414f1ec5
      https://github.com/llvm/llvm-project/commit/43ceb74eb1a5801662419fb66a6bf0d5414f1ec5
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/cmake/modules/AddLLVM.cmake
    M llvm/tools/llvm-shlib/CMakeLists.txt

  Log Message:
  -----------
  llvm-shlib: Create object libraries for each component and link against them

This makes it possible to build libLLVM.so without first creating a
static library for each component.  In the case where only libLLVM.so is
built (i.e. ninja LLVM) this eliminates 150 linker jobs.

Reviewed By: stellaraccident

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


  Commit: 5f6c5c63c7c21cc9cf1c2b21759e40aa4854d496
      https://github.com/llvm/llvm-project/commit/5f6c5c63c7c21cc9cf1c2b21759e40aa4854d496
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M flang/runtime/CMakeLists.txt
    A flang/runtime/numeric.cpp
    A flang/runtime/numeric.h
    M flang/unittests/RuntimeGTest/CMakeLists.txt
    A flang/unittests/RuntimeGTest/Numeric.cpp

  Log Message:
  -----------
  [flang] Implement numeric intrinsic functions in runtime

Adds APIs, implementations, and unit tests for AINT, ANINT,
CEILING, EXPONENT, FLOOR, FRACTION, MOD, MODULO, NEAREST, NINT,
RRSPACING, SCALE, SET_EXPONENT, & SPACING.

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


  Commit: cba422264c7fdb7ba717144c94d48d46d72d8479
      https://github.com/llvm/llvm-project/commit/cba422264c7fdb7ba717144c94d48d46d72d8479
  Author: cchen <chichunchen844 at gmail.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M clang/lib/Sema/SemaOpenMP.cpp
    M clang/test/OpenMP/parallel_ast_print.cpp
    M clang/test/OpenMP/parallel_proc_bind_messages.cpp
    A clang/test/OpenMP/parallel_proc_bind_primary_codegen.cpp
    M llvm/include/llvm/Frontend/OpenMP/OMP.td
    M llvm/include/llvm/Frontend/OpenMP/OMPKinds.def

  Log Message:
  -----------
  [OpenMP51] Accept `primary` as proc bind affinity policy in Clang

Reviewed By: ABataev

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


  Commit: 287c93c1321b4342608f28e1a2816300780502e1
      https://github.com/llvm/llvm-project/commit/287c93c1321b4342608f28e1a2816300780502e1
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M flang/unittests/RuntimeGTest/Numeric.cpp

  Log Message:
  -----------
  [flang] Fix unit test failure on POWER

A new unit test for the Fortran runtime needs to allow for some
architectural variation on Infinity and NaN edge cases of NINT().


  Commit: 51a07182b3ea48b2a26970b5e145e193e27a8521
      https://github.com/llvm/llvm-project/commit/51a07182b3ea48b2a26970b5e145e193e27a8521
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M mlir/lib/Transforms/Utils/LoopUtils.cpp

  Log Message:
  -----------
  Setup OpBuilder to support detached block in loopUnrollByFactor (NFC)

Setting the builder from a block is looking up for a parent operation
to get a context, instead by setting up the builder with an explicit
context we can support invoking this helper in absence of a parent
operation.


  Commit: d222a07d3023599b8090ed20ca9137b128f5af6c
      https://github.com/llvm/llvm-project/commit/d222a07d3023599b8090ed20ca9137b128f5af6c
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M clang/test/OpenMP/for_firstprivate_codegen.cpp
    M clang/test/OpenMP/for_private_codegen.cpp
    M clang/test/OpenMP/master_taskloop_firstprivate_codegen.cpp
    M clang/test/OpenMP/master_taskloop_lastprivate_codegen.cpp
    M clang/test/OpenMP/master_taskloop_private_codegen.cpp
    M clang/test/OpenMP/master_taskloop_simd_firstprivate_codegen.cpp
    M clang/test/OpenMP/master_taskloop_simd_lastprivate_codegen.cpp
    M clang/test/OpenMP/master_taskloop_simd_private_codegen.cpp
    M clang/test/OpenMP/nvptx_target_firstprivate_codegen.cpp
    M clang/test/OpenMP/parallel_firstprivate_codegen.cpp
    M clang/test/OpenMP/parallel_master_taskloop_firstprivate_codegen.cpp
    M clang/test/OpenMP/parallel_master_taskloop_lastprivate_codegen.cpp
    M clang/test/OpenMP/parallel_master_taskloop_private_codegen.cpp
    M clang/test/OpenMP/parallel_master_taskloop_simd_firstprivate_codegen.cpp
    M clang/test/OpenMP/parallel_master_taskloop_simd_lastprivate_codegen.cpp
    M clang/test/OpenMP/parallel_master_taskloop_simd_private_codegen.cpp
    M clang/test/OpenMP/parallel_private_codegen.cpp
    M clang/test/OpenMP/sections_firstprivate_codegen.cpp
    M clang/test/OpenMP/sections_lastprivate_codegen.cpp
    M clang/test/OpenMP/sections_private_codegen.cpp
    M clang/test/OpenMP/single_firstprivate_codegen.cpp
    M clang/test/OpenMP/single_private_codegen.cpp
    M clang/test/OpenMP/task_firstprivate_codegen.cpp
    M clang/test/OpenMP/task_private_codegen.cpp
    M clang/test/OpenMP/taskloop_firstprivate_codegen.cpp
    M clang/test/OpenMP/taskloop_lastprivate_codegen.cpp
    M clang/test/OpenMP/taskloop_private_codegen.cpp
    M clang/test/OpenMP/taskloop_simd_firstprivate_codegen.cpp
    M clang/test/OpenMP/taskloop_simd_lastprivate_codegen.cpp
    M clang/test/OpenMP/taskloop_simd_private_codegen.cpp

  Log Message:
  -----------
  [OpenMP, test] Fix uses of undef S*VAR FileCheck var

Fix the many cases of use of undefined SIVAR/SVAR/SFVAR in OpenMP
*private_codegen tests, due to a missing BLOCK directive to capture the
IR variable when it is declared. It also fixes a few typo in its use.

Reviewed By: MaskRay

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


  Commit: 58e458935ba6debed11edd9baa98862db0a12651
      https://github.com/llvm/llvm-project/commit/58e458935ba6debed11edd9baa98862db0a12651
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M clang/test/OpenMP/target_data_use_device_ptr_if_codegen.cpp

  Log Message:
  -----------
  [OpenMP, test] Fix use of undef DECL FileCheck var

OpenMP test target_data_use_device_ptr_if_codegen contains a CHECK-NOT
directive using an undefined DECL FileCheck variable. It seems copied
from target_data_use_device_ptr_codegen where there's a CHECK for a load
that defined the variable. Since there is no corresponding load in this
testcase, the simplest is to simply forbid any store and get rid of the
variable altogether.

Reviewed By: ABataev

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


  Commit: 2c3db73341aea084e44600400e9fe39690416923
      https://github.com/llvm/llvm-project/commit/2c3db73341aea084e44600400e9fe39690416923
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M clang/test/OpenMP/sections_reduction_codegen.cpp

  Log Message:
  -----------
  [OpenMP, test] Fix use of undef VAR_PRIV FileCheck var

Remove the CHECK-NOT directive referring to as-of-yet undefined VAR_PRIV
variable since the pattern of the following CHECK-NOT in the same
CHECK-NOT block covers a superset of the case caught by the first
CHECK-NOT.

Reviewed By: ABataev

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


  Commit: 3a016e31ecef7eeb876b540c928a25a7c5d2e07a
      https://github.com/llvm/llvm-project/commit/3a016e31ecef7eeb876b540c928a25a7c5d2e07a
  Author: Daniel Sanders <daniel_l_sanders at apple.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/unittests/CodeGen/GlobalISel/CSETest.cpp
    M llvm/unittests/CodeGen/GlobalISel/ConstantFoldingTest.cpp
    M llvm/unittests/CodeGen/GlobalISel/GISelMITest.h
    M llvm/unittests/CodeGen/GlobalISel/KnownBitsTest.cpp
    M llvm/unittests/CodeGen/GlobalISel/KnownBitsVectorTest.cpp
    M llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
    M llvm/unittests/CodeGen/GlobalISel/LegalizerTest.cpp
    M llvm/unittests/CodeGen/GlobalISel/MachineIRBuilderTest.cpp
    M llvm/unittests/CodeGen/GlobalISel/PatternMatchTest.cpp

  Log Message:
  -----------
  [globalisel][unittests] Rename setUp() to avoid potential mix up with SetUp() from gtest

Also, make it structurally required so it can't be forgotten and re-introduce
the bug that led to the rotten green tests.

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


  Commit: 42a84d22c4e01f0305da0c850a8c695895fdba86
      https://github.com/llvm/llvm-project/commit/42a84d22c4e01f0305da0c850a8c695895fdba86
  Author: Daniel Sanders <daniel_l_sanders at apple.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/unittests/CodeGen/GlobalISel/CSETest.cpp
    M llvm/unittests/CodeGen/GlobalISel/ConstantFoldingTest.cpp
    M llvm/unittests/CodeGen/GlobalISel/GISelMITest.h
    M llvm/unittests/CodeGen/GlobalISel/KnownBitsTest.cpp
    M llvm/unittests/CodeGen/GlobalISel/KnownBitsVectorTest.cpp
    M llvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
    M llvm/unittests/CodeGen/GlobalISel/LegalizerTest.cpp
    M llvm/unittests/CodeGen/GlobalISel/MachineIRBuilderTest.cpp
    M llvm/unittests/CodeGen/GlobalISel/PatternMatchTest.cpp

  Log Message:
  -----------
  Revert "[globalisel][unittests] Rename setUp() to avoid potential mix up with SetUp() from gtest"

Forgot to apply commit message changes from phabricator

This reverts commit 3a016e31ecef7eeb876b540c928a25a7c5d2e07a.


  Commit: 5379f1c95ca22e81697324908101fc74b7f283ea
      https://github.com/llvm/llvm-project/commit/5379f1c95ca22e81697324908101fc74b7f283ea
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/Mips/sr1.ll

  Log Message:
  -----------
  [MIPS, test] Fix use of undef FileCheck var

LLVM test CodeGen/Mips/sr1.ll tries to check for the absence of a
sequence of instructions with several CHECK-NOT with one of those
directives using a variable defined in another. However CHECK-NOT are
checked independently so that is using a variable defined in a pattern
that should not occur in the input.

This commit removes the definition and uses of variable to check each
line independently, making the check stronger than the current one.

Reviewed By: dsanders

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


  Commit: 273416231b1477503cd5281ef2587c40efae2747
      https://github.com/llvm/llvm-project/commit/273416231b1477503cd5281ef2587c40efae2747
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M flang/unittests/RuntimeGTest/Numeric.cpp

  Log Message:
  -----------
  [flang] Disable some new unit tests (non-portable results)

Due to architectural variation on the C++ functions std::ceil, std::floor,
and std::trunc, diable some new Fortran unit tests for now that depending
on specifical results for IEEE floating-point edge cases of infinities
and NaNs.


  Commit: 0187c3a45c4cfa2dea593637d5e660258eacd6e9
      https://github.com/llvm/llvm-project/commit/0187c3a45c4cfa2dea593637d5e660258eacd6e9
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rvv/vamoadd-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vamoadd-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/vamoand-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vamoand-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/vamomax-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vamomax-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/vamomaxu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vamomaxu-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/vamomin-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vamomin-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/vamominu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vamominu-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/vamoor-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vamoor-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/vamoswap-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vamoxor-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vamoxor-rv64.ll

  Log Message:
  -----------
  [RISCV] Add nxvXi64 test cases to the RV32 Zvamo intrinsic test files. NFC


  Commit: 813e7249b8123e979ca5d3144a59b141d5729e83
      https://github.com/llvm/llvm-project/commit/813e7249b8123e979ca5d3144a59b141d5729e83
  Author: Daniel Rodríguez Troitiño <danielrodriguez at fb.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M compiler-rt/cmake/builtin-config-ix.cmake
    M compiler-rt/lib/builtins/CMakeLists.txt

  Log Message:
  -----------
  [builtins] Build for arm64_32 for watchOS (Darwin)

Trying to build the builtins code fails because `arm64_32_SOURCES` is
missing. Setting it to the same list used for `aarch64_SOURCES` solves
that problem and allow the builtins to compile for that architecture.

Additionally, arm64_32 is added as a possible architecture for watchos
platforms.

Reviewed By: compnerd

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


  Commit: f5c9db97a8a268f0faea75911a5cdcde88c8dff8
      https://github.com/llvm/llvm-project/commit/f5c9db97a8a268f0faea75911a5cdcde88c8dff8
  Author: Daniel Rodríguez Troitiño <danielrodriguez at fb.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/include/llvm/TextAPI/MachO/Architecture.def
    A llvm/test/Object/Inputs/tapi-v4-watchos.tbd
    M llvm/test/Object/nm-tapi.test

  Log Message:
  -----------
  [TextAPI] Add support for arm64_32

Add a new architecture definition for arm64_32. The change should allow
the new architecture arm64_32 to be recognized in several pieces of
code, TextAPI parsing one of them. llvm-lipo will also recognize the
architecture and will allow lipoing files with this architecture without
failing.

Includes a small test that the architecture is recognized by llvm-nm.

Reviewed By: cishida

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


  Commit: 7af9b03c9d6b1c53756a8392a98edbe03a6bd327
      https://github.com/llvm/llvm-project/commit/7af9b03c9d6b1c53756a8392a98edbe03a6bd327
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp

  Log Message:
  -----------
  [NFC][scudo] Use TYPED_TEST to split large test


  Commit: f6ad0453665f63cf036fcb01f26fb4f023e4cfbb
      https://github.com/llvm/llvm-project/commit/f6ad0453665f63cf036fcb01f26fb4f023e4cfbb
  Author: Alexander Shaposhnikov <alexshap at fb.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M lld/MachO/Driver.cpp
    M lld/MachO/InputFiles.cpp
    M lld/MachO/SymbolTable.cpp
    M lld/MachO/SymbolTable.h
    M lld/MachO/Symbols.h
    M lld/MachO/SyntheticSections.cpp
    M lld/MachO/UnwindInfoSection.cpp

  Log Message:
  -----------
  [lld][MachO] Make emitEndFunStab independent from .subsections_via_symbols

This diff addresses FIXME in SyntheticSections.cpp and removes
the dependency of emitEndFunStab on .subsections_via_symbols.

Test plan: make check-lld-macho

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


  Commit: 91790c67850d588edb3a0e195a388c0e450f1723
      https://github.com/llvm/llvm-project/commit/91790c67850d588edb3a0e195a388c0e450f1723
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/IndVarSimplify.cpp

  Log Message:
  -----------
  [indvars[ Fix pr49802 by checking for SCEVCouldNotCompute

The code is assuming that having an exact exit count for the loop implies that exit counts for every exit are known.  This used to be true, but when we added handling for dead exits we broke this invariant.  The new invariant is that an exact loop count implies that any exits non trivially dead have exit counts.

We could have fixed this by either a) explicitly checking for a dead exit, or b) just testing for SCEVCouldNotCompute.  I chose the second as it was simpler.

(Debugging this took longer than it should have since I'd mistyped the original assert and it wasn't checking what it was meant to...)

p.s. Sorry for the lack of test case.  Getting things into a state to actually hit this is difficult and fragile.  The original repro involves loop-deletion leaving SCEV in a slightly inprecise state which lets us bypass other transforms in IndVarSimplify on the way to this one.  All of my attempts to separate it into a standalone test failed.


  Commit: 4c70f56ec67b66d39481e890ba7ff225d71189ec
      https://github.com/llvm/llvm-project/commit/4c70f56ec67b66d39481e890ba7ff225d71189ec
  Author: Tony <Tony.Tye at amd.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/docs/AMDGPUUsage.rst

  Log Message:
  -----------
  [NFC][AMDGPU] Add product names for gfx908 and gfx10 processors

Reviewed By: msearles

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


  Commit: a0c5b7e3b523764d089e2d843648acffcd496b79
      https://github.com/llvm/llvm-project/commit/a0c5b7e3b523764d089e2d843648acffcd496b79
  Author: Aart Bik <ajcbik at google.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M mlir/lib/Dialect/Linalg/Transforms/SparseLowering.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Sparsification.cpp
    M mlir/lib/ExecutionEngine/SparseUtils.cpp
    M mlir/test/CMakeLists.txt
    M mlir/test/Dialect/Linalg/sparse_storage.mlir
    M mlir/test/Dialect/Linalg/sparse_vector.mlir
    M mlir/test/Integration/Sparse/CPU/sparse_sampled_matmul.mlir
    M mlir/test/Integration/Sparse/CPU/sparse_sum.mlir
    A mlir/test/Integration/Sparse/sparse_matvec.mlir
    A mlir/test/Integration/data/wide.mtx

  Log Message:
  -----------
  [mlir][sparse] support for very narrow index and pointer types

Rationale:
Small indices and values, when allowed by the required range of the
input tensors, can reduce the memory footprint of sparse tensors
even more. Note, however, that we must be careful zero extending
the values (since sparse tensors never use negatives for indexing),
but LLVM treats the index type as signed in most memory operations
(like the scatter and gather). This CL dots all the i's in this regard.

Reviewed By: bixia

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


  Commit: f026e1f5205562aad32e3d78b75140798b0dd60a
      https://github.com/llvm/llvm-project/commit/f026e1f5205562aad32e3d78b75140798b0dd60a
  Author: Chen Zheng <czhengsz at cn.ibm.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/test/Driver/debug-options.c

  Log Message:
  -----------
  [debug-info][XCOFF] set `-gno-column-info` by default for DBX

For DBX, it does not handle column info well. Set -gno-column-info
by default for DBX.

Reviewed By: dblaikie

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


  Commit: 88a1529e1560f43cfbe680a703dab25a5521f7ce
      https://github.com/llvm/llvm-project/commit/88a1529e1560f43cfbe680a703dab25a5521f7ce
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp

  Log Message:
  -----------
  [NFC][scudo] Move globals into related test


  Commit: bc6001ce1e91604b84cd4b55e134f4be96399e21
      https://github.com/llvm/llvm-project/commit/bc6001ce1e91604b84cd4b55e134f4be96399e21
  Author: Yang Fan <nullptr.cpp at gmail.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  [X86] Fix -Wunused-function warning (NFC)

GCC warning:
```
/llvm-project/llvm/lib/Target/X86/X86ISelLowering.cpp:9212:13: warning: ‘bool isHorizOp(unsigned int)’ defined but not used [-Wunused-function]
 9212 | static bool isHorizOp(unsigned Opcode) {
      |             ^~~~~~~~~
```


  Commit: 78a1412845b5552465505889b69b5b11d9b20d35
      https://github.com/llvm/llvm-project/commit/78a1412845b5552465505889b69b5b11d9b20d35
  Author: Jason Molenda <jason at molenda.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M lldb/source/Plugins/DynamicLoader/Static/DynamicLoaderStatic.cpp
    M lldb/source/Plugins/Process/mach-core/ProcessMachCore.cpp
    M lldb/test/API/macosx/lc-note/firmware-corefile/TestFirmwareCorefiles.py
    M lldb/test/API/macosx/lc-note/firmware-corefile/create-empty-corefile.cpp

  Log Message:
  -----------
  Handle all standalone combinations of LC_NOTEs w/ & w/o addr & uuid

Fill out ProcessMachCore::DoLoadCore to handle LC_NOTE hints with
a UUID or with a UUID+address, and load the binary at the specified
offset correctly.  Add tests for all four combinations.  Change
DynamicLoaderStatic to not re-set a Section's load address in the
Target if it's already been specified.

Differential Revision: https://reviews.llvm.org/D99571
rdar://51490545


  Commit: cf51bf77b070f63391bacada5e166bfec2616989
      https://github.com/llvm/llvm-project/commit/cf51bf77b070f63391bacada5e166bfec2616989
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp

  Log Message:
  -----------
  [lldb] Account for objc_debug_class_getNameRaw returning NULL

On macOS Catalina, calling objc_debug_class_getNameRaw on some of the
ISA pointers returns NULL, causing us to crash and unwind before reading
all the Objective-C classes. This does not happen on macOS Big Sur.
Account for that possibility and skip the class when that happens.


  Commit: 062d4ddd22c291bb1c0459bf8b8a5c4ee7d89a78
      https://github.com/llvm/llvm-project/commit/062d4ddd22c291bb1c0459bf8b8a5c4ee7d89a78
  Author: Yang Fan <nullptr.cpp at gmail.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M lld/include/lld/Common/TargetOptionsCommandFlags.h

  Log Message:
  -----------
  [lld] Add missing header guard (NFC)


  Commit: 83dc218c7725fcffa1b17e5bda68c2c7356a946c
      https://github.com/llvm/llvm-project/commit/83dc218c7725fcffa1b17e5bda68c2c7356a946c
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp

  Log Message:
  -----------
  [NFC][scudo] Move some shared stuff into ScudoCombinedTest


  Commit: b0d286b03c6e20e57fd2ecf3ea7935669083f3e5
      https://github.com/llvm/llvm-project/commit/b0d286b03c6e20e57fd2ecf3ea7935669083f3e5
  Author: Petr Hosek <phosek at google.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M compiler-rt/test/CMakeLists.txt

  Log Message:
  -----------
  [CMake] Use append instead of set with the list

This addresses an issue introduced by D99706.


  Commit: c6647693300be4b74575143db7429f284f3afeb1
      https://github.com/llvm/llvm-project/commit/c6647693300be4b74575143db7429f284f3afeb1
  Author: Juneyoung Lee <aqjune at gmail.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp
    M llvm/test/Transforms/AlignmentFromAssumptions/simple.ll
    M llvm/test/Transforms/AlignmentFromAssumptions/simple32.ll

  Log Message:
  -----------
  [AssumeBundles] offset should be added to correctly calculate align

This is a patch to fix the bug in alignment calculation (see https://reviews.llvm.org/D90529#2619492).

Consider this code:

```
call void @llvm.assume(i1 true) ["align"(i32* %a, i32 32, i32 28)]
%arrayidx = getelementptr inbounds i32, i32* %a, i64 -1
; aligment of %arrayidx?
```

The llvm.assume guarantees that `%a - 28` is 32-bytes aligned, meaning that `%a` is 32k + 28 for some k.
Therefore `a - 4` cannot be 32-bytes aligned but the existing code was calculating the pointer as 32-bytes aligned.

The reason why this happened is as follows.
`DiffSCEV` stores `%arrayidx - %a` which is -4.
`OffSCEV` stores the offset value of “align”, which is 28.
`DiffSCEV` + `OffSCEV` = 24 should be used for `a - 4`'s offset from 32k, but `DiffSCEV` - `OffSCEV` = 32 was being used instead.

Reviewed By: Tyker

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


  Commit: d441dee5c266ca0777d06846971e1b436361f361
      https://github.com/llvm/llvm-project/commit/d441dee5c266ca0777d06846971e1b436361f361
  Author: Yang Fan <nullptr.cpp at gmail.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M lld/MachO/InputFiles.cpp

  Log Message:
  -----------
  [lld][MachO] Fix -Wsign-compare warning (NFC)

GCC warning:
```
/llvm-project/lld/MachO/InputFiles.cpp:484:24: warning: comparison of integer expressions of different signedness: ‘int64_t’ {aka ‘long int’} and ‘uint64_t’ {aka ‘long unsigned int’} [-Wsign-compare]
484 |           return value < subsectionEntry.offset;
    |                  ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
```


  Commit: 5a9a8c7cd4179bb2ea4fa916719e270b97847f74
      https://github.com/llvm/llvm-project/commit/5a9a8c7cd4179bb2ea4fa916719e270b97847f74
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rvv/vcompress-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vcompress-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/vdiv-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vdivu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vfclass-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vfcvt-f-x-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vfcvt-f-xu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vfcvt-rtz-x-f-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vfcvt-rtz-xu-f-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vfcvt-x-f-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vfcvt-xu-f-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vfncvt-f-x-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vfncvt-f-xu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vfwcvt-rtz-x-f-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vfwcvt-rtz-xu-f-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vfwcvt-x-f-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vfwcvt-xu-f-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vid-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/viota-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vle-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vleff-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vloxei-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vlse-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vluxei-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmacc-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmadc-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmadc.carry.in-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmadd-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmax-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmaxu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmerge-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmin-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vminu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmsbc-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmsbc.borrow.in-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmseq-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmseq-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/vmsle-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmsle-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/vmsleu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmsleu-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/vmslt-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmslt-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/vmsltu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmsltu-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/vmsne-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmsne-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/vmul-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmulh-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmulhsu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmulhu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vnclip-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vnclipu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vnmsac-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vnmsub-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vnsra-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vnsrl-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vor-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vredand-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vredmax-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vredmaxu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vredmin-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vredminu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vredor-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vredsum-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vredxor-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vrem-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vremu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vrgatherei16-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vsadd-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vsaddu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vsbc-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vse-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vsext-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vslidedown-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vslideup-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vsll-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vsmul-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vsoxei-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vsra-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vsrl-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vsse-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vssub-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vssubu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vsub-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vsuxei-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vwadd.w-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vwmacc-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vwmaccsu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vwmaccu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vwmaccus-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vwmul-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vwmulsu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vwmulu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vwredsum-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vwredsumu-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vwsub.w-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vxor-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vzext-rv32.ll

  Log Message:
  -----------
  [RISCV] Add more nxvi64 vector intrinsic tests for RV32. NFC

This confirms we handle most instrutions gracefully. We do
currently fail for vslide1up and vslide1down though.


  Commit: 56fa1b4ff2b67f8cdcb38763df51d407ba4814d5
      https://github.com/llvm/llvm-project/commit/56fa1b4ff2b67f8cdcb38763df51d407ba4814d5
  Author: Samuel <swamulism at gmail.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/tools/llvm-reduce/CMakeLists.txt
    A llvm/tools/llvm-reduce/DeltaManager.cpp
    M llvm/tools/llvm-reduce/DeltaManager.h
    M llvm/tools/llvm-reduce/TestRunner.h
    M llvm/tools/llvm-reduce/deltas/Delta.cpp
    M llvm/tools/llvm-reduce/deltas/Delta.h
    M llvm/tools/llvm-reduce/deltas/ReduceAliases.h
    M llvm/tools/llvm-reduce/deltas/ReduceArguments.h
    M llvm/tools/llvm-reduce/deltas/ReduceAttributes.cpp
    M llvm/tools/llvm-reduce/deltas/ReduceAttributes.h
    M llvm/tools/llvm-reduce/deltas/ReduceBasicBlocks.cpp
    M llvm/tools/llvm-reduce/deltas/ReduceBasicBlocks.h
    M llvm/tools/llvm-reduce/deltas/ReduceFunctionBodies.h
    M llvm/tools/llvm-reduce/deltas/ReduceFunctions.h
    M llvm/tools/llvm-reduce/deltas/ReduceGlobalVarInitializers.h
    M llvm/tools/llvm-reduce/deltas/ReduceGlobalVars.cpp
    M llvm/tools/llvm-reduce/deltas/ReduceGlobalVars.h
    M llvm/tools/llvm-reduce/deltas/ReduceInstructions.h
    M llvm/tools/llvm-reduce/deltas/ReduceMetadata.h
    M llvm/tools/llvm-reduce/deltas/ReduceOperandBundles.h
    M llvm/tools/llvm-reduce/deltas/ReduceSpecialGlobals.h
    M llvm/tools/llvm-reduce/llvm-reduce.cpp
    M llvm/utils/gn/secondary/llvm/tools/llvm-reduce/BUILD.gn

  Log Message:
  -----------
  [llvm-reduce] Add header guards and fix clang-tidy warnings

Add header guards and fix other clang-tidy warnings in .h files.
Also align misaligned header docs

Reviewed By: aeubanks

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


  Commit: 438b6dd3e53a9f28ac662d1dd067188cfe5767e9
      https://github.com/llvm/llvm-project/commit/438b6dd3e53a9f28ac662d1dd067188cfe5767e9
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rvv/vmfeq-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmfge-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmfgt-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmfle-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmflt-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vmfne-rv32.ll

  Log Message:
  -----------
  [RISCV] Add missing nxvXf64 intrinsics tests cases for floating-point compare for RV32.


  Commit: c5605857bb77a6f2f08304dcc5e35e0637851ffe
      https://github.com/llvm/llvm-project/commit/c5605857bb77a6f2f08304dcc5e35e0637851ffe
  Author: Wenlei He <aktoon at gmail.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M llvm/lib/ProfileData/ProfileSummaryBuilder.cpp

  Log Message:
  -----------
  [CSSPGO] Skip dangling probe value when computing profile summary

Recently we switched to use InvalidProbeCount = UINT64_MAX (instead of 0) to represent dangling probe, but UINT64_MAX is not excluded when computing profile summary. This caused profile summary to produce incorrect hot/cold threshold. The change fixed it by excluding UINT64_MAX from summary builder.

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


  Commit: 7959d59028dd126416cdf10dbbd22162922e1336
      https://github.com/llvm/llvm-project/commit/7959d59028dd126416cdf10dbbd22162922e1336
  Author: Christopher Di Bella <cjdb at google.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M libcxx/include/concepts
    M libcxx/include/type_traits
    M libcxx/test/std/concepts/concepts.compare/concept.equalitycomparable/equality_comparable.compile.pass.cpp
    M libcxx/test/std/concepts/concepts.compare/concept.equalitycomparable/equality_comparable_with.compile.pass.cpp
    A libcxx/test/std/concepts/concepts.compare/concepts.totallyordered/totally_ordered.pass.cpp
    A libcxx/test/std/concepts/concepts.compare/concepts.totallyordered/totally_ordered_with.pass.cpp
    M libcxx/test/std/concepts/concepts.compare/types.h

  Log Message:
  -----------
  [libcxx] adds concepts `std::totally_ordered` and `std::totally_ordered_with`

Implements parts of:
    - P0898R3 Standard Library Concepts
    - P1754 Rename concepts to standard_case for C++20, while we still can

Reviewed By: Mordante

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


  Commit: 0889181625bb570e463362ab8f53f9a14c886b2e
      https://github.com/llvm/llvm-project/commit/0889181625bb570e463362ab8f53f9a14c886b2e
  Author: Aaron Green <aarongreen at google.com>
  Date:   2021-04-01 (Thu, 01 Apr 2021)

  Changed paths:
    M compiler-rt/lib/fuzzer/FuzzerTracePC.h
    M compiler-rt/lib/fuzzer/FuzzerUtil.cpp
    M compiler-rt/lib/fuzzer/FuzzerUtil.h

  Log Message:
  -----------
  Tweak SimpleFastHash

This change adds a SimpleFastHash64 variant of SimpleFastHash which allows call sites to specify a starting value and get a 64 bit hash in return. This allows a hash to be "resumed" with more data.

A later patch needs this to be able to hash a sequence of module-relative values one at a time, rather than just a region a memory.

Reviewed By: morehouse

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


  Commit: 2ec7f639c49fdee8956a09994d1cf99ef4282746
      https://github.com/llvm/llvm-project/commit/2ec7f639c49fdee8956a09994d1cf99ef4282746
  Author: Marek Kurdej <marek.kurdej+llvm.org at gmail.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/LangOptions.h
    M clang/lib/Sema/SemaOverload.cpp
    M clang/test/SemaCXX/MicrosoftCompatibility.cpp

  Log Message:
  -----------
  [clang-cl] [Sema] Do not prefer integral conversion over floating-to-integral for MS compatibility 19.28 and higher.

As of MSVC 19.28 (2019 Update 8), integral conversion is no longer preferred over floating-to-integral, and so MSVC is more standard conformant and will generate a compiler error on ambiguous call.
Cf. https://godbolt.org/z/E8xsdqKsb.
Initially found during the review of D99641.

Reviewed By: rnk

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


  Commit: 5d7c832e8c14ec0a2823528f8fbbfd3a9e96c828
      https://github.com/llvm/llvm-project/commit/5d7c832e8c14ec0a2823528f8fbbfd3a9e96c828
  Author: Alex Zinenko <zinenko at google.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Conversion/Passes.td
    A mlir/test/Conversion/AffineToStandard/no-memref.mlir

  Log Message:
  -----------
  [mlir] add memref dialect as dependent of lower-affine pass

The lower-affine pass also processes affine load and store operations
that get converted to load and store operations now available in the
memref dialect. Since it produces operations from the memref dialect,
this dialect should be registered as dependent for this pass. It is rare
but possible to have code that doesn't have memref operations in the
input and calls this pass.

Reviewed By: mehdi_amini

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


  Commit: a89fb29398dc0ce48dfe6f45f99d6ae7df4c6b46
      https://github.com/llvm/llvm-project/commit/a89fb29398dc0ce48dfe6f45f99d6ae7df4c6b46
  Author: oToToT <ty1208chiang at gmail.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M clang/lib/AST/ItaniumMangle.cpp
    M clang/unittests/AST/DeclTest.cpp

  Log Message:
  -----------
  [clang][ItaniumMangle] Check SizeExpr for DependentSizedArrayType
(PR49478)

As ArrayType::ArrayType mentioned in clang/lib/AST/Type.cpp, a
DependentSizedArrayType might not have size expression because it it
used as the type of a dependent array of unknown bound with a dependent
braced initializer.

Thus, I add a check when mangling array of that type.

This should fix https://bugs.llvm.org/show_bug.cgi?id=49478

Reviewed By: Richard Smith - zygoloid

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


  Commit: f8013a35b6fb02ad35008c373f7b06a24b5dd8e4
      https://github.com/llvm/llvm-project/commit/f8013a35b6fb02ad35008c373f7b06a24b5dd8e4
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M libcxx/test/std/thread/thread.condition/thread.condition.condvar/wait_for.pass.cpp
    M libcxx/test/std/thread/thread.condition/thread.condition.condvarany/wait_for.pass.cpp

  Log Message:
  -----------
  [libcxx] [test] Make the condvar wait_for tests a bit more understandable. NFC.

This was requested in the review of D99175; rename the "runs"
variable to clarify what it means wrt the test, and move updating of
it to the main function to clarify its behaviour wrt the two runs
further.

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


  Commit: 28ea218417d713bcb399e9428e4c3f8f7960feb2
      https://github.com/llvm/llvm-project/commit/28ea218417d713bcb399e9428e4c3f8f7960feb2
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M libcxx/test/std/concepts/concepts.callable/concept.invocable/invocable.compile.pass.cpp
    M libcxx/test/std/concepts/concepts.callable/concept.regularinvocable/regular_invocable.pass.cpp

  Log Message:
  -----------
  [libcxx] [test] Fix invocable tests on Windows

MSVC had a bug regarding preferring intergral conversions over
floating conversions. This is fixed in MSVC 19.28 and newer. Clang in
MSVC mode so far only mimics the old, buggy behaviour, but will
hopefully soon be fixed to comply with the new behaviour too
(see https://reviews.llvm.org/D99663).

Make the negative test to use a distinctly different type,
leaving checks for compiler specific bugs out of the libcxx test.

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


  Commit: f343a730596b6b02039a91d71dc16c113d09cfe6
      https://github.com/llvm/llvm-project/commit/f343a730596b6b02039a91d71dc16c113d09cfe6
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/tests/primary_test.cpp

  Log Message:
  -----------
  [NFC][scudo] Convert ScudoPrimaryTest into TYPED_TEST


  Commit: bb1e5399e4586239d6424f5eea5a9f06c52ebe9b
      https://github.com/llvm/llvm-project/commit/bb1e5399e4586239d6424f5eea5a9f06c52ebe9b
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/tests/primary_test.cpp

  Log Message:
  -----------
  [NFC][scudo] Inline some functions into ScudoPrimaryTest


  Commit: a26f1bf67ec70f72e64101cf483b26466928fc38
      https://github.com/llvm/llvm-project/commit/a26f1bf67ec70f72e64101cf483b26466928fc38
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
    M llvm/test/CodeGen/AMDGPU/opt-pipeline.ll
    M llvm/test/Other/new-pm-defaults.ll
    M llvm/test/Other/new-pm-thinlto-defaults.ll
    M llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
    M llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
    M llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
    M llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
    M llvm/test/Other/opt-O2-pipeline.ll
    M llvm/test/Other/opt-O3-pipeline-enable-matrix.ll
    M llvm/test/Other/opt-O3-pipeline.ll
    M llvm/test/Other/opt-Os-pipeline.ll
    M llvm/test/Other/pass-pipelines.ll
    M llvm/test/Transforms/IndVarSimplify/X86/pr45360.ll
    M llvm/test/Transforms/PhaseOrdering/X86/spurious-peeling.ll
    M llvm/test/Transforms/PhaseOrdering/X86/vdiv.ll
    M llvm/test/Transforms/PhaseOrdering/loop-rotation-vs-common-code-hoisting.ll

  Log Message:
  -----------
  [PassManager] Run additional LICM before LoopRotate

Loop rotation often has to perform code duplication
from header into preheader, which introduces PHI nodes.

>>! In D99204, @thopre wrote:
>
> With loop peeling, it is important that unnecessary PHIs be avoided or
> it will leads to spurious peeling. One source of such PHIs is loop
> rotation which creates PHIs for invariant loads. Those PHIs are
> particularly problematic since loop peeling is now run as part of simple
> loop unrolling before GVN is run, and are thus a source of spurious
> peeling.
>
> Note that while some of the load can be hoisted and eventually
> eliminated by instruction combine, this is not always possible due to
> alignment issue. In particular, the motivating example [1] was a load
> inside a class instance which cannot be hoisted because the `this'
> pointer has an alignment of 1.
>
> [1] http://lists.llvm.org/pipermail/llvm-dev/attachments/20210312/4ce73c47/attachment.cpp

Now, we could enhance LoopRotate to avoid duplicating code when not needed,
but instead hoist loop-invariant code, but isn't that a code duplication? (*sic*)
We have LICM, and in fact we already run it right after LoopRotation.

We could try to move it to before LoopRotation,
that is basically free from compile-time perspective:
https://llvm-compile-time-tracker.com/compare.php?from=6c93eb4477d88af046b915bc955c03693b2cbb58&to=a4bee6d07732b1184c436da489040b912f0dc271&stat=instructions
But, looking at stats, i think it isn't great that we would no longer do LICM after LoopRotation, in particular:
| statistic name                                   | LoopRotate-LICM | LICM-LoopRotate |     Δ |       % | abs(%) |
| asm-printer.EmittedInsts                         | 9015930         | 9015799         |  -131 |   0.00% |  0.00% |
| indvars.NumElimCmp                               | 3536            | 3544            |     8 |   0.23% |  0.23% |
| indvars.NumElimExt                               | 36725           | 36580           |  -145 |  -0.39% |  0.39% |
| indvars.NumElimIV                                | 1197            | 1187            |   -10 |  -0.84% |  0.84% |
| indvars.NumElimIdentity                          | 143             | 136             |    -7 |  -4.90% |  4.90% |
| indvars.NumElimRem                               | 4               | 5               |     1 |  25.00% | 25.00% |
| indvars.NumLFTR                                  | 29842           | 29890           |    48 |   0.16% |  0.16% |
| indvars.NumReplaced                              | 2293            | 2227            |   -66 |  -2.88% |  2.88% |
| indvars.NumSimplifiedSDiv                        | 6               | 8               |     2 |  33.33% | 33.33% |
| indvars.NumWidened                               | 26438           | 26329           |  -109 |  -0.41% |  0.41% |
| instcount.TotalBlocks                            | 1178338         | 1173840         | -4498 |  -0.38% |  0.38% |
| instcount.TotalFuncs                             | 111825          | 111829          |     4 |   0.00% |  0.00% |
| instcount.TotalInsts                             | 9905442         | 9896139         | -9303 |  -0.09% |  0.09% |
| lcssa.NumLCSSA                                   | 425871          | 423961          | -1910 |  -0.45% |  0.45% |
| licm.NumHoisted                                  | 378357          | 378753          |   396 |   0.10% |  0.10% |
| licm.NumMovedCalls                               | 2193            | 2208            |    15 |   0.68% |  0.68% |
| licm.NumMovedLoads                               | 35899           | 31821           | -4078 | -11.36% | 11.36% |
| licm.NumPromoted                                 | 11178           | 11154           |   -24 |  -0.21% |  0.21% |
| licm.NumSunk                                     | 13359           | 13587           |   228 |   1.71% |  1.71% |
| loop-delete.NumDeleted                           | 8547            | 8402            |  -145 |  -1.70% |  1.70% |
| loop-instsimplify.NumSimplified                  | 12876           | 11890           |  -986 |  -7.66% |  7.66% |
| loop-peel.NumPeeled                              | 1008            | 925             |   -83 |  -8.23% |  8.23% |
| loop-rotate.NumNotRotatedDueToHeaderSize         | 368             | 365             |    -3 |  -0.82% |  0.82% |
| loop-rotate.NumRotated                           | 42015           | 42003           |   -12 |  -0.03% |  0.03% |
| loop-simplifycfg.NumLoopBlocksDeleted            | 240             | 242             |     2 |   0.83% |  0.83% |
| loop-simplifycfg.NumLoopExitsDeleted             | 497             | 20              |  -477 | -95.98% | 95.98% |
| loop-simplifycfg.NumTerminatorsFolded            | 618             | 336             |  -282 | -45.63% | 45.63% |
| loop-unroll.NumCompletelyUnrolled                | 11028           | 11032           |     4 |   0.04% |  0.04% |
| loop-unroll.NumUnrolled                          | 12608           | 12529           |   -79 |  -0.63% |  0.63% |
| mem2reg.NumDeadAlloca                            | 10222           | 10221           |    -1 |  -0.01% |  0.01% |
| mem2reg.NumPHIInsert                             | 192110          | 192106          |    -4 |   0.00% |  0.00% |
| mem2reg.NumSingleStore                           | 637650          | 637643          |    -7 |   0.00% |  0.00% |
| scalar-evolution.NumBruteForceTripCountsComputed | 814             | 812             |    -2 |  -0.25% |  0.25% |
| scalar-evolution.NumTripCountsComputed           | 283108          | 282934          |  -174 |  -0.06% |  0.06% |
| scalar-evolution.NumTripCountsNotComputed        | 106712          | 106718          |     6 |   0.01% |  0.01% |
| simple-loop-unswitch.NumBranches                 | 5178            | 4752            |  -426 |  -8.23% |  8.23% |
| simple-loop-unswitch.NumCostMultiplierSkipped    | 914             | 503             |  -411 | -44.97% | 44.97% |
| simple-loop-unswitch.NumSwitches                 | 20              | 18              |    -2 | -10.00% | 10.00% |
| simple-loop-unswitch.NumTrivial                  | 183             | 95              |   -88 | -48.09% | 48.09% |

... but that actually regresses LICM (-12% `licm.NumMovedLoads`),
loop-simplifycfg (`NumLoopExitsDeleted`, `NumTerminatorsFolded`),
simple-loop-unswitch (`NumTrivial`).

What if we instead have LICM both before and after LoopRotate?
| statistic name                                | LoopRotate-LICM | LICM-LoopRotate-LICM |     Δ |       % | abs(%) |
| asm-printer.EmittedInsts                      | 9015930         | 9014474              | -1456 |  -0.02% |  0.02% |
| indvars.NumElimCmp                            | 3536            | 3546                 |    10 |   0.28% |  0.28% |
| indvars.NumElimExt                            | 36725           | 36681                |   -44 |  -0.12% |  0.12% |
| indvars.NumElimIV                             | 1197            | 1185                 |   -12 |  -1.00% |  1.00% |
| indvars.NumElimIdentity                       | 143             | 146                  |     3 |   2.10% |  2.10% |
| indvars.NumElimRem                            | 4               | 5                    |     1 |  25.00% | 25.00% |
| indvars.NumLFTR                               | 29842           | 29899                |    57 |   0.19% |  0.19% |
| indvars.NumReplaced                           | 2293            | 2299                 |     6 |   0.26% |  0.26% |
| indvars.NumSimplifiedSDiv                     | 6               | 8                    |     2 |  33.33% | 33.33% |
| indvars.NumWidened                            | 26438           | 26404                |   -34 |  -0.13% |  0.13% |
| instcount.TotalBlocks                         | 1178338         | 1173652              | -4686 |  -0.40% |  0.40% |
| instcount.TotalFuncs                          | 111825          | 111829               |     4 |   0.00% |  0.00% |
| instcount.TotalInsts                          | 9905442         | 9895452              | -9990 |  -0.10% |  0.10% |
| lcssa.NumLCSSA                                | 425871          | 425373               |  -498 |  -0.12% |  0.12% |
| licm.NumHoisted                               | 378357          | 383352               |  4995 |   1.32% |  1.32% |
| licm.NumMovedCalls                            | 2193            | 2204                 |    11 |   0.50% |  0.50% |
| licm.NumMovedLoads                            | 35899           | 35755                |  -144 |  -0.40% |  0.40% |
| licm.NumPromoted                              | 11178           | 11163                |   -15 |  -0.13% |  0.13% |
| licm.NumSunk                                  | 13359           | 14321                |   962 |   7.20% |  7.20% |
| loop-delete.NumDeleted                        | 8547            | 8538                 |    -9 |  -0.11% |  0.11% |
| loop-instsimplify.NumSimplified               | 12876           | 12041                |  -835 |  -6.48% |  6.48% |
| loop-peel.NumPeeled                           | 1008            | 924                  |   -84 |  -8.33% |  8.33% |
| loop-rotate.NumNotRotatedDueToHeaderSize      | 368             | 365                  |    -3 |  -0.82% |  0.82% |
| loop-rotate.NumRotated                        | 42015           | 42005                |   -10 |  -0.02% |  0.02% |
| loop-simplifycfg.NumLoopBlocksDeleted         | 240             | 241                  |     1 |   0.42% |  0.42% |
| loop-simplifycfg.NumTerminatorsFolded         | 618             | 619                  |     1 |   0.16% |  0.16% |
| loop-unroll.NumCompletelyUnrolled             | 11028           | 11029                |     1 |   0.01% |  0.01% |
| loop-unroll.NumUnrolled                       | 12608           | 12525                |   -83 |  -0.66% |  0.66% |
| mem2reg.NumPHIInsert                          | 192110          | 192073               |   -37 |  -0.02% |  0.02% |
| mem2reg.NumSingleStore                        | 637650          | 637652               |     2 |   0.00% |  0.00% |
| scalar-evolution.NumTripCountsComputed        | 283108          | 282998               |  -110 |  -0.04% |  0.04% |
| scalar-evolution.NumTripCountsNotComputed     | 106712          | 106691               |   -21 |  -0.02% |  0.02% |
| simple-loop-unswitch.NumBranches              | 5178            | 5185                 |     7 |   0.14% |  0.14% |
| simple-loop-unswitch.NumCostMultiplierSkipped | 914             | 925                  |    11 |   1.20% |  1.20% |
| simple-loop-unswitch.NumTrivial               | 183             | 179                  |    -4 |  -2.19% |  2.19% |
| simple-loop-unswitch.NumBranches              | 5178            | 4752                 |  -426 |  -8.23% |  8.23% |
| simple-loop-unswitch.NumCostMultiplierSkipped | 914             | 503                  |  -411 | -44.97% | 44.97% |
| simple-loop-unswitch.NumSwitches              | 20              | 18                   |    -2 | -10.00% | 10.00% |
| simple-loop-unswitch.NumTrivial               | 183             | 95                   |   -88 | -48.09% | 48.09% |

I.e. we end up with less instructions, less peeling, more LICM activity,
also note how none of those 4 regressions are here. Namely:

| statistic name                                   | LICM-LoopRotate | LICM-LoopRotate-LICM |     Δ |        % |   abs(%) |
| asm-printer.EmittedInsts                         | 9015799         | 9014474              | -1325 |   -0.01% |    0.01% |
| indvars.NumElimCmp                               | 3544            | 3546                 |     2 |    0.06% |    0.06% |
| indvars.NumElimExt                               | 36580           | 36681                |   101 |    0.28% |    0.28% |
| indvars.NumElimIV                                | 1187            | 1185                 |    -2 |   -0.17% |    0.17% |
| indvars.NumElimIdentity                          | 136             | 146                  |    10 |    7.35% |    7.35% |
| indvars.NumLFTR                                  | 29890           | 29899                |     9 |    0.03% |    0.03% |
| indvars.NumReplaced                              | 2227            | 2299                 |    72 |    3.23% |    3.23% |
| indvars.NumWidened                               | 26329           | 26404                |    75 |    0.28% |    0.28% |
| instcount.TotalBlocks                            | 1173840         | 1173652              |  -188 |   -0.02% |    0.02% |
| instcount.TotalInsts                             | 9896139         | 9895452              |  -687 |   -0.01% |    0.01% |
| lcssa.NumLCSSA                                   | 423961          | 425373               |  1412 |    0.33% |    0.33% |
| licm.NumHoisted                                  | 378753          | 383352               |  4599 |    1.21% |    1.21% |
| licm.NumMovedCalls                               | 2208            | 2204                 |    -4 |   -0.18% |    0.18% |
| licm.NumMovedLoads                               | 31821           | 35755                |  3934 |   12.36% |   12.36% |
| licm.NumPromoted                                 | 11154           | 11163                |     9 |    0.08% |    0.08% |
| licm.NumSunk                                     | 13587           | 14321                |   734 |    5.40% |    5.40% |
| loop-delete.NumDeleted                           | 8402            | 8538                 |   136 |    1.62% |    1.62% |
| loop-instsimplify.NumSimplified                  | 11890           | 12041                |   151 |    1.27% |    1.27% |
| loop-peel.NumPeeled                              | 925             | 924                  |    -1 |   -0.11% |    0.11% |
| loop-rotate.NumRotated                           | 42003           | 42005                |     2 |    0.00% |    0.00% |
| loop-simplifycfg.NumLoopBlocksDeleted            | 242             | 241                  |    -1 |   -0.41% |    0.41% |
| loop-simplifycfg.NumLoopExitsDeleted             | 20              | 497                  |   477 | 2385.00% | 2385.00% |
| loop-simplifycfg.NumTerminatorsFolded            | 336             | 619                  |   283 |   84.23% |   84.23% |
| loop-unroll.NumCompletelyUnrolled                | 11032           | 11029                |    -3 |   -0.03% |    0.03% |
| loop-unroll.NumUnrolled                          | 12529           | 12525                |    -4 |   -0.03% |    0.03% |
| mem2reg.NumDeadAlloca                            | 10221           | 10222                |     1 |    0.01% |    0.01% |
| mem2reg.NumPHIInsert                             | 192106          | 192073               |   -33 |   -0.02% |    0.02% |
| mem2reg.NumSingleStore                           | 637643          | 637652               |     9 |    0.00% |    0.00% |
| scalar-evolution.NumBruteForceTripCountsComputed | 812             | 814                  |     2 |    0.25% |    0.25% |
| scalar-evolution.NumTripCountsComputed           | 282934          | 282998               |    64 |    0.02% |    0.02% |
| scalar-evolution.NumTripCountsNotComputed        | 106718          | 106691               |   -27 |   -0.03% |    0.03% |
| simple-loop-unswitch.NumBranches                 | 4752            | 5185                 |   433 |    9.11% |    9.11% |
| simple-loop-unswitch.NumCostMultiplierSkipped    | 503             | 925                  |   422 |   83.90% |   83.90% |
| simple-loop-unswitch.NumSwitches                 | 18              | 20                   |     2 |   11.11% |   11.11% |
| simple-loop-unswitch.NumTrivial                  | 95              | 179                  |    84 |   88.42% |   88.42% |

{F15983613} {F15983615} {F15983616}
(this is vanilla llvm testsuite + rawspeed + darktable)

As an example of the code where early LICM only is bad, see:
https://godbolt.org/z/GzEbacs4K

This does have an observable compile-time regression of +~0.5% geomean
https://llvm-compile-time-tracker.com/compare.php?from=7c5222e4d1a3a14f029e5f614c9aefd0fa505f1e&to=5d81826c3411982ca26e46b9d0aff34c80577664&stat=instructions
but i think that's basically nothing, and there's potential that it might
be avoidable in the future by fixing clang to produce alignment information
on function arguments, thus making the second run unneeded.

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


  Commit: 2388aae401dcb0903b1aa904d2f810fcf30edbfc
      https://github.com/llvm/llvm-project/commit/2388aae401dcb0903b1aa904d2f810fcf30edbfc
  Author: Evgeniy Brevnov <ybrevnov at azul.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/include/llvm/IR/PatternMatch.h
    M llvm/include/llvm/Transforms/Scalar/NaryReassociate.h
    M llvm/lib/Transforms/Scalar/NaryReassociate.cpp
    M llvm/test/Transforms/NaryReassociate/nary-smax.ll
    M llvm/test/Transforms/NaryReassociate/nary-smin.ll
    M llvm/test/Transforms/NaryReassociate/nary-umax.ll
    M llvm/test/Transforms/NaryReassociate/nary-umin.ll

  Log Message:
  -----------
  [NARY-REASSOCIATE] Support reassociation of min/max

Support reassociation for min/max. With that we should be able to transform min(min(a, b), c) -> min(min(a, c), b) if min(a, c) is already available.

Reviewed By: mkazantsev, lebedev.ri

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


  Commit: 49e5a896d1fc0d18263da5f832b125176a4338ae
      https://github.com/llvm/llvm-project/commit/49e5a896d1fc0d18263da5f832b125176a4338ae
  Author: Marek Kurdej <marek.kurdej+llvm.org at gmail.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M libcxx/include/__config

  Log Message:
  -----------
  [libc++] Fix build on macOS older than 10.15.

* This was introduced in D99515 that added -Wundef flag. CI run on macOS 10.15 and this problem wasn't caught before.


  Commit: a4ac847c8ef0cf9c04c7ea2be0b34bb565cc7056
      https://github.com/llvm/llvm-project/commit/a4ac847c8ef0cf9c04c7ea2be0b34bb565cc7056
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rvv/rv32-vsetvli-intrinsics.ll
    M llvm/test/CodeGen/RISCV/rvv/rv64-vsetvli-intrinsics.ll

  Log Message:
  -----------
  [RISCV] Add some tests showing vsetvli cleanup opportunities

Reviewed By: craig.topper

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


  Commit: 3b48d849d44367ff351f58ce7a4949d104a30dea
      https://github.com/llvm/llvm-project/commit/3b48d849d44367ff351f58ce7a4949d104a30dea
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVCleanupVSETVLI.cpp
    M llvm/test/CodeGen/RISCV/rvv/cleanup-vsetvli.mir
    M llvm/test/CodeGen/RISCV/rvv/rv32-vsetvli-intrinsics.ll
    M llvm/test/CodeGen/RISCV/rvv/rv64-vsetvli-intrinsics.ll

  Log Message:
  -----------
  [RISCV] Optimize more redundant VSETVLIs

D99717 introduced some test cases which showed that the output of one
vsetvli into another would not be picked up by the RISCVCleanupVSETVLI
pass. This patch teaches the optimization about such a pattern. The
pattern is quite common when using the RVV vsetvli intrinsic to pass the
VL onto other intrinsics.

The second test case introduced by D99717 is left unoptimized by this
patch. It is a rarer case and will require us to rewire any uses of the
redundant vset[i]vli's output to the previous one's.

Reviewed By: craig.topper

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


  Commit: 0f3230390b8becb59362963b8be630b3e32541b1
      https://github.com/llvm/llvm-project/commit/0f3230390b8becb59362963b8be630b3e32541b1
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/AArch64/vectorize-free-extracts-inserts.ll
    M llvm/test/Transforms/SLPVectorizer/X86/alternate-fp-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/X86/alternate-fp.ll

  Log Message:
  -----------
  [SLP] Better estimate cost of no-op extracts on target vectors.

The motivation for this patch is to better estimate the cost of
extracelement instructions in cases were they are going to be free,
because the source vector can be used directly.

A simple example is

    %v1.lane.0 = extractelement <2 x double> %v.1, i32 0
    %v1.lane.1 = extractelement <2 x double> %v.1, i32 1

    %a.lane.0 = fmul double %v1.lane.0, %x
    %a.lane.1 = fmul double %v1.lane.1, %y

Currently we only consider the extracts free, if there are no other
users.

In this particular case, on AArch64 which can fit <2 x double> in a
vector register, the extracts should be free, independently of other
users, because the source vector of the extracts will be in a vector
register directly, so it should be free to use the vector directly.

The SLP vectorized version of noop_extracts_9_lanes is 30%-50% faster on
certain AArch64 CPUs.

It looks like this does not impact any code in
SPEC2000/SPEC2006/MultiSource both on X86 and AArch64 with -O3 -flto.

This originally regressed after D80773, so if there's a better
alternative to explore, I'd be more than happy to do that.

Reviewed By: ABataev

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


  Commit: 0f7bbbc481e20a152c74bc315f8995b62d54c8c0
      https://github.com/llvm/llvm-project/commit/0f7bbbc481e20a152c74bc315f8995b62d54c8c0
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M clang/lib/Driver/ToolChains/Clang.cpp
    M llvm/include/llvm/CodeGen/ValueTypes.h
    M llvm/include/llvm/Support/TypeSize.h
    M llvm/lib/Analysis/InstructionSimplify.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/Support/CMakeLists.txt
    A llvm/lib/Support/TypeSize.cpp
    M llvm/unittests/CodeGen/ScalableVectorMVTsTest.cpp

  Log Message:
  -----------
  Always emit error for wrong interfaces to scalable vectors, unless cmdline flag is passed.

In order to bring up scalable vector support in LLVM incrementally,
we introduced behaviour to emit a warning, instead of an error, when
asking the wrong question of a scalable vector, like asking for the
fixed number of elements.

This patch puts that behaviour under a flag. The default behaviour is
that the compiler will always error, which means that all LLVM unit
tests and regression tests will now fail when a code-path is taken that
still uses the wrong interface.

The behaviour to demote an error to a warning can be individually enabled
for tools that want to support experimental use of scalable vectors.
This patch enables that behaviour when driving compilation from Clang.
This means that for users who want to try out scalable-vector support,
fixed-width codegen support, or build user-code with scalable vector
intrinsics, Clang will not crash and burn when the compiler encounters
such a case.

This allows us to do away with the following pattern in many of the SVE tests:
  RUN: .... 2>%t
  RUN: cat %t | FileCheck --check-prefix=WARN
  WARN-NOT: warning: ...

The behaviour to emit warnings is only temporary and we expect this flag
to be removed in the future when scalable vector support is more stable.

This patch also has fixes the following tests:
 unittests:
   ScalableVectorMVTsTest.SizeQueries
   SelectionDAGAddressAnalysisTest.unknownSizeFrameObjects
   AArch64SelectionDAGTest.computeKnownBitsSVE_ZERO_EXTEND_VECTOR_INREG

 regression tests:
   Transforms/InstCombine/vscale_gep.ll

Reviewed By: paulwalker-arm, ctetreau

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


  Commit: b0c32199a6dd85f5e50083aaf51242a803576a01
      https://github.com/llvm/llvm-project/commit/b0c32199a6dd85f5e50083aaf51242a803576a01
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/lib/Support/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 0f7bbbc481e2


  Commit: 500969f1d0b1d92d7c4ccfb6bf8807de96b7e4a0
      https://github.com/llvm/llvm-project/commit/500969f1d0b1d92d7c4ccfb6bf8807de96b7e4a0
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  [X86][SSE] isHorizontalBinOp - use getTargetShuffleInputs helper

Use the getTargetShuffleInputs helper for all shuffle decoding


  Commit: 455973162cb98d440753fcff923793d24de00c83
      https://github.com/llvm/llvm-project/commit/455973162cb98d440753fcff923793d24de00c83
  Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M lldb/test/API/functionalities/load_lazy/TestLoadUsingLazyBind.py

  Log Message:
  -----------
  [LLDB] Skip TestLoadUsingLazyBind.py on arm/linux


  Commit: 411673e769acfc63a75b9e643775b6c7f27f256f
      https://github.com/llvm/llvm-project/commit/411673e769acfc63a75b9e643775b6c7f27f256f
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert-subvector.ll
    M llvm/test/CodeGen/RISCV/rvv/insert-subvector.ll

  Log Message:
  -----------
  [RISCV] Test llvm.experimental.vector.insert intrinsics on RV32

RV32 is able to use the llvm.experimental.vector.insert intrinsics too.
This patch ensures they're tested.

Reviewed By: khchen, asb

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


  Commit: b82b305cf94a57a7e0e72f576b85aaa136a505c3
      https://github.com/llvm/llvm-project/commit/b82b305cf94a57a7e0e72f576b85aaa136a505c3
  Author: Jeroen Dobbelaere <jeroen.dobbelaere at synopsys.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
    A llvm/test/Transforms/InstCombine/oss_fuzz_32759.ll

  Log Message:
  -----------
  [InstCombine] Fix out-of-bounds ashr(shl) optimization

This fixes a crash found by the oss fuzzer and reported by @fhahn.
The suggestion of @RKSimon seems to be the correct fix here. (See D91343).

The oss fuzz report can be found here: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=32759

Reviewed By: lebedev.ri

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


  Commit: 6dd07fa513cd3b806e7f852bb98e5c34bab11b36
      https://github.com/llvm/llvm-project/commit/6dd07fa513cd3b806e7f852bb98e5c34bab11b36
  Author: Lei Zhang <antiagainst at google.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M mlir/docs/Dialects/SPIR-V.md
    M mlir/include/mlir/Dialect/SPIRV/Transforms/SPIRVConversion.h
    M mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRV.cpp
    M mlir/lib/Conversion/GPUToSPIRV/GPUToSPIRVPass.cpp
    M mlir/lib/Conversion/LinalgToSPIRV/LinalgToSPIRVPass.cpp
    M mlir/lib/Conversion/SCFToSPIRV/SCFToSPIRVPass.cpp
    M mlir/lib/Conversion/StandardToSPIRV/StandardToSPIRVPass.cpp
    M mlir/lib/Conversion/VectorToSPIRV/VectorToSPIRVPass.cpp
    M mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp
    M mlir/test/lib/Dialect/SPIRV/TestAvailability.cpp

  Log Message:
  -----------
  [mlir][spirv] Add utilities for push constant value

This commit add utility functions for creating push constant
storage variable and loading values from it.

Along the way, performs some clean up:

* Deleted `setABIAttrs`, which is just a 4-liner function
  with one user.
* Moved `SPIRVConverstionTarget` into `mlir` namespace,
  to be consistent with `SPIRVTypeConverter` and
  `LLVMConversionTarget`.

Reviewed By: mravishankar

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


  Commit: ab3c5fb28259a3b768d9774baddaab58c7e51438
      https://github.com/llvm/llvm-project/commit/ab3c5fb28259a3b768d9774baddaab58c7e51438
  Author: Jun Ma <JunMa at linux.alibaba.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/SVEInstrFormats.td

  Log Message:
  -----------
  [NFC][SVE] Use SVE_4_Op_Imm_Pat for sve_intx_dot_by_indexed_elem


  Commit: 274ac9d40e79f25ac8c928732875708b5bac8f09
      https://github.com/llvm/llvm-project/commit/274ac9d40e79f25ac8c928732875708b5bac8f09
  Author: Jun Ma <JunMa at linux.alibaba.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
    M llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith.ll

  Log Message:
  -----------
  [AArch64][SVE] Lowering sve.dot to DOT node

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


  Commit: 2dfa2c0ea02d0777fb971c2519b0b9014e72b547
      https://github.com/llvm/llvm-project/commit/2dfa2c0ea02d0777fb971c2519b0b9014e72b547
  Author: Jun Ma <JunMa at linux.alibaba.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith.ll

  Log Message:
  -----------
  [NFC][SVE] update sve-intrinsics-int-arith.ll under update_llc_test_checks.py


  Commit: d3b74dc1e472c773c27dbbe2b3ae2a3cd0b68c17
      https://github.com/llvm/llvm-project/commit/d3b74dc1e472c773c27dbbe2b3ae2a3cd0b68c17
  Author: Nico Weber <thakis at chromium.org>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M libcxx/include/CMakeLists.txt

  Log Message:
  -----------
  Restore 8954fd436c7 after c06a8f9caa51c

Else, just-built clang can't build programs that include libc++ headers
on macOS if you build via the 'all' target.


  Commit: 7f7f5e2543f4f5576604bef0d4aa3e74a5b3a05b
      https://github.com/llvm/llvm-project/commit/7f7f5e2543f4f5576604bef0d4aa3e74a5b3a05b
  Author: Paul C. Anagnostopoulos <paul at windfall.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    A llvm/docs/CommandGuide/clang-tblgen.rst
    M llvm/docs/CommandGuide/index.rst
    A llvm/docs/CommandGuide/lldb-tblgen.rst
    A llvm/docs/CommandGuide/llvm-tblgen.rst
    A llvm/docs/CommandGuide/mlir-tblgen.rst
    M llvm/docs/CommandGuide/tblgen.rst

  Log Message:
  -----------
  [TableGen] [Docs] Add lldb-tblgen to command guide; add 4 guide stubs

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


  Commit: fa0aff6d6960e3ca4640b0a64b675a768ab99bf0
      https://github.com/llvm/llvm-project/commit/fa0aff6d6960e3ca4640b0a64b675a768ab99bf0
  Author: Nico Weber <thakis at chromium.org>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  Revert "[X86][SSE] isHorizontalBinOp - use getTargetShuffleInputs helper"

This reverts commit 500969f1d0b1d92d7c4ccfb6bf8807de96b7e4a0.
Makes clang assert compiling avx2 code, see
https://bugs.chromium.org/p/chromium/issues/detail?id=1195353#c4
for a standalone repro.


  Commit: 5fcb07a07020f6011128f9fe384fdef65cbcc7b7
      https://github.com/llvm/llvm-project/commit/5fcb07a07020f6011128f9fe384fdef65cbcc7b7
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll
    M llvm/test/Transforms/SLPVectorizer/X86/used-reduced-op.ll

  Log Message:
  -----------
  [SLP]Fix a bug in min/max reduction, number of condition uses.

The ultimate reduction node may have multiple uses, but if the ultimate
reduction is min/max reduction and based on SelectInstruction, the
condition of this select instruction must have only single use.

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


  Commit: ef1f90ba6761f5fc3e7fac8652214f74cbf87c20
      https://github.com/llvm/llvm-project/commit/ef1f90ba6761f5fc3e7fac8652214f74cbf87c20
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll

  Log Message:
  -----------
  [SLP]Added a test for min/max reductions with the key store inside, NFC.


  Commit: 93135091b1f9b7f0ce143068f102f0970c9d63c7
      https://github.com/llvm/llvm-project/commit/93135091b1f9b7f0ce143068f102f0970c9d63c7
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/CorrelatedValuePropagation/range.ll

  Log Message:
  -----------
  [CVP] Add test for !range on intrinsic (NFC)


  Commit: 4a3e006830aaaf094f3a8ea0a3780a5e1b6f3ecc
      https://github.com/llvm/llvm-project/commit/4a3e006830aaaf094f3a8ea0a3780a5e1b6f3ecc
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/lib/Analysis/LazyValueInfo.cpp
    M llvm/test/Transforms/CorrelatedValuePropagation/range.ll

  Log Message:
  -----------
  [LVI] Use range metadata on intrinsics

If we don't know how to handle an intrinsic, we should still
make use of normal call range metadata.


  Commit: 09a88278cbe10927cce488f725e9820f79ce2f54
      https://github.com/llvm/llvm-project/commit/09a88278cbe10927cce488f725e9820f79ce2f54
  Author: Brendon Cahoon <brendon.cahoon at amd.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Target/GenericOpcodes.td
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/form-bitfield-extract-from-sextinreg.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-sbfx.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-ubfx.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
    M llvm/unittests/CodeGen/GlobalISel/MachineIRBuilderTest.cpp

  Log Message:
  -----------
  [GlobalISel] Allow different types for G_SBFX and G_UBFX operands

Change the definition of G_SBFX and G_UBFX so that the lsb and width
can have different types than the src and dst operands.

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


  Commit: dd43e13c005806be06bf09c735353a3d8707c8c8
      https://github.com/llvm/llvm-project/commit/dd43e13c005806be06bf09c735353a3d8707c8c8
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M flang/lib/Decimal/binary-to-decimal.cpp

  Log Message:
  -----------
  [flang] Fix MSVC build breakage

A recent patch exposed an assumption that "long double" is (at least)
an 80-bit floating-point type, which of course it is not in MSVC.
Also get it right for non-x87 floating-point.


  Commit: 3ebfa363f356eff744b73885023cc1fc62fad973
      https://github.com/llvm/llvm-project/commit/3ebfa363f356eff744b73885023cc1fc62fad973
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/Attr.td
    M clang/lib/Sema/SemaDeclAttr.cpp

  Log Message:
  -----------
  Remove attribute handling code for simple attributes; NFC

Attributes that set the SimpleHandler flag in Attr.td don't need to be
explicitly handled in SemaDeclAttr.cpp.


  Commit: d01653f827cc962734f464be9502eb16cd907a44
      https://github.com/llvm/llvm-project/commit/d01653f827cc962734f464be9502eb16cd907a44
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    A llvm/test/Transforms/RewriteStatepointsForGC/strip-invalid-attributes.ll

  Log Message:
  -----------
  [rs4gc] add tests for existing code stripping attributes from function signatures


  Commit: a505801e2b7ba13b224e8f2015a64cbe03e62d35
      https://github.com/llvm/llvm-project/commit/a505801e2b7ba13b224e8f2015a64cbe03e62d35
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
    M llvm/test/Transforms/RewriteStatepointsForGC/strip-invalid-attributes.ll

  Log Message:
  -----------
  [rs4gc] Strip nofree and nosync attributes when lowering from abstract model

The safepoints being inserted exists to free memory, or coordinate with another thread to do so.  Thus, we must strip any inferred attributes and reinfer them after the lowering.

I'm not aware of any active miscompiles caused by this, but since I'm working on strengthening inference of both and leveraging them in the optimization decisions, I figured a bit of future proofing was warranted.


  Commit: 3f8c6f493b06d72312757102f8277d367409bcdd
      https://github.com/llvm/llvm-project/commit/3f8c6f493b06d72312757102f8277d367409bcdd
  Author: Greg McGary <gkm at fb.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M lld/MachO/Symbols.h

  Log Message:
  -----------
  [lld-macho][NFC] Remove redundant member from class Defined

`class Symbol` defines a data member `InputFile *file;`
`class Defined` inherits from `Symbol` and also defines a data member `InputFile *file;` for no apparent purpose.

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


  Commit: 2c4548e18e09686659bddad617b8c42a47714540
      https://github.com/llvm/llvm-project/commit/2c4548e18e09686659bddad617b8c42a47714540
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  Log Message:
  -----------
  [rs4gc] Use loops instead of straightline code for attribute stripping [nfc]

Mostly because I'm about to add more attributes and the straightline copies get much uglier.  What's currently there isn't too bad.


  Commit: 8867fc69f03d0438b0e8beb1dd89c04238f631a1
      https://github.com/llvm/llvm-project/commit/8867fc69f03d0438b0e8beb1dd89c04238f631a1
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h

  Log Message:
  -----------
  [LV] Hoist mapping of IR operands to VPValues (NFC).

This patch moves mapping of IR operands to VPValues out of
tryToCreateWidenRecipe. This allows using existing VPValue operands when
widening recipes directly, which will be introduced in future patches.


  Commit: 55978f914e88dc12bcc62666128c175c86adfd22
      https://github.com/llvm/llvm-project/commit/55978f914e88dc12bcc62666128c175c86adfd22
  Author: Nico Weber <thakis at chromium.org>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M compiler-rt/lib/tsan/CMakeLists.txt
    M llvm/utils/gn/secondary/compiler-rt/lib/BUILD.gn
    M llvm/utils/gn/secondary/compiler-rt/lib/asan/BUILD.gn
    A llvm/utils/gn/secondary/compiler-rt/lib/tsan/BUILD.gn

  Log Message:
  -----------
  [gn build] add build file for tsan runtime

Linux-only for now. Some mac bits stubbed out, but not tested.

Good enough for the tiny_race.c example at
https://clang.llvm.org/docs/ThreadSanitizer.html :

   $ out/gn/bin/clang -fsanitize=address -g -O1 tiny_race.c
   $ while true; do ./a.out || echo $? ; done

While here, also make `-fsanitize=address` work for .c files.

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


  Commit: 6abb92f2103a58d097620b4410054c5bb18c48ec
      https://github.com/llvm/llvm-project/commit/6abb92f2103a58d097620b4410054c5bb18c48ec
  Author: Dimitry Andric <dimitry at andric.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/SCCP.cpp
    A llvm/test/Transforms/SCCP/pr49582-iterator-invalidation.ll

  Log Message:
  -----------
  [SCCP] Avoid modifying AdditionalUsers while iterating over it

When run under valgrind, or with a malloc that poisons freed memory,
this can lead to segfaults or other problems.

To avoid modifying the AdditionalUsers DenseMap while still iterating,
save the instructions to be notified in a separate SmallPtrSet, and use
this to later call OperandChangedState on each instruction.

Fixes PR49582.

Reviewed By: fhahn

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


  Commit: 47ebf7764db2498a56877defdd9bda9fcaf584ab
      https://github.com/llvm/llvm-project/commit/47ebf7764db2498a56877defdd9bda9fcaf584ab
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/GVNSink/assumption.ll

  Log Message:
  -----------
  [GVNSink] auto-generate test checks; NFC


  Commit: 6643132154535c9911d536146369d0e16d49a591
      https://github.com/llvm/llvm-project/commit/6643132154535c9911d536146369d0e16d49a591
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/InstCombine/not.ll

  Log Message:
  -----------
  [InstCombine] add tests for not+or+neg; NFC

https://llvm.org/PR45755


  Commit: 412fc74140c01cc9c29245a248edeee59d8814a4
      https://github.com/llvm/llvm-project/commit/412fc74140c01cc9c29245a248edeee59d8814a4
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
    M llvm/test/Transforms/InstCombine/not.ll

  Log Message:
  -----------
  [InstCombine] fold not+or+neg

~((-X) | Y) --> (X - 1) & (~Y)

We generally prefer 'add' over 'sub', this reduces the
dependency chain, and this looks better for codegen on
x86, ARM, and AArch64 targets.

https://llvm.org/PR45755

https://alive2.llvm.org/ce/z/cxZDSp


  Commit: f6790bec5c228476bc844648780a95f999707e3e
      https://github.com/llvm/llvm-project/commit/f6790bec5c228476bc844648780a95f999707e3e
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/test/MC/RISCV/rv64i-aliases-valid.s

  Log Message:
  -----------
  [RISCV] Add missing CHECK-EXPAND line to one case in rv64i-aliases-valid.s.

Use -NEXT to protect against other missing lines.


  Commit: d7ffa82a8e621ce9a19b98c922adc53d6b7cd9f3
      https://github.com/llvm/llvm-project/commit/d7ffa82a8e621ce9a19b98c922adc53d6b7cd9f3
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/MCTargetDesc/RISCVMatInt.cpp
    M llvm/test/CodeGen/RISCV/calling-conv-half.ll
    M llvm/test/CodeGen/RISCV/imm.ll
    M llvm/test/MC/RISCV/rv64i-aliases-valid.s

  Log Message:
  -----------
  [RISCV] Improve 64-bit integer constant materialization for more cases.

For positive constants we try shifting left to remove leading zeros
and fill the bottom bits with 1s. We then materialize that constant
shift it right.

This patch adds a new strategy to try filling the bottom bits with
zeros instead. This catches some additional cases.


  Commit: 78a39d2a41661719e8d973830568571d75cd4b09
      https://github.com/llvm/llvm-project/commit/78a39d2a41661719e8d973830568571d75cd4b09
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M flang/runtime/CMakeLists.txt
    M flang/runtime/descriptor.cpp
    M flang/runtime/descriptor.h
    A flang/runtime/misc-intrinsic.cpp
    A flang/runtime/misc-intrinsic.h
    M flang/unittests/RuntimeGTest/CMakeLists.txt
    A flang/unittests/RuntimeGTest/MiscIntrinsic.cpp
    M flang/unittests/RuntimeGTest/Reduction.cpp
    A flang/unittests/RuntimeGTest/tools.h

  Log Message:
  -----------
  [flang] TRANSFER() intrinsic function

API, implementation, and unit tests for the intrinsic
function TRANSFER.

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


  Commit: 262f4872aea2e9593cc7ee20f4fe5691fb9f0386
      https://github.com/llvm/llvm-project/commit/262f4872aea2e9593cc7ee20f4fe5691fb9f0386
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/Hexagon/hwloop3.ll

  Log Message:
  -----------
  [Hexagon, test] Fix use of undef FileCheck var

LLVM test CodeGen/Hexagon/hwloop3.ll tries to check for the absence of a
sequence of consecutive instructions with several CHECK-NOT with one of
those directives using a variable defined in another. However CHECK-NOT
are checked independently so that is using a variable defined in a
pattern that should not occur in the input.

This commit merges the two CHECK-NOT into a single CHECK-NOT that
matches the content of two successive non-blank lines, thereby allowing
to preserve the intent of the test.

Reviewed By: bcahoon

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


  Commit: b001d574d7d94bcf1508fa4cdc22e02a0bf4adea
      https://github.com/llvm/llvm-project/commit/b001d574d7d94bcf1508fa4cdc22e02a0bf4adea
  Author: Levy Hsu <admin at levyhsu.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsRISCV.def
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/Sema/SemaChecking.cpp
    A clang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbr.c
    A clang/test/CodeGen/RISCV/rvb-intrinsics/riscv64-zbr.c
    M llvm/include/llvm/IR/IntrinsicsRISCV.td
    M llvm/lib/Target/RISCV/RISCVInstrInfo.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoB.td
    A llvm/test/CodeGen/RISCV/rv32zbr.ll
    A llvm/test/CodeGen/RISCV/rv64zbr.ll

  Log Message:
  -----------
  [RISCV] Add IR intrinsic for Zbr extension

Implementation for RISC-V Zbr extension intrinsic.

Header files are included in separate patch in case the name needs to be changed

RV32 / 64:
        crc32b
        crc32h
        crc32w
        crc32cb
        crc32ch
        crc32cw

RV64 Only:
        crc32d
        crc32cd

Reviewed By: craig.topper

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


  Commit: 15ec0ad77ae3b65e791567854da5b4984030d080
      https://github.com/llvm/llvm-project/commit/15ec0ad77ae3b65e791567854da5b4984030d080
  Author: Eric Astor <epastor at google.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/lib/MC/MCParser/MasmParser.cpp
    M llvm/test/tools/llvm-ml/variable.asm

  Log Message:
  -----------
  [ms] [llvm-ml] Fix case-sensitivity for variables and textmacros

Make variables and text-macro references case-insensitive, to match ml.exe.

Also improve error handling for text-macro expansion.

Reviewed By: thakis

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


  Commit: 8e5f3d04f269dbe791076e775f1d1a098cbada01
      https://github.com/llvm/llvm-project/commit/8e5f3d04f269dbe791076e775f1d1a098cbada01
  Author: Fangrui Song <i at maskray.me>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  Log Message:
  -----------
  [SLPVectorizer] Fix divide-by-zero after D99719

Will add a test case later.


  Commit: 1808194590dd2b308bc146406425d5d52e46b7e6
      https://github.com/llvm/llvm-project/commit/1808194590dd2b308bc146406425d5d52e46b7e6
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsRISCV.def
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/Sema/SemaChecking.cpp
    A clang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbb.c
    A clang/test/CodeGen/RISCV/rvb-intrinsics/riscv64-zbb.c
    M llvm/include/llvm/IR/IntrinsicsRISCV.td
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoB.td
    A llvm/test/CodeGen/RISCV/rv32zbb-intrinsic.ll
    A llvm/test/CodeGen/RISCV/rv64zbb-intrinsic.ll

  Log Message:
  -----------
  [RISCV] Add IR intrinsic for Zbb extension

Header files are included in a separate patch in case the name needs to be changed.

RV32 / 64:
orc.b


  Commit: 3a223cd4f3adfebf6db7d7e680ff2da73d3ef5fb
      https://github.com/llvm/llvm-project/commit/3a223cd4f3adfebf6db7d7e680ff2da73d3ef5fb
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/include/llvm/TextAPI/MachO/InterfaceFile.h
    M llvm/include/llvm/TextAPI/MachO/Symbol.h
    M llvm/lib/TextAPI/MachO/InterfaceFile.cpp
    M llvm/lib/TextAPI/MachO/TextStub.cpp

  Log Message:
  -----------
  [TextAPI] run clang-format on violating sections, NFC


  Commit: 1f0b309f24ba7ed144ddcd20cccedc284d990074
      https://github.com/llvm/llvm-project/commit/1f0b309f24ba7ed144ddcd20cccedc284d990074
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsRISCV.def
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/Sema/SemaChecking.cpp
    R clang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbb.c
    R clang/test/CodeGen/RISCV/rvb-intrinsics/riscv64-zbb.c
    M llvm/include/llvm/IR/IntrinsicsRISCV.td
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoB.td
    R llvm/test/CodeGen/RISCV/rv32zbb-intrinsic.ll
    R llvm/test/CodeGen/RISCV/rv64zbb-intrinsic.ll

  Log Message:
  -----------
  Revert "[RISCV] Add IR intrinsic for Zbb extension"

This reverts commit 1808194590dd2b308bc146406425d5d52e46b7e6.

I forgot to change the author.


  Commit: 944adbf285505ac481551157c4ee3cc3c0724900
      https://github.com/llvm/llvm-project/commit/944adbf285505ac481551157c4ee3cc3c0724900
  Author: Levy Hsu <admin at levyhsu.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsRISCV.def
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/Sema/SemaChecking.cpp
    A clang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbb.c
    A clang/test/CodeGen/RISCV/rvb-intrinsics/riscv64-zbb.c
    M llvm/include/llvm/IR/IntrinsicsRISCV.td
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoB.td
    A llvm/test/CodeGen/RISCV/rv32zbb-intrinsic.ll
    A llvm/test/CodeGen/RISCV/rv64zbb-intrinsic.ll

  Log Message:
  -----------
  Recommit "[RISCV] Add IR intrinsic for Zbb extension"

Forgot to amend the Author.

Original commit message:

Header files are included in a separate patch in case the name needs to be changed.

RV32 / 64:
orc.b

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


  Commit: 12c3bca1934a5eb0e23f6265d8fcc11ad6f4dea5
      https://github.com/llvm/llvm-project/commit/12c3bca1934a5eb0e23f6265d8fcc11ad6f4dea5
  Author: Rob Suderman <rob.suderman at gmail.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/IR/LinalgNamedStructuredOpsSpec.tc

  Log Message:
  -----------
  [mlir] Rename linalg.pooling operations to have a FOp postfix for floating point

Linalg pooling operations only support floating point currently but integer
variants will soon be needed. Renaming to uncluse a FOp postfix to clarify.

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


  Commit: f78d932cf23a6521a1f9a08c539d1a00148ebe54
      https://github.com/llvm/llvm-project/commit/f78d932cf23a6521a1f9a08c539d1a00148ebe54
  Author: Levy Hsu <admin at levyhsu.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsRISCV.def
    M clang/lib/CodeGen/CGBuiltin.cpp
    A clang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbc.c
    A clang/test/CodeGen/RISCV/rvb-intrinsics/riscv64-zbc.c
    M llvm/include/llvm/IR/IntrinsicsRISCV.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoB.td
    A llvm/test/CodeGen/RISCV/rv32zbc-intrinsic.ll
    A llvm/test/CodeGen/RISCV/rv64zbc-intrinsic.ll

  Log Message:
  -----------
  [RISCV] Add IR intrinsics for Zbc extension

Head files are included in a separate patch in case the name needs to be changed.

RV32 / 64:
clmul
clmulh
clmulr

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


  Commit: 0499a9d6889050c4b28c0d6d9ec987831ad7de7e
      https://github.com/llvm/llvm-project/commit/0499a9d6889050c4b28c0d6d9ec987831ad7de7e
  Author: Eric Astor <epastor at google.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/lib/MC/MCParser/MasmParser.cpp
    A llvm/test/tools/llvm-ml/hexfloat_error.asm
    A llvm/test/tools/llvm-ml/hexfloat_warn.asm
    M llvm/tools/llvm-ml/Opts.td
    M llvm/tools/llvm-ml/llvm-ml.cpp

  Log Message:
  -----------
  [ms] [llvm-ml] Accept /WX to signal that warnings should be fatal.

Define -fatal-warnings to make warnings fatal, and accept /WX as an ML.EXE compatible alias for it.

Also make sure that if Warning() returns true, we always treat it as an error.

Reviewed By: thakis

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


  Commit: 1bd4986e7cdc124fecbf4b4527039a9a845e61f5
      https://github.com/llvm/llvm-project/commit/1bd4986e7cdc124fecbf4b4527039a9a845e61f5
  Author: Jessica Clarke <jrtc27 at jrtc27.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M clang/lib/Sema/SemaChecking.cpp

  Log Message:
  -----------
  [Sema] Fix Windows build after b001d574d7d9


  Commit: 5311abc7a24e4170e5e6d06f1022da87f1413dd7
      https://github.com/llvm/llvm-project/commit/5311abc7a24e4170e5e6d06f1022da87f1413dd7
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M clang/lib/Sema/SemaChecking.cpp

  Log Message:
  -----------
  [RISCV] Try using toupper instead of std::toupper to make the build bots happy.


  Commit: be7358df1e3066d09171159211b9fa578272585e
      https://github.com/llvm/llvm-project/commit/be7358df1e3066d09171159211b9fa578272585e
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M clang/lib/Sema/SemaChecking.cpp

  Log Message:
  -----------
  Revert "[RISCV] Try using toupper instead of std::toupper to make the build bots happy."

This reverts commit 5311abc7a24e4170e5e6d06f1022da87f1413dd7.

jrtc27 included the proper header in 1bd4986e7cdc124fecbf4b4527039a9a845e61f5
while I was trying to figure out what llvm/clang usually used.


  Commit: 2165c0d389c0b8f7dfd383ea6abd0d9b5d2ee07f
      https://github.com/llvm/llvm-project/commit/2165c0d389c0b8f7dfd383ea6abd0d9b5d2ee07f
  Author: Mike Rice <michael.p.rice at intel.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M clang/docs/OpenMPSupport.rst

  Log Message:
  -----------
  [OPENMP][DOCS]Update status of the supported constructs, NFC.


  Commit: 942cf225650928734e645078beb039b6108080d2
      https://github.com/llvm/llvm-project/commit/942cf225650928734e645078beb039b6108080d2
  Author: Jan Kratochvil <jan.kratochvil at redhat.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/include/llvm/DebugInfo/DWARF/DWARFListTable.h

  Log Message:
  -----------
  [nfc] [llvm] Make DWARFListTableBase::findList const

Reviewed By: dblaikie

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


  Commit: 109305e1046e68a26a99d3398434615ead1a8d2e
      https://github.com/llvm/llvm-project/commit/109305e1046e68a26a99d3398434615ead1a8d2e
  Author: River Riddle <riddleriver at gmail.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M mlir/lib/IR/BuiltinAttributes.cpp
    M mlir/lib/IR/BuiltinTypes.cpp
    M mlir/test/IR/attribute.mlir
    A mlir/test/IR/invalid-unregistered.mlir
    M mlir/unittests/IR/AttributeTest.cpp

  Log Message:
  -----------
  [mlir] Emit errors when creating unregistered attributes/types when not allowed

This was missed when verification for creating unregistered operations was added.

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


  Commit: cb424fee3d6b27dbd38de666382b702100935286
      https://github.com/llvm/llvm-project/commit/cb424fee3d6b27dbd38de666382b702100935286
  Author: Jennifer Yu <jennifer.yu at intel.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M clang/include/clang/AST/OpenMPClause.h
    M clang/include/clang/AST/RecursiveASTVisitor.h
    M clang/include/clang/Sema/Sema.h
    M clang/lib/AST/OpenMPClause.cpp
    M clang/lib/AST/StmtProfile.cpp
    M clang/lib/Basic/OpenMPKinds.cpp
    M clang/lib/Parse/ParseOpenMP.cpp
    M clang/lib/Sema/SemaOpenMP.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/test/OpenMP/dispatch_ast_print.cpp
    M clang/test/OpenMP/dispatch_messages.cpp
    M clang/tools/libclang/CIndex.cpp
    M flang/lib/Semantics/check-omp-structure.cpp
    M llvm/include/llvm/Frontend/OpenMP/OMP.td

  Log Message:
  -----------
  [OPENMP5.1]Initial support for novariants clause.
Added basic parsing/sema/serialization support for the 'novariants' clause.


  Commit: f02c6984d76cb42c26524e41814807fdce793487
      https://github.com/llvm/llvm-project/commit/f02c6984d76cb42c26524e41814807fdce793487
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp

  Log Message:
  -----------
  [NFC][scudo] Split ScudoCombinedTest.BasicCombined

Existing implementations took up to 30 minutues to execute on my setup.
Now it's more convenient to debug a single test.

Reviewed By: cryptoad

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


  Commit: 4be8a26951da9a6e04de327b38dd158f4c8e3280
      https://github.com/llvm/llvm-project/commit/4be8a26951da9a6e04de327b38dd158f4c8e3280
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M clang/docs/InternalsManual.rst
    M clang/include/clang/Basic/Attr.td
    M clang/include/clang/Sema/ParsedAttr.h
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Sema/ParsedAttr.cpp
    M clang/lib/Sema/SemaAttr.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/lib/Sema/SemaStmtAttr.cpp
    M clang/test/Sema/attr-coldhot.c
    M clang/test/Sema/attr-disable-tail-calls.c
    M clang/test/Sema/internal_linkage.c
    M clang/test/SemaCXX/attr-speculative-load-hardening.cpp
    M clang/utils/TableGen/ClangAttrEmitter.cpp

  Log Message:
  -----------
  Use tablegen to diagnose mutually exclusive attributes

Currently, when one or more attributes are mutually exclusive, the
developer adding the attribute has to manually emit diagnostics. In
practice, this is highly error prone, especially for declaration
attributes, because such checking is not trivial. Redeclarations
require you to write a "merge" function to diagnose mutually exclusive
attributes and most attributes get this wrong.

This patch introduces a table-generated way to specify that a group of
two or more attributes are mutually exclusive:

def : MutualExclusions<[Attr1, Attr2, Attr3]>;

This works for both statement and declaration attributes (but not type
attributes) and the checking is done either from the common attribute
diagnostic checking code or from within mergeDeclAttribute() when
merging redeclarations.


  Commit: 223dcdcfbe23affdf17ada7f023ee1872fd76160
      https://github.com/llvm/llvm-project/commit/223dcdcfbe23affdf17ada7f023ee1872fd76160
  Author: Sean Silva <silvasean at google.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Transforms/DialectConversion.h
    M mlir/lib/Transforms/Utils/DialectConversion.cpp

  Log Message:
  -----------
  [mlir] Add optional TypeConverter for materializations.

`ConversionPatternRewriter::applySignatureConversion` did not have a way
to apply a signature conversion that involved materializations.

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


  Commit: 4ea5475a3f3b13c5abaa6d0754bbc3ba72847377
      https://github.com/llvm/llvm-project/commit/4ea5475a3f3b13c5abaa6d0754bbc3ba72847377
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Support/KnownBits.h
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/unittests/Support/KnownBitsTest.cpp

  Log Message:
  -----------
  [KnownBits] Add KnownBits::haveNoCommonBitsSet helper. NFCI.

Include exhaustive test coverage.


  Commit: 0fe8af94688aa03c01913c2001d6a1a911f42ce6
      https://github.com/llvm/llvm-project/commit/0fe8af94688aa03c01913c2001d6a1a911f42ce6
  Author: Jennifer Yu <jennifer.yu at intel.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M clang/lib/CodeGen/CGStmtOpenMP.cpp

  Log Message:
  -----------
  Fix build bot problem with missing OMPC_novariants in switch.


  Commit: eb1b55c652a78f17a913ffbc4369b75cea25f23f
      https://github.com/llvm/llvm-project/commit/eb1b55c652a78f17a913ffbc4369b75cea25f23f
  Author: Rob Suderman <rob.suderman at gmail.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir

  Log Message:
  -----------
  [mlir][tosa] Add tosa.reduce_any and tosa.reduce_all linalg lowering

Added lowerings for Tosa's reduce boolean operations. This includes a fix to
maintain the output rank of reduce operations.

Reviewed By: silvas

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


  Commit: 4c58f333f141e2f6d20ce165223a2362a90fbf45
      https://github.com/llvm/llvm-project/commit/4c58f333f141e2f6d20ce165223a2362a90fbf45
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt

  Log Message:
  -----------
  [NFC][scudo] Add test header int CMake file


  Commit: 46f2fdb840d66c41a3ee751208f42529c185e29e
      https://github.com/llvm/llvm-project/commit/46f2fdb840d66c41a3ee751208f42529c185e29e
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp
    M compiler-rt/lib/scudo/standalone/tests/primary_test.cpp
    M compiler-rt/lib/scudo/standalone/tests/scudo_unit_test.h

  Log Message:
  -----------
  [NFC][scudo] Move macro into a shared header


  Commit: c115c28914a005cc8d0d3ee67eb9071560ebb55a
      https://github.com/llvm/llvm-project/commit/c115c28914a005cc8d0d3ee67eb9071560ebb55a
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M flang/runtime/complex-reduction.c
    M flang/runtime/complex-reduction.h
    M flang/runtime/numeric.cpp
    M flang/runtime/numeric.h
    M flang/runtime/reduction.cpp
    M flang/runtime/reduction.h

  Log Message:
  -----------
  [flang] Address more MSVC build issues with reductions

Move #include <complex.h> to complex-reduction.h, where
it is needed in MSVC builds.

Exclude code that requires a native 128-bit integer type from
compilation by MSVC.

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


  Commit: d302e33b9708524f79db0b3a3450b370fd9fc36f
      https://github.com/llvm/llvm-project/commit/d302e33b9708524f79db0b3a3450b370fd9fc36f
  Author: Muhammad Omair Javaid <omair.javaid at linaro.org>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M lldb/test/API/tools/lldb-vscode/launch/TestVSCode_launch.py

  Log Message:
  -----------
  [LLDB] Sleep for 5 second TestVSCode_launch test_progress_events

This increases sleep time to 5 seconds as the test still fails
intermittently. If failure persists then we will disable/fix the
test.


  Commit: 1d54aa2e0d72a554edfe57e4e3bcfd6e8f3d3514
      https://github.com/llvm/llvm-project/commit/1d54aa2e0d72a554edfe57e4e3bcfd6e8f3d3514
  Author: Jinsong Ji <jji at us.ibm.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/SampleProfile/profile-context-tracker-debug.ll

  Log Message:
  -----------
  [CSSPGO][Test] XFAIL profile-context-tracker-debug.ll on AIX

The case start to fail since https://reviews.llvm.org/D99351.

Looks like to me that the node order within Context Profile Tree depends
on the implmementation of std::hash<std::string>.

Unfortunately, the current clang implementation generate different values on
AIX (or for all big-endian systems?)

On Linux:
main: 2408804140(0x8f936f2c)
external:  896680882(0x357243b2)
externalA:  620231129(0x24f7f9d9)

On AIX:
main:  994322777(0x3b442959)
external: 3548191215(0xd37d19ef)
externalA: 1390365101(0x52df49ad)

XFAIL it first while we discuss and seek for a fix.

Reviewed By: wenlei

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


  Commit: f176803ef1f4050a350e01868d64fe09a674d3bf
      https://github.com/llvm/llvm-project/commit/f176803ef1f4050a350e01868d64fe09a674d3bf
  Author: Nico Weber <thakis at chromium.org>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M compiler-rt/lib/asan/asan_rtl.cpp
    M compiler-rt/lib/asan/asan_thread.cpp
    M compiler-rt/lib/hwasan/hwasan.cpp
    M compiler-rt/lib/lsan/lsan.cpp
    M compiler-rt/lib/memprof/memprof_rtl.cpp
    M compiler-rt/lib/msan/msan.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_common.h
    M compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_linux.h
    M compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_rtems.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_win.cpp
    M compiler-rt/lib/sanitizer_common/tests/sanitizer_common_test.cpp
    M compiler-rt/lib/sanitizer_common/tests/sanitizer_linux_test.cpp
    M compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp

  Log Message:
  -----------
  Revert "[sanitizer] Simplify GetTls with dl_iterate_phdr"

This reverts commit 9be8f8b34d9b150cd1811e3556fe9d0cd735ae29.
This breaks tsan on Ubuntu 16.04:

    $ cat tiny_race.c
    #include <pthread.h>
    int Global;
    void *Thread1(void *x) {
      Global = 42;
      return x;
    }
    int main() {
      pthread_t t;
      pthread_create(&t, NULL, Thread1, NULL);
      Global = 43;
      pthread_join(t, NULL);
      return Global;
    }
    $ out/gn/bin/clang -fsanitize=thread -g -O1 tiny_race.c --sysroot ~/src/chrome/src/build/linux/debian_sid_amd64-sysroot/
    $ docker run -v $PWD:/foo ubuntu:xenial /foo/a.out
    FATAL: ThreadSanitizer CHECK failed: ../../compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp:447 "((thr_beg)) >= ((tls_addr))" (0x7fddd76beb80, 0xfffffffffffff980)
        #0 <null> <null> (a.out+0x4960b6)
        #1 <null> <null> (a.out+0x4b677f)
        #2 <null> <null> (a.out+0x49cf94)
        #3 <null> <null> (a.out+0x499bd2)
        #4 <null> <null> (a.out+0x42aaf1)
        #5 <null> <null> (libpthread.so.0+0x76b9)
        #6 <null> <null> (libc.so.6+0x1074dc)

(Get the sysroot from here: https://commondatastorage.googleapis.com/chrome-linux-sysroot/toolchain/500976182686961e34974ea7bdc0a21fca32be06/debian_sid_amd64_sysroot.tar.xz)

Also reverts follow-on commits:
This reverts commit 58c62fd9768594ec8dd57e8320ba2396bf8b87e5.
This reverts commit 31e541e37587100a5b21378380f54c028fda2d04.


  Commit: 8156d899ab2f31d7c8fa012ca32530adcae228b0
      https://github.com/llvm/llvm-project/commit/8156d899ab2f31d7c8fa012ca32530adcae228b0
  Author: Nico Weber <thakis at chromium.org>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/utils/gn/secondary/compiler-rt/lib/scudo/standalone/tests/BUILD.gn

  Log Message:
  -----------
  [gn build] (manually) port 4c58f333f141


  Commit: 817d98d84186c3508ba7a9a58202e616b23f344a
      https://github.com/llvm/llvm-project/commit/817d98d84186c3508ba7a9a58202e616b23f344a
  Author: Jez Ng <jezng at fb.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M lld/MachO/Arch/ARM64.cpp
    M lld/MachO/Arch/X86_64.cpp
    M lld/MachO/Driver.cpp
    M lld/MachO/DriverUtils.cpp
    M lld/MachO/InputFiles.cpp
    M lld/MachO/InputFiles.h
    M lld/MachO/InputSection.cpp
    M lld/MachO/LTO.cpp
    M lld/MachO/MachOStructs.h
    M lld/MachO/ObjC.cpp
    M lld/MachO/SyntheticSections.cpp
    M lld/MachO/SyntheticSections.h
    M lld/MachO/Target.h
    M lld/MachO/UnwindInfoSection.cpp
    M lld/MachO/Writer.cpp
    M lld/MachO/Writer.h

  Log Message:
  -----------
  [lld-macho][nfc] Refactor in preparation for 32-bit support

The main challenge was handling the different on-disk structures (e.g.
`mach_header` vs `mach_header_64`). I tried to strike a balance between
sprinkling `target->wordSize == 8` checks everywhere (branchy = slow, and ugly)
and templatizing everything (causes code bloat, also ugly). I think I struck a
decent balance by judicious use of type erasure.

Note that LLD-ELF has a similar architecture, though it seems to use more templating.

Linking chromium_framework takes about the same time before and after this
change:

      N           Min           Max        Median           Avg        Stddev
  x  20          4.52          4.67         4.595        4.5945   0.044423204
  +  20           4.5          4.71         4.575         4.582   0.056344803
  No difference proven at 95.0% confidence

Reviewed By: #lld-macho, oontvoo

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


  Commit: 03c41191af1e171a234bf30196189a93da52b8a6
      https://github.com/llvm/llvm-project/commit/03c41191af1e171a234bf30196189a93da52b8a6
  Author: Nico Weber <thakis at chromium.org>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/utils/gn/secondary/compiler-rt/lib/BUILD.gn
    M llvm/utils/gn/secondary/compiler-rt/lib/tsan/BUILD.gn

  Log Message:
  -----------
  [gn build] hook up tsan on macOS too

Mostly just works already.


  Commit: a0e611cf722799174fa92116fa8a5c12ff2fa53e
      https://github.com/llvm/llvm-project/commit/a0e611cf722799174fa92116fa8a5c12ff2fa53e
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rv64zbb-intrinsic.ll

  Log Message:
  -----------
  [RISCV] Add signext attribute to i32 orc.b test for RV64 to match other Zbb tests.

Shows the sext.w at the end that would show up in C code. I'm thinking
orc.b would preserve sign bits from it's input, but I'm not sure.


  Commit: c318746345cc68ecb3c1ac420baa2102e83f716f
      https://github.com/llvm/llvm-project/commit/c318746345cc68ecb3c1ac420baa2102e83f716f
  Author: Fangrui Song <i at maskray.me>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M lld/MachO/Writer.cpp

  Log Message:
  -----------
  [lld-macho] Fix -Wsuggest-override after D99633. NFC


  Commit: bac74a50e99f3d014d6e5a67272fd3b20eeb7fed
      https://github.com/llvm/llvm-project/commit/bac74a50e99f3d014d6e5a67272fd3b20eeb7fed
  Author: Matheus Izvekov <mizvekov at gmail.com>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M clang/test/CXX/drs/dr3xx.cpp
    M clang/test/CXX/expr/expr.prim/expr.prim.lambda/p4-1y.cpp
    M clang/test/CXX/special/class.copy/p33-0x.cpp
    M clang/test/CXX/temp/temp.decls/temp.mem/p5.cpp
    M clang/test/SemaCXX/conversion-function.cpp
    M clang/test/SemaCXX/cxx1y-deduced-return-type.cpp

  Log Message:
  -----------
  [clang] NFC: remove trailing white spaces from some tests

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


  Commit: 2458aa0b9136e7616f529b027d1d478cf699340f
      https://github.com/llvm/llvm-project/commit/2458aa0b9136e7616f529b027d1d478cf699340f
  Author: David Blaikie <dblaikie at gmail.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M clang/utils/TableGen/ClangAttrEmitter.cpp

  Log Message:
  -----------
  Add missing override to clang tblgen AttrEmitter


  Commit: b4f2e8060075761dd0e9727ea01ca0142b4e767f
      https://github.com/llvm/llvm-project/commit/b4f2e8060075761dd0e9727ea01ca0142b4e767f
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-02 (Fri, 02 Apr 2021)

  Changed paths:
    M clang/lib/CodeGen/CGBuiltin.cpp

  Log Message:
  -----------
  [RISCV] Refactor conversion of B extensions to IR intrinsics a little to reduce clang binary size.

These all pass 1 type to getIntrinsic. So rather than assigning
IntrinsicTypes for each builtin which invokes the SmallVector
constructor, just select the intrinsic ID with a switch and
share a single assignment of IntrinsicTypes.


  Commit: 95f448aa86cd3680a9493b2311d9efb41c4d4c01
      https://github.com/llvm/llvm-project/commit/95f448aa86cd3680a9493b2311d9efb41c4d4c01
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M clang/test/Profile/c-unreachable-after-switch.c

  Log Message:
  -----------
  [PGO, test] Fix typo in FileCheck var

Reviewed By: xur

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


  Commit: 17b4e5d4563104130575c6e07e7a8f05a6f7653c
      https://github.com/llvm/llvm-project/commit/17b4e5d4563104130575c6e07e7a8f05a6f7653c
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/BasicAliasAnalysis.h
    M llvm/lib/Analysis/BasicAliasAnalysis.cpp

  Log Message:
  -----------
  [BasicAA] Don't pass through AA metadata (NFCI)

BasicAA itself doesn't make use of AA metadata, but passes it
through to recursive queries and makes it part of the cache key.
Aliasing decisions that are based on AA metadata (i.e. TBAA and
ScopedAA) are based *only* on AA metadata, so checking them with
different pointer values or sizes is not useful, the result will
always be the same.

While this change is a mild compile-time improvement by itself,
the actual goal here is to reduce the size of AA cache keys in
a followup change.

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


  Commit: 9d20eaf9c08c9c22aa0d13f04d8e7895c9ac05d4
      https://github.com/llvm/llvm-project/commit/9d20eaf9c08c9c22aa0d13f04d8e7895c9ac05d4
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/AliasAnalysis.h
    M llvm/lib/Analysis/BasicAliasAnalysis.cpp

  Log Message:
  -----------
  [BasicAA] Don't store AATags in cache key (NFC)

The AAMDNodes part of the MemoryLocation is not used by the BasicAA
cache, so don't store it. This reduces the size of each cache entry
from 112 bytes to 48 bytes.


  Commit: b552e16b0b04cd216753e40990da774f4a400782
      https://github.com/llvm/llvm-project/commit/b552e16b0b04cd216753e40990da774f4a400782
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M llvm/lib/Analysis/Loads.cpp
    M llvm/test/Transforms/InstCombine/load-store-forward.ll

  Log Message:
  -----------
  [Loads] Forward constant vector store to load of first element

InstCombine performs simple forwarding from stores to loads, but
currently only handles the case where the load and store have the
same size. This extends it to also handle a store of a constant
with a larger size followed by a load with a smaller size.

This is implemented through ConstantFoldLoadThroughBitcast() which
is fairly primitive (e.g. does not allow storing a large integer
and then loading a small one), but at least can forward the first
element of a vector store. Unfortunately it seems that we currently
don't have a generic helper for "read a constant value as a different
type", it's all tangled up with other logic in either
ConstantFolding or VNCoercion.

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


  Commit: d66f9c4f1e83e69abf75f97cb5f8fd1dc9422357
      https://github.com/llvm/llvm-project/commit/d66f9c4f1e83e69abf75f97cb5f8fd1dc9422357
  Author: Bjorn Pettersson <bjorn.a.pettersson at ericsson.com>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M llvm/lib/Support/CMakeLists.txt

  Log Message:
  -----------
  Fix build rules for LLVM_WITH_Z3 after D95727

Started to see build errors like this

../lib/Support/Z3Solver.cpp:19:10: fatal error: 'z3.h' file not found
#include <z3.h>
         ^~~~~~
1 error generated.

after commit 43ceb74eb1a5801662419fb66a6bf0d5414f1ec5.

The -isystem path to the Z3_INCLUDE_DIR wen't missing in the compile
commands. No idea why target_include_directories stopped working with
that commit, but using include_directories seem to work better.


  Commit: 7c17f1ea842038252a7e005c1d9baf43b822535d
      https://github.com/llvm/llvm-project/commit/7c17f1ea842038252a7e005c1d9baf43b822535d
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/phaddsub-extract.ll

  Log Message:
  -----------
  [X86][SSE] isHorizontalBinOp - use getTargetShuffleInputs helper (REAPPLIED)

Use the getTargetShuffleInputs helper for all shuffle decoding

Reapplied (after reversion in rGfa0aff6d6960) with fix+test for subvector splitting - we weren't accounting for peeking through bitcasts changing the vector element count of the shuffle sources.


  Commit: 34ec74907d2694818d6c35872b8221692ef22345
      https://github.com/llvm/llvm-project/commit/34ec74907d2694818d6c35872b8221692ef22345
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/X86/clz.ll

  Log Message:
  -----------
  [X86] Add PR47603 test case


  Commit: 89afec348dbd3e5078f176e978971ee2d3b5dec8
      https://github.com/llvm/llvm-project/commit/89afec348dbd3e5078f176e978971ee2d3b5dec8
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/clz.ll

  Log Message:
  -----------
  [X86] Fold xor(truncate(xor(x,c1)),c2) -> xor(truncate(x),xor(truncate(c1),c2))

Fixes PR47603

This should probably be transferable to DAGCombine - the main limitation with the existing trunc(logicop) DAG fold is we don't know if legalization has tried to promote truncated logicops already. We might be able to peek through extensions as well.


  Commit: 1470f94d71c544327f76b85c55cb6f7cb43a6cbb
      https://github.com/llvm/llvm-project/commit/1470f94d71c544327f76b85c55cb6f7cb43a6cbb
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/InstCombine/load-store-forward.ll

  Log Message:
  -----------
  [InstCombine] Add load/store forwarding test with odd size (NFC)

Test the case where the type size doesn't equal the store size,
as suggested by bjope.


  Commit: 3bcb6a389ff4338d76a25b7d9e0e3c40d84695be
      https://github.com/llvm/llvm-project/commit/3bcb6a389ff4338d76a25b7d9e0e3c40d84695be
  Author: Christian Sigg <csigg at google.com>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M mlir/lib/Parser/Parser.cpp

  Log Message:
  -----------
  Silence `-Wunused-private-field` warning on isIsolatedFromAbove.

NDEBUG builds currently warn because it's only used inside an assert.

Reviewed By: mehdi_amini

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


  Commit: 665065821e6ae11deb9796a27b97a399e4bb3b0d
      https://github.com/llvm/llvm-project/commit/665065821e6ae11deb9796a27b97a399e4bb3b0d
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M llvm/docs/ReleaseNotes.rst
    M llvm/include/llvm/CodeGen/FastISel.h
    M llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
    M llvm/lib/Target/AArch64/AArch64FastISel.cpp
    M llvm/lib/Target/ARM/ARMFastISel.cpp
    M llvm/lib/Target/Mips/MipsFastISel.cpp
    M llvm/lib/Target/PowerPC/PPCFastISel.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp
    M llvm/lib/Target/X86/X86FastISel.cpp
    M llvm/test/CodeGen/AArch64/arm64-fast-isel-rem.ll
    M llvm/utils/TableGen/FastISelEmitter.cpp

  Log Message:
  -----------
  [FastISel] Remove kill tracking

This is a followup to D98145: As far as I know, tracking of kill
flags in FastISel is just a compile-time optimization. However,
I'm not actually seeing any compile-time regression when removing
the tracking. This probably used to be more important in the past,
before FastRA was switched to allocate instructions in reverse
order, which means that it discovers kills as a matter of course.

As such, the kill tracking doesn't really seem to serve a purpose
anymore, and just adds additional complexity and potential for
errors. This patch removes it entirely. The primary changes are
dropping the hasTrivialKill() method and removing the kill
arguments from the emitFast methods. The rest is mechanical fixup.

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


  Commit: a78fa73bcf986cf5912d665ecd9620535f480607
      https://github.com/llvm/llvm-project/commit/a78fa73bcf986cf5912d665ecd9620535f480607
  Author: Nico Weber <thakis at chromium.org>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M lld/COFF/LTO.cpp

  Log Message:
  -----------
  Revert "[lld-link] Enable addrsig table in COFF lto"

This reverts commit eabd55b1b2c5e322c3b36cb44348f178692890c8.
Speculative, for crbug.com/1195545


  Commit: c04e1c8b668f4c30c4d492671fb56ecaa7776513
      https://github.com/llvm/llvm-project/commit/c04e1c8b668f4c30c4d492671fb56ecaa7776513
  Author: Jez Ng <jezng at fb.com>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M lld/MachO/Target.h

  Log Message:
  -----------
  [lld-macho] Fix build on 32-bit systems

Summary: Follow-up to D99633.


  Commit: bd115d0991a27855a78122111ec69ada44f7cb34
      https://github.com/llvm/llvm-project/commit/bd115d0991a27855a78122111ec69ada44f7cb34
  Author: Jez Ng <jezng at fb.com>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M lld/MachO/Target.h

  Log Message:
  -----------
  [lld-macho] Another attempt at fixing 32-bit builds


  Commit: 8c95f995db2843d8ac579dbe3a5aa2a5aea40cd3
      https://github.com/llvm/llvm-project/commit/8c95f995db2843d8ac579dbe3a5aa2a5aea40cd3
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/FunctionAttrs/nofree-attributor.ll

  Log Message:
  -----------
  Speculative attempt to stablize a test

New pass manager and old pass manager appear to differ on whether declarations are included in SCCs.  For some reason, which you get appears to depend on build configuration.


  Commit: 122c0e61f1331f7e6106cdb9dfa95cefad5b3653
      https://github.com/llvm/llvm-project/commit/122c0e61f1331f7e6106cdb9dfa95cefad5b3653
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M llvm/utils/TableGen/CodeGenInstruction.cpp
    M llvm/utils/TableGen/CodeGenInstruction.h

  Log Message:
  -----------
  [TableGen] Use StringRef instead of std::string to split up a string that's being parsed. NFCI


  Commit: 7727cc242db77f2767509e1802e63c2b25de429c
      https://github.com/llvm/llvm-project/commit/7727cc242db77f2767509e1802e63c2b25de429c
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrSSE.td
    M llvm/lib/Target/X86/X86SchedBroadwell.td
    M llvm/lib/Target/X86/X86SchedHaswell.td
    M llvm/lib/Target/X86/X86SchedSandyBridge.td
    M llvm/lib/Target/X86/X86SchedSkylakeClient.td
    M llvm/lib/Target/X86/X86SchedSkylakeServer.td
    M llvm/lib/Target/X86/X86Schedule.td
    M llvm/lib/Target/X86/X86ScheduleAtom.td
    M llvm/lib/Target/X86/X86ScheduleBdVer2.td
    M llvm/lib/Target/X86/X86ScheduleBtVer2.td
    M llvm/lib/Target/X86/X86ScheduleSLM.td
    M llvm/lib/Target/X86/X86ScheduleZnver1.td
    M llvm/lib/Target/X86/X86ScheduleZnver2.td

  Log Message:
  -----------
  [NFC][X86] Split VPMOV* AVX2 instructions into their own sched class

At least on all three Zen's, all such instructions cleanly map
into this new class with no overrides needed.


  Commit: b32e76c6d507361b3cf2f1bed6756cd228588236
      https://github.com/llvm/llvm-project/commit/b32e76c6d507361b3cf2f1bed6756cd228588236
  Author: Mircea Trofin <mtrofin at google.com>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M llvm/CMakeLists.txt
    M llvm/lib/Analysis/CMakeLists.txt

  Log Message:
  -----------
  [mlgo] fix build rules

This was prompted by D95727, which had the side-effect to break the
'release' mode build bot for ML-driven policies. The problem is that now
the pre-compiled object files don't get transitively carried through as
'source' anymore; that being said, the previous way of consuming them
was problematic, because it was only working for static builds; in
dynamic builds, the whole tf_xla_runtime was linked, which is
undesirable.

The alternative is to treat tf_xla_runtime as an archive, which then
leads to the desired effect.

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


  Commit: 2554f99b554feb1a882d0dfc9eebc14a7d2d0cf3
      https://github.com/llvm/llvm-project/commit/2554f99b554feb1a882d0dfc9eebc14a7d2d0cf3
  Author: David Blaikie <dblaikie at gmail.com>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M llvm/examples/BrainF/BrainF.cpp
    M llvm/examples/Kaleidoscope/BuildingAJIT/Chapter1/toy.cpp
    M llvm/examples/Kaleidoscope/BuildingAJIT/Chapter2/toy.cpp
    M llvm/examples/Kaleidoscope/BuildingAJIT/Chapter3/toy.cpp
    M llvm/examples/Kaleidoscope/BuildingAJIT/Chapter4/toy.cpp
    M llvm/examples/Kaleidoscope/Chapter8/toy.cpp
    M llvm/examples/Kaleidoscope/Chapter9/toy.cpp

  Log Message:
  -----------
  Opaque pointers: Migrate examples to use load with explicit type


  Commit: 499571ea835daf786626a0db1e12f890b6cd8f8d
      https://github.com/llvm/llvm-project/commit/499571ea835daf786626a0db1e12f890b6cd8f8d
  Author: David Blaikie <dblaikie at gmail.com>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M mlir/lib/IR/OperationSupport.cpp

  Log Message:
  -----------
  Add workaround for false positive in -Wfree-nonheap-object


  Commit: 9f6649dd1249fc5f5d8631d91324ad850a0ed1f0
      https://github.com/llvm/llvm-project/commit/9f6649dd1249fc5f5d8631d91324ad850a0ed1f0
  Author: David Blaikie <dblaikie at gmail.com>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M mlir/lib/Parser/Parser.cpp

  Log Message:
  -----------
  Add void cast to suppress -Wunused-member-variable on assert-only member


  Commit: 30df6d5d6a8537d3ec7d8fe4299289a4c5a74d5c
      https://github.com/llvm/llvm-project/commit/30df6d5d6a8537d3ec7d8fe4299289a4c5a74d5c
  Author: David Blaikie <dblaikie at gmail.com>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M polly/lib/Transform/ScheduleTreeTransform.cpp

  Log Message:
  -----------
  Preprocessor conditionalize some assert-only functions to suppress -Wunused-function


  Commit: 1cc9d949a1233e8b17b3b345ccb67ca7296c1a6c
      https://github.com/llvm/llvm-project/commit/1cc9d949a1233e8b17b3b345ccb67ca7296c1a6c
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M clang/test/CodeGenCXX/cxx2a-compare.cpp

  Log Message:
  -----------
  [C++20, test] Fix use of undef FileCheck variable

Commit f495de43bd5da50286da6020e508d106cfc60f57 forgot two lines when
removing checks for strong and weak equality, resulting in the use of an
undefined FileCheck variable.

Reviewed By: Quuxplusone

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


  Commit: f1d4af4058e84c031df171627e4602139ad351ff
      https://github.com/llvm/llvm-project/commit/f1d4af4058e84c031df171627e4602139ad351ff
  Author: Juneyoung Lee <aqjune at gmail.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/PhaseOrdering/unsigned-multiply-overflow-check.ll

  Log Message:
  -----------
  [InstCombine] Reapply update_test_checks.py to unsigned-multiply-overflow-check.ll (NFC)


  Commit: 732a90da785de2f61dbbf09d6c5fe55937d194b6
      https://github.com/llvm/llvm-project/commit/732a90da785de2f61dbbf09d6c5fe55937d194b6
  Author: Juneyoung Lee <aqjune at gmail.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    A llvm/test/Transforms/InstCombine/pr49688.ll

  Log Message:
  -----------
  [InstCombine] precommit pr49688.ll (NFC)

This is going to be fixed by D99674


  Commit: 6147501617f0a9e7d81bc5fa0182ba669bc2e520
      https://github.com/llvm/llvm-project/commit/6147501617f0a9e7d81bc5fa0182ba669bc2e520
  Author: Juneyoung Lee <aqjune at gmail.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/InstSimplify/icmp-constant.ll

  Log Message:
  -----------
  [InstSimplify] Add a test for folding comparison with a undef vector (NFC)

This is to fix https://reviews.llvm.org/D93990#2666922


  Commit: 5207cde5cb4147155c469e1861427ea9d569bd5a
      https://github.com/llvm/llvm-project/commit/5207cde5cb4147155c469e1861427ea9d569bd5a
  Author: Juneyoung Lee <aqjune at gmail.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/test/Transforms/InstCombine/and-fcmp.ll
    M llvm/test/Transforms/InstCombine/onehot_merge.ll
    M llvm/test/Transforms/InstCombine/pr49688.ll
    M llvm/test/Transforms/InstCombine/signed-truncation-check.ll
    M llvm/test/Transforms/InstCombine/widenable-conditions.ll

  Log Message:
  -----------
  [InstCombine] Conditionally fold select i1 into and/or

This patch fixes llvm.org/pr49688 by conditionally folding select i1 into and/or:

```
select cond, cond2, false
->
and cond, cond2
```

This is not safe if cond2 is poison whereas cond isn’t.

Unconditionally disabling this transformation affects later pipelines that depend on and/or i1s.
To minimize its impact, this patch conservatively checks whether cond2 is an instruction that
creates a poison or its operand creates a poison.
This approach is similar to what InstSimplify's SimplifyWithOpReplaced is doing.

Reviewed By: nikic

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


  Commit: 1b4800c2625912d16867d27e5eec3af27af31557
      https://github.com/llvm/llvm-project/commit/1b4800c2625912d16867d27e5eec3af27af31557
  Author: Timm Bäder <tbaeder at redhat.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M clang/include/clang/Parse/Parser.h
    M clang/include/clang/Sema/ParsedAttr.h
    M clang/lib/Parse/ParseDecl.cpp
    M clang/lib/Parse/ParseDeclCXX.cpp
    M clang/test/AST/sourceranges.cpp
    M clang/test/Parser/cxx0x-attributes.cpp
    M clang/test/SemaCXX/switch-implicit-fallthrough.cpp

  Log Message:
  -----------
  [clang][parser] Set source ranges for GNU-style attributes

Set the source ranges for parsed GNU-style attributes in
ParseGNUAttributes(), the same way that ParseCXX11Attributes() does it.

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


  Commit: a2ea003fcb78b585f79c8458ff2ace8b79d192d0
      https://github.com/llvm/llvm-project/commit/a2ea003fcb78b585f79c8458ff2ace8b79d192d0
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoB.td

  Log Message:
  -----------
  [RISCV] Don't convert fshr/fshl to target specific FSL/FSR node if shift amount is a constant.

As long as it's a constant we can directly pattern match it
without any problems. It's only when it isn't a constant that
we need to add an AND.

In theory this should allow more target independent optimizations
to remain active.


  Commit: c4c5113372477cc87ac33e93cb598a83b2856d7e
      https://github.com/llvm/llvm-project/commit/c4c5113372477cc87ac33e93cb598a83b2856d7e
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2021-04-03 (Sat, 03 Apr 2021)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/tests/combined_test.cpp

  Log Message:
  -----------
  [NFC][scudo] Restore !UseQuarantine check in tests

The check was removed in D99786 as it seems that quarantine is
irrelevant for the just created allocator. However there is internal
issues with tagged memory access.

We should be able to fix iterateOverChunks for taggin later.


  Commit: 602ab188a7e18b97d9af95e17271e8fbee129081
      https://github.com/llvm/llvm-project/commit/602ab188a7e18b97d9af95e17271e8fbee129081
  Author: Jason Molenda <jason at molenda.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M lldb/source/Plugins/Language/ObjC/Cocoa.cpp
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
    M lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h
    M lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCCF.py

  Log Message:
  -----------
  Revert "Add support for fetching signed values from tagged pointers."

This reverts commit 4d9039c8dc2d1f0be1b5ee486d5a83b1614b038a.

This is causing the greendragon bots to fail most of the time when
running TestNSDictionarySynthetic.py.  Reverting until Jim has a chance
to look at this on Monday.  Running the commands from that test from
the command line, it fails 10-13% of the time on my desktop.

This is a revert of Jim's changes in https://reviews.llvm.org/D99694


  Commit: 3ac2541b5c31fd13fa60e7b0692b7f9bf4a41733
      https://github.com/llvm/llvm-project/commit/3ac2541b5c31fd13fa60e7b0692b7f9bf4a41733
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/CorrelatedValuePropagation/and.ll

  Log Message:
  -----------
  [CVP] Add test for and of min (NFC)

The and currently doesn't get optimized away because %a is
overdefined.


  Commit: 72e0846ef87d0d3b5960238bc47fc0cc6f04d848
      https://github.com/llvm/llvm-project/commit/72e0846ef87d0d3b5960238bc47fc0cc6f04d848
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M llvm/lib/Analysis/LazyValueInfo.cpp
    M llvm/test/Transforms/CorrelatedValuePropagation/and.ll

  Log Message:
  -----------
  [LVI] Don't bail on overdefined value in select

Even if one of the operands is overdefined, we may still produce
a non-overdefined result, e.g. due to a min/max operation. This
matches our handling elsewhere, e.g. for binary operators.

The slot poisoning comment refers to a much older LVI cache
implementation.


  Commit: 6e96de8abf272ee6c9b32b221149c2c04892b72a
      https://github.com/llvm/llvm-project/commit/6e96de8abf272ee6c9b32b221149c2c04892b72a
  Author: Butygin <ivan.butygin at intel.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Interfaces/LoopLikeInterface.td

  Log Message:
  -----------
  [mlir][NFC] Fully spell mlir types names in LoopLikeOpInterface, so it can be used in ops defined outside mlir namespace

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


  Commit: 6fbbb093aea52928bb8df4a2212f44ac3bac7733
      https://github.com/llvm/llvm-project/commit/6fbbb093aea52928bb8df4a2212f44ac3bac7733
  Author: Dimitry Andric <dimitry at andric.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M llvm/unittests/Support/TypeTraitsTest.cpp

  Log Message:
  -----------
  Don't check that std::pair is trivially copyable on FreeBSD

As FreeBSD already used libc++ before it changed its ABI, we still use
the non-trivially copyable version of std::pair, which used to be
exposed via `_LIBCPP_TRIVIAL_PAIR_COPY_CTOR`, but more recently via
`_LIBCPP_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR`.

Reviewed By: serge-sans-paille

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


  Commit: 64a52e1e3266d04856850ffa1c5bc7532c511a21
      https://github.com/llvm/llvm-project/commit/64a52e1e3266d04856850ffa1c5bc7532c511a21
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    A llvm/test/tools/llvm-exegesis/X86/uops-POPCNT32rr.s
    M llvm/tools/llvm-exegesis/lib/X86/Target.cpp

  Log Message:
  -----------
  [llvm-exegesis] Don't erroneously refuse to measure POPCNT instruction


  Commit: fd73e4d4b29961d3b7dd8e746cdca9f7a15e1efa
      https://github.com/llvm/llvm-project/commit/fd73e4d4b29961d3b7dd8e746cdca9f7a15e1efa
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/CorrelatedValuePropagation/and.ll
    M llvm/test/Transforms/CorrelatedValuePropagation/basic.ll

  Log Message:
  -----------
  [CVP] Add more tests for select with overdefined operand (NFC)

Also check the case where one operand isn't constant, which isn't
handled right now, because the SPF code requires both operands
to be ranges.

Move the tests to directly check ranges rather than go through an
and, to make it more obvious that this has no relation to bitmasks.


  Commit: d094f3c3c5c447e2241f6d8b7e7379fc01865aeb
      https://github.com/llvm/llvm-project/commit/d094f3c3c5c447e2241f6d8b7e7379fc01865aeb
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    A llvm/test/tools/llvm-exegesis/X86/uops-misspelled-div.s
    M llvm/tools/llvm-exegesis/lib/SnippetFile.cpp

  Log Message:
  -----------
  [llvm-exegesis] SnippetFile: do create source manager in MCContext

This way, once there's an error in the snippet file (like in the test),
llvm-exegesis won't crash with an assertion failure,
but print a nice diagnostic about the problem.


  Commit: 241d42c38226e46ff01b774da3167ec54420bf24
      https://github.com/llvm/llvm-project/commit/241d42c38226e46ff01b774da3167ec54420bf24
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M clang/test/Parser/cxx0x-attributes.cpp

  Log Message:
  -----------
  Speculative fix for failing build bot.

This attempts to resolve an issue found by http://45.33.8.238/macm1/6821/step_6.txt


  Commit: cb4443994e72ab524c70854dc93cd272ac1c4026
      https://github.com/llvm/llvm-project/commit/cb4443994e72ab524c70854dc93cd272ac1c4026
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/SimplifyCFG/switch_create-custom-dl.ll
    M llvm/test/Transforms/SimplifyCFG/switch_create.ll

  Log Message:
  -----------
  [SimplifyCFG] Make test more robust (NFC)

These are supposed to test creation of a switch, so make sure
there is some actual code in the branches. Otherwise this could
be turned into a select instead.


  Commit: 7ca168dd5adabcc01e957fb8486ddf2e22dd37d7
      https://github.com/llvm/llvm-project/commit/7ca168dd5adabcc01e957fb8486ddf2e22dd37d7
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    A llvm/test/Transforms/PhaseOrdering/partialord-ule.ll
    M llvm/test/Transforms/SimplifyCFG/switch-to-select-two-case.ll

  Log Message:
  -----------
  [SimplifyCFG] Add switch-to-select test with two equal cases (NFC)

We handle the case where we have two cases and a default all having
different values, but not the case where two cases happen to have
the same one.

The PhaseOrdering test is a particularly bad example where this
showed up.


  Commit: 9bad7de9a3fb844f1ca2965f35d0c2a3d1e11775
      https://github.com/llvm/llvm-project/commit/9bad7de9a3fb844f1ca2965f35d0c2a3d1e11775
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    M llvm/test/Transforms/PhaseOrdering/partialord-ule.ll
    M llvm/test/Transforms/SimplifyCFG/switch-to-select-two-case.ll

  Log Message:
  -----------
  [SimplifyCFG] Handle two equal cases in switch to select

When converting a switch with two cases and a default into a
select, also handle the denegerate case where two cases have the
same value.

Generate this case directly as

  %or = or i1 %cmp1, %cmp2
  %res = select i1 %or, i32 %val, i32 %default

rather than

  %sel1 = select i1 %cmp1, i32 %val, i32 %default
  %res = select i1 %cmp2, i32 %val, i32 %sel1

as InstCombine is going to canonicalize to the former anyway.


  Commit: f18efb70c43b4c3f92f1bb0c213f6d7e09a09f4a
      https://github.com/llvm/llvm-project/commit/f18efb70c43b4c3f92f1bb0c213f6d7e09a09f4a
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/InstCombine/ctpop.ll

  Log Message:
  -----------
  [InstCombine] add tests for ctpop of power-of-2; NFC

PR48999


  Commit: c0645f13243cf574abd1f8d587dc22943b9dd95d
      https://github.com/llvm/llvm-project/commit/c0645f13243cf574abd1f8d587dc22943b9dd95d
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/test/Transforms/InstCombine/ctpop.ll

  Log Message:
  -----------
  [InstCombine] fold popcount of exactly one bit to shift

This is discussed in https://llvm.org/PR48999 ,
but it does not solve that request.

The difference in the vector test shows that some
other logic transform is limited to scalar types.


  Commit: f6197838827942f212ebd1e18837f3ed1ddb1868
      https://github.com/llvm/llvm-project/commit/f6197838827942f212ebd1e18837f3ed1ddb1868
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M libcxx/test/std/language.support/support.dynamic/alloc.errors/set.new.handler/set_new_handler.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_array.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/new_array_nothrow.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow.pass.cpp
    M libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_nothrow.pass.cpp
    M libcxx/utils/libcxx/test/config.py

  Log Message:
  -----------
  [libcxx] [test] Link against msvcprt as C++ ABI library in tests

This matches what we link the library itself against (set in
CMakeLists.txt). When testing a static library version of libc++,
this is needed for essentially every test due to libc++ object files
requiring it.

Also with libc++ built as a DLL, some tests directly call functions that
are provided by msvcprt (such as std::set_new_handler), thus this fixes
a number of tests in that configuration too.

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


  Commit: e92d2b80c6c913b5c506df06a913a2ecbf761617
      https://github.com/llvm/llvm-project/commit/e92d2b80c6c913b5c506df06a913a2ecbf761617
  Author: Fangrui Song <i at maskray.me>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M clang/lib/Driver/ToolChains/Gnu.cpp
    A clang/test/Driver/Inputs/debian_i386_tree/lib/i386-linux-gnu/.keep
    A clang/test/Driver/Inputs/debian_i386_tree/lib/x86_64-linux-gnu/.keep
    A clang/test/Driver/Inputs/debian_i386_tree/lib64/.keep
    A clang/test/Driver/Inputs/debian_i386_tree/usr/include/c++/10/backward/.keep
    A clang/test/Driver/Inputs/debian_i386_tree/usr/include/i386-linux-gnu/c++/10/.keep
    A clang/test/Driver/Inputs/debian_i386_tree/usr/include/i386-linux-gnu/c++/10/64/.keep
    A clang/test/Driver/Inputs/debian_i386_tree/usr/include/x86_64-linux-gnu/.keep
    A clang/test/Driver/Inputs/debian_i386_tree/usr/lib/gcc/i686-linux-gnu/10/64/crtbegin.o
    A clang/test/Driver/Inputs/debian_i386_tree/usr/lib/gcc/i686-linux-gnu/10/crtbegin.o
    A clang/test/Driver/Inputs/debian_i386_tree/usr/lib/gcc/i686-linux-gnu/10/crtend.o
    A clang/test/Driver/Inputs/debian_i386_tree/usr/lib/i386-linux-gnu/crt1.o
    A clang/test/Driver/Inputs/debian_i386_tree/usr/lib/i386-linux-gnu/crti.o
    A clang/test/Driver/Inputs/debian_i386_tree/usr/lib/i386-linux-gnu/crtn.o
    A clang/test/Driver/Inputs/debian_i386_tree/usr/lib/x86_64-linux-gnu/.keep
    A clang/test/Driver/Inputs/debian_i386_tree/usr/lib64/.keep
    A clang/test/Driver/Inputs/debian_i386_tree/usr/lib64/crt1.o
    A clang/test/Driver/Inputs/debian_i386_tree/usr/lib64/crti.o
    A clang/test/Driver/Inputs/debian_i386_tree/usr/lib64/crtn.o
    M clang/test/Driver/linux-cross.cpp

  Log Message:
  -----------
  [Driver] Detect libstdc++ include paths for native gcc (-m32 and -m64) on Debian i386

Take gcc-8 on Debian i386 as an example. The target-specific libstdc++ search
path (`GPLUSPLUS_TOOL_INCLUDE_DIR`) uses the multiarch name `i386-linux-gnu`,
instead of the triple of the GCC installation `i686-linux-gnu` (the directory
under `usr/lib/gcc/`):

```
/usr/include/c++/8
/usr/include/i386-linux-gnu/c++/8
/usr/include/c++/8/backward
```

Clang currently detects `/usr/lib/gcc/i686-linux-gnu/8/../../../include/i686-linux-gnu/c++/8`.
This patch changes the second i686-linux-gnu to i386-linux-gnu so that
`/usr/include/i386-linux-gnu/c++/8` can be found.

Fix PR49827 - this was somehow regressed by my previous libstdc++ include path
cleanups and fixes for gcc-cross, but it seems that the paths were never properly tested before.

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


  Commit: c2c68a5940dcd9c9e910dad78b96ecdec8517011
      https://github.com/llvm/llvm-project/commit/c2c68a5940dcd9c9e910dad78b96ecdec8517011
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M libcxx/utils/generate_feature_test_macro_components.py

  Log Message:
  -----------
  [libc++] Improve generate_feature_test_macro_components.py.

This improves the naming of the fields `depends`/`internal_depends`. It
also adds the documentation for this script. The changes are based on
D99290 and its review comments.

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


  Commit: a41b5100e43810694c09469bc725f560e7ef239f
      https://github.com/llvm/llvm-project/commit/a41b5100e43810694c09469bc725f560e7ef239f
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M clang/test/CodeGenCUDA/device-stub.cu

  Log Message:
  -----------
  [HIP-Clang, test] Fix use of undef FileCheck var

Commit 8129521318accc44c2a009647572f6ebd3fc56dd changed a line defining
PREFIX in clang test CodeGenCUDA/device-stub.cu into a CHECK-NOT
directive. All following lines using PREFIX are therefore using an
undefined variable since the pattern defining PREFIX is not supposed to
occur and CHECK-NOT are checked independently.

This commit replaces all uses of PREFIX by the regex used to define it,
thereby avoiding the problem.

Reviewed By: yaxunl

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


  Commit: 292726b6443c7d7be4bb03af40cd3f60188b2ff7
      https://github.com/llvm/llvm-project/commit/292726b6443c7d7be4bb03af40cd3f60188b2ff7
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M clang/test/CodeGenCUDA/kernel-stub-name.cu

  Log Message:
  -----------
  [HIP, test] Fix use of undef FileCheck var

Clang test CodeGenCUDA/kernel-stub-name.cu uses never defined DKERN
variable in a CHECK-NOT directive. This commit replace the variable by a
regex, thereby avoiding the issue.

Reviewed By: yaxunl

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


  Commit: 98d5db3e3a3fadc4883d98388e689c1e14a2e90c
      https://github.com/llvm/llvm-project/commit/98d5db3e3a3fadc4883d98388e689c1e14a2e90c
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoB.td

  Log Message:
  -----------
  [RISCV] Lower orc.b intrinsic to RISCVISD::GORCI.

This will allow us to share any future known bits, demaned bits,
or sign bits improvements.


  Commit: 5352490ce613f1bdedaf478765b089b1f0a8be0d
      https://github.com/llvm/llvm-project/commit/5352490ce613f1bdedaf478765b089b1f0a8be0d
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    A llvm/test/Transforms/InstCombine/redundant-left-shift-input-masking-pr49778.ll

  Log Message:
  -----------
  [NFC][InstCombine] Add test for PR49778


  Commit: dceb3e599668496420d41b993100d23eeb7c0ada
      https://github.com/llvm/llvm-project/commit/dceb3e599668496420d41b993100d23eeb7c0ada
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp

  Log Message:
  -----------
  [NFC][InstCombine] Extract canTryToConstantAddTwoShiftAmounts() as helper


  Commit: 2760a808b9916a2839513b7fd7314a464f52481e
      https://github.com/llvm/llvm-project/commit/2760a808b9916a2839513b7fd7314a464f52481e
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
    M llvm/test/Transforms/InstCombine/redundant-left-shift-input-masking-pr49778.ll

  Log Message:
  -----------
  [InstCombine] dropRedundantMaskingOfLeftShiftInput(): check that adding shift amounts doesn't overflow (PR49778)

This is identical to 781d077afb0ed9771c513d064c40170c1ccd21c9,
but for the other function.

For certain shift amount bit widths, we must first ensure that adding
shift amounts is safe, that the sum won't have an unsigned overflow.

Fixes https://bugs.llvm.org/show_bug.cgi?id=49778


  Commit: 27e5bffbf62cb13638102c7d3de1f386e39f0373
      https://github.com/llvm/llvm-project/commit/27e5bffbf62cb13638102c7d3de1f386e39f0373
  Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M libcxx/include/streambuf

  Log Message:
  -----------
  [libc++] Fix the header guard from _LIBCPP_STEAMBUF to _LIBCPP_STREAMBUF.


  Commit: 9abff04e506fe0b86485909434d4dc3b6011c463
      https://github.com/llvm/llvm-project/commit/9abff04e506fe0b86485909434d4dc3b6011c463
  Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M libcxx/test/support/test_macros.h

  Log Message:
  -----------
  [libc++] Fix test_macros.h in the same way as commit 49e5a896 fixed __config.

Since D99515, this header triggers -Wundef on Mac OSX older than 10.15.
This is now fixed.


  Commit: ec575e3b0a462ff7a3d23d0f39a22147606050de
      https://github.com/llvm/llvm-project/commit/ec575e3b0a462ff7a3d23d0f39a22147606050de
  Author: Fangrui Song <i at maskray.me>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M compiler-rt/lib/asan/asan_rtl.cpp
    M compiler-rt/lib/asan/asan_thread.cpp
    M compiler-rt/lib/hwasan/hwasan.cpp
    M compiler-rt/lib/lsan/lsan.cpp
    M compiler-rt/lib/memprof/memprof_rtl.cpp
    M compiler-rt/lib/msan/msan.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_common.h
    M compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_linux.h
    M compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_rtems.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_win.cpp
    M compiler-rt/lib/sanitizer_common/tests/sanitizer_common_test.cpp
    M compiler-rt/lib/sanitizer_common/tests/sanitizer_linux_test.cpp
    M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
    M compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
    M compiler-rt/test/asan/TestCases/Linux/static_tls.cpp

  Log Message:
  -----------
  [sanitizer] Simplify GetTls with dl_iterate_phdr on Linux

This was reverted by f176803ef1f4050a350e01868d64fe09a674d3bf due to
Ubuntu 16.04 x86-64 glibc 2.23 problems.
This commit additionally calls `__tls_get_addr({modid,0})` to work around the
dlpi_tls_data==NULL issues for glibc<2.25
(https://sourceware.org/bugzilla/show_bug.cgi?id=19826)

GetTls is the range of

* thread control block and optional TLS_PRE_TCB_SIZE
* static TLS blocks plus static TLS surplus

On glibc, lsan requires the range to include
`pthread::{specific_1stblock,specific}` so that allocations only referenced by
`pthread_setspecific` can be scanned.

This patch uses `dl_iterate_phdr` to collect TLS blocks. Find the one
with `dlpi_tls_modid==1` as one of the initially loaded module, then find
consecutive ranges. The boundaries give us addr and size.

This allows us to drop the glibc internal `_dl_get_tls_static_info` and
`InitTlsSize` entirely. Use the simplified method with non-Android Linux for
now, but in theory this can be used with *BSD and potentially other ELF OSes.

This simplification enables D99566 for TLS Variant I architectures.

See https://reviews.llvm.org/D93972#2480556 for analysis on GetTls usage
across various sanitizers.

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


  Commit: 4708a05da03038271a1a2c1cbdfe78aebfaa7afc
      https://github.com/llvm/llvm-project/commit/4708a05da03038271a1a2c1cbdfe78aebfaa7afc
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rv64zbb-intrinsic.ll

  Log Message:
  -----------
  [RISCV] Use gorciw for i32 orc.b intrinsic when Zbp is enabled.

The W version of orc.b does not exist in Zbp so we need to use
gorci encoding. If we have Zbp, we can use gorciw which can avoid a
sext.w in some cases.


  Commit: 10ed479d7303af7c6e2528185c7e7cd318c9172c
      https://github.com/llvm/llvm-project/commit/10ed479d7303af7c6e2528185c7e7cd318c9172c
  Author: Dave Lee <davelee.com at gmail.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M lldb/test/API/lang/objc/modules-app-update/TestClangModulesAppUpdate.py
    M lldb/test/API/lang/objc/modules-app-update/foo.m

  Log Message:
  -----------
  [lldb] Import ObjectiveC module instead of Foundation in test

Use `@import ObjectiveC` instead of `@import Foundation`, as the former is all
that's needed, and results in fewer clang modules being built.

This results in the following clang modules *not* being built for this test.

ApplicationServices
CFNetwork
ColorSync
CoreFoundation
CoreGraphics
CoreServices
CoreText
DiskArbitration
Dispatch
Foundation
IOKit
ImageIO
Security
XPC
_Builtin_intrinsics
launch
libkern
os_object
os_workgroup

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


  Commit: d1a1798e51a30fbf537e9fd8931a49b504f37a25
      https://github.com/llvm/llvm-project/commit/d1a1798e51a30fbf537e9fd8931a49b504f37a25
  Author: Dave Lee <davelee.com at gmail.com>
  Date:   2021-04-04 (Sun, 04 Apr 2021)

  Changed paths:
    M lldb/test/API/commands/expression/context-object-objc/Makefile
    M lldb/test/API/commands/expression/context-object-objc/main.m
    M lldb/test/API/commands/expression/namespace_local_var_same_name_obj_c/main.mm
    M lldb/test/API/commands/frame/recognizer/Makefile
    M lldb/test/API/commands/frame/recognizer/main.m
    M lldb/test/API/functionalities/type_lookup/Makefile
    M lldb/test/API/functionalities/type_lookup/main.mm
    M lldb/test/API/lang/objc/bitfield_ivars/Makefile
    M lldb/test/API/lang/objc/bitfield_ivars/main.m
    M lldb/test/API/lang/objc/blocks/Makefile
    M lldb/test/API/lang/objc/blocks/ivars-in-blocks.h
    M lldb/test/API/lang/objc/blocks/ivars-in-blocks.m
    M lldb/test/API/lang/objc/conflicting-definition/Test/Test.h
    M lldb/test/API/lang/objc/forward-decl/Container.h
    M lldb/test/API/lang/objc/forward-decl/Makefile
    M lldb/test/API/lang/objc/forward-decl/main.m
    M lldb/test/API/lang/objc/foundation/my-base.m
    M lldb/test/API/lang/objc/hidden-ivars/InternalDefiner.h
    M lldb/test/API/lang/objc/ivar-IMP/Makefile
    M lldb/test/API/lang/objc/ivar-IMP/myclass.h
    M lldb/test/API/lang/objc/ivar-IMP/myclass.m
    M lldb/test/API/lang/objc/ivar-IMP/repro.m
    M lldb/test/API/lang/objc/modules-objc-property/main.m
    M lldb/test/API/lang/objc/modules-objc-property/myModule.h
    M lldb/test/API/lang/objc/objc-ivar-offsets/Makefile
    M lldb/test/API/lang/objc/objc-ivar-offsets/objc-ivar-offsets.h
    M lldb/test/API/lang/objc/objc-super/Makefile
    M lldb/test/API/lang/objc/objc-super/class.m
    M lldb/test/API/lang/objcxx/class-name-clash/myobject.mm
    M lldb/test/API/python_api/class_members/main.mm
    M lldb/test/API/python_api/objc_type/Makefile
    M lldb/test/API/python_api/objc_type/main.m

  Log Message:
  -----------
  [lldb] Replace unneeded use of Foundation with ObjectiveC in tests (NFC)

When referencing `NSObject`, it's enough to import `objc/NSObject.h`. Importing `Foundation` is unnecessary in these cases.

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


  Commit: 907af8439672e47cf978b43625d9318dd34e13ab
      https://github.com/llvm/llvm-project/commit/907af8439672e47cf978b43625d9318dd34e13ab
  Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/AMDGPU.cpp
    M clang/lib/Driver/ToolChains/Cuda.cpp
    M clang/lib/Driver/ToolChains/HIP.cpp
    M clang/test/CodeGenCUDA/flush-denormals.cu
    M clang/test/Driver/cuda-flush-denormals-to-zero.cu
    M clang/test/Driver/hip-device-libs.hip

  Log Message:
  -----------
  [CUDA][HIP] rename -fcuda-flush-denormals-to-zero

Rename it to -fgpu-flush-denormals-to-zero.

Reviewed by: Artem Belevich

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


  Commit: a91628cb59f6cb11416ed6f9264f5740ceb933d3
      https://github.com/llvm/llvm-project/commit/a91628cb59f6cb11416ed6f9264f5740ceb933d3
  Author: Max Kazantsev <mkazantsev at azul.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    A llvm/test/Transforms/GVN/PRE/pre-loop-load.ll

  Log Message:
  -----------
  [Test] Add tests for various scenarios of PRE of a loop load


  Commit: 1a218589964a0889cf318527d7b7bc6aab1eac1e
      https://github.com/llvm/llvm-project/commit/1a218589964a0889cf318527d7b7bc6aab1eac1e
  Author: Max Kazantsev <mkazantsev at azul.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    A llvm/test/Transforms/GVN/PRE/pre-loop-load-new-pm.ll
    M llvm/test/Transforms/GVN/PRE/pre-loop-load.ll

  Log Message:
  -----------
  [Test] Split out new and old PM tests

This is to avoid sophistication of checks as the old and new PM behave
differently with fix patches.


  Commit: 67133ee1d280230091d85a839d9a9f6665b6265f
      https://github.com/llvm/llvm-project/commit/67133ee1d280230091d85a839d9a9f6665b6265f
  Author: Max Kazantsev <mkazantsev at azul.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/GVN/PRE/lpre-call-wrap.ll

  Log Message:
  -----------
  [Test] Auto-update checks in a test


  Commit: 1628486548420f85b3467026d54663d1516404f5
      https://github.com/llvm/llvm-project/commit/1628486548420f85b3467026d54663d1516404f5
  Author: Sylvestre Ledru <sylvestre at debian.org>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M clang/include/clang/Driver/Options.td

  Log Message:
  -----------
  ignore -flto= options recognized by GCC

as requested in https://bugs.llvm.org/show_bug.cgi?id=49553, submitting the proposed changes to just ignore the -flto= options which are recognized by GCC ("auto" and "jobserver").

GCC supports -flto=<auto|jobserver|<N> to select the parallelity for LTO builds. LLVM also has -flto-jobs=<N>, which only seems to have a meaning when used with -flto=thin?

The attached patch just ignores the values "auto" and "jobserver". that doesn't change anything in functionality.  Another option would be to map these values to either "thin" or "full", maybe in presence of the -ffat-lto-objects option?

-flto=<n> could also be translated to -flto-jobs=<N>.

Reviewed By: tejohnson

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


  Commit: 5c25ff8739e013fec39bc8c6fc1df16e0e5041ca
      https://github.com/llvm/llvm-project/commit/5c25ff8739e013fec39bc8c6fc1df16e0e5041ca
  Author: Josh Berdine <josh at berdine.net>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/bindings/ocaml/analysis/CMakeLists.txt
    M llvm/bindings/ocaml/analysis/analysis_ocaml.c
    M llvm/bindings/ocaml/llvm/llvm_ocaml.c
    M llvm/bindings/ocaml/llvm/llvm_ocaml.h
    M llvm/bindings/ocaml/target/CMakeLists.txt
    M llvm/bindings/ocaml/target/target_ocaml.c

  Log Message:
  -----------
  [OCaml] Fix unsafe uses of Store_field

Using `Store_field` to initialize fields of blocks allocated with
`caml_alloc_small` is unsafe. The fields of blocks allocated by
`caml_alloc_small` are not initialized, and `Store_field` calls the
OCaml GC write barrier. If the uninitialized value of a field happens
to point into the OCaml heap, then it will e.g. be added to a conflict
set or followed and have what the GC thinks are color bits
changed. This leads to crashes or memory corruption.

This diff fixes a few (I think all) instances of this problem. Some of
these are creating option values. OCaml 4.12 has a dedicated
`caml_alloc_some` function for this, so this diff adds a compatible
function with a version check to avoid conflict. With that, macros for
accessing option values are also added.

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


  Commit: 58bb9222dd298a2a38b76817df18323167f095f7
      https://github.com/llvm/llvm-project/commit/58bb9222dd298a2a38b76817df18323167f095f7
  Author: Josh Berdine <josh at berdine.net>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/bindings/ocaml/llvm/llvm_ocaml.c

  Log Message:
  -----------
  [OCaml] Minor optimizations by avoiding double initialization

In several functions an OCaml block is allocated and no further OCaml
allocation functions (or other functions that might trigger allocation
or collection) are performed before the block is fully initialized. In
these cases, it is safe and slightly more efficient to allocate an
uninitialized block.

Also, the code does not become more complex after the non-initializing
allocation, since in the case that a non-small allocation is made, the
initial values stored are definitely not pointers to OCaml young
blocks, and so initializing via direct assignment is still safe. That
is, in general if `caml_alloc_small` is called, initializing it with
direct assignments is safe, but if `caml_alloc_shr` is
called (e.g. for a block larger than `Max_young_wosize`), then
`caml_initialize` should be called to inform the GC of a potential
major to minor pointer. But if the initial value is definitely not a
young OCaml block, direct assignment is safe.

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


  Commit: e5b7fedc573c8f7977c8a4800144df6d341d8887
      https://github.com/llvm/llvm-project/commit/e5b7fedc573c8f7977c8a4800144df6d341d8887
  Author: Josh Berdine <josh at berdine.net>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/bindings/ocaml/llvm/llvm_ocaml.c

  Log Message:
  -----------
  [OCaml] Code simplification using option allocation functions

Using the `caml_alloc_some` and `ptr_to_option` functions that
allocate OCaml `option` values enables simplifications in many
cases. These simplifications also result in avoiding unnecessary
double initialization in many cases, so yield a minor optimization as
well.

Also, change to avoid using the old unprefixed functions such as
`alloc_small` and instead use the current `caml_alloc_small`.

A few of the changed functions were slightly rewritten in the
early-return style.

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


  Commit: 2c82ea1849dc77eedeedb59a73c870717229ed37
      https://github.com/llvm/llvm-project/commit/2c82ea1849dc77eedeedb59a73c870717229ed37
  Author: Josh Berdine <josh at berdine.net>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/bindings/ocaml/llvm/llvm_ocaml.c

  Log Message:
  -----------
  [OCaml] Code simplification using string allocation functions

Using the `cstr_to_string` function that allocates and initializes an
OCaml `string` value enables simplifications in several cases. This
change also has the effect of avoiding calling `memcpy` on NULL
pointers even if only 0 bytes are to be copied.

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


  Commit: d9bbd9864578204fb0bdeea685d0bcfda2f0aecf
      https://github.com/llvm/llvm-project/commit/d9bbd9864578204fb0bdeea685d0bcfda2f0aecf
  Author: Josh Berdine <josh at berdine.net>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/bindings/ocaml/llvm/llvm_ocaml.c

  Log Message:
  -----------
  [OCaml] Omit unnecessary GC root registrations

The current code does not follow the simple interface to the OCaml GC,
where GC roots are registered conservatively, only initializing
allocations are performed, etc. This is intentional, as stated in the
opening file comments. On the other hand, the current code does
register GC roots in many situations where it is not strictly
necessary. This diff omits many of them.

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


  Commit: 8e4fc55a0e544d7d370a2d7689dbb622b2caefca
      https://github.com/llvm/llvm-project/commit/8e4fc55a0e544d7d370a2d7689dbb622b2caefca
  Author: Josh Berdine <josh at berdine.net>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/bindings/ocaml/all_backends/all_backends_ocaml.c
    M llvm/bindings/ocaml/analysis/analysis_ocaml.c
    M llvm/bindings/ocaml/backends/backend_ocaml.c
    M llvm/bindings/ocaml/bitreader/bitreader_ocaml.c
    M llvm/bindings/ocaml/bitwriter/bitwriter_ocaml.c
    M llvm/bindings/ocaml/debuginfo/debuginfo_ocaml.c
    M llvm/bindings/ocaml/executionengine/executionengine_ocaml.c
    M llvm/bindings/ocaml/irreader/irreader_ocaml.c
    M llvm/bindings/ocaml/linker/linker_ocaml.c
    M llvm/bindings/ocaml/llvm/llvm_ocaml.c
    M llvm/bindings/ocaml/llvm/llvm_ocaml.h
    M llvm/bindings/ocaml/target/target_ocaml.c
    M llvm/bindings/ocaml/transforms/ipo/ipo_ocaml.c
    M llvm/bindings/ocaml/transforms/passmgr_builder/passmgr_builder_ocaml.c
    M llvm/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c
    M llvm/bindings/ocaml/transforms/utils/transform_utils_ocaml.c
    M llvm/bindings/ocaml/transforms/vectorize/vectorize_ocaml.c

  Log Message:
  -----------
  [NFC][OCaml] Remove vestigial CAMLprim declarations

The CAMLprim macro has not been needed since OCaml 3.11, and is
defined to the empty string. This diff removes all instances of it.

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


  Commit: f4d156aed0f8335a522a032f714b40d06449e720
      https://github.com/llvm/llvm-project/commit/f4d156aed0f8335a522a032f714b40d06449e720
  Author: Josh Berdine <josh at berdine.net>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/bindings/ocaml/bitreader/bitreader_ocaml.c
    M llvm/bindings/ocaml/debuginfo/debuginfo_ocaml.c
    M llvm/bindings/ocaml/executionengine/executionengine_ocaml.c
    M llvm/bindings/ocaml/irreader/irreader_ocaml.c
    M llvm/bindings/ocaml/linker/linker_ocaml.c
    M llvm/bindings/ocaml/llvm/llvm_ocaml.c
    M llvm/bindings/ocaml/target/target_ocaml.c
    M llvm/bindings/ocaml/transforms/passmgr_builder/passmgr_builder_ocaml.c
    M llvm/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c
    M llvm/bindings/ocaml/transforms/utils/transform_utils_ocaml.c

  Log Message:
  -----------
  [NFC][OCaml] Reformat to clean up following CAMLprim removal

The removal of CAMLprim left the code in need of an application of
clang-format. There are various other changes made by clang-format
which it seems ought to be rolled together into this diff.

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


  Commit: 4dd3e0feca9295c615f06f9f96f1e7ccdd63bb3d
      https://github.com/llvm/llvm-project/commit/4dd3e0feca9295c615f06f9f96f1e7ccdd63bb3d
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M clang/test/CodeGen/debug-info-extern-call.c

  Log Message:
  -----------
  [DebugInfo, CallSites, test] Fix use of undef FileCheck var

Clang test CodeGen/debug-info-extern-call.c tries to check for the
absence of a sequence of instructions with several CHECK-NOT with one of
those directives using a variable defined in another. However CHECK-NOT
are checked independently so that is using a variable defined in a
pattern that should not occur in the input.

This commit removes the CHECK-NOT for the retained line attribute
definition since the CHECK-NOT on the compile unit will already check
that there is no retained lines.

Reviewed By: djtodoro

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


  Commit: 2523fe8a6895ee3affe0bdb04629451279dd97e4
      https://github.com/llvm/llvm-project/commit/2523fe8a6895ee3affe0bdb04629451279dd97e4
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/X86/clz.ll

  Log Message:
  -----------
  [X86] Add second PR47603 test case

We had coverage for the xor(trunc(xor(x,31)),31) case but not xor(zext(xor(x,31)),31)


  Commit: 36d4f6d7f8ad08bb99da544f2b6ca96e34977839
      https://github.com/llvm/llvm-project/commit/36d4f6d7f8ad08bb99da544f2b6ca96e34977839
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/clz.ll

  Log Message:
  -----------
  [X86] Fold xor(zext(xor(x,c1)),c2) -> xor(zext(x),xor(zext(c1),c2))

Fixes PR47603 (second case) by extending rG89afec348dbd3e5078f176e978971ee2d3b5dec8


  Commit: 0d0514dd9b81bdf7a2ba5f5ef1d36d6e96201a0b
      https://github.com/llvm/llvm-project/commit/0d0514dd9b81bdf7a2ba5f5ef1d36d6e96201a0b
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    A llvm/test/CodeGen/RISCV/vector-abi.ll

  Log Message:
  -----------
  [RISCV] Add a test showing incorrect codegen

This patch adds a test which shows how the compiler incorrectly sets the
size and alignment of a stack object used to indirectly pass vector
types to functions.

In the particular example, the test passes a <4 x i8> vector type to a
function and creates a stack object of size and alignment equal to 4
bytes. However, the code generated to set up that parameter has been
scalarized and stores each element as individual XLEN-sized values. Thus
on RV32 this stores 16 bytes and on RV64 32 bytes, both of which clobber
the stack. Similarly, the alignment is set up as the alignment
of the vector type, which is not necessarily the natural alignment of XLEN.

Reviewed By: luismarques

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


  Commit: 5f57793c4fe47aa3486a755768b43189351cbd15
      https://github.com/llvm/llvm-project/commit/5f57793c4fe47aa3486a755768b43189351cbd15
  Author: Alex Orlov <aorlov at accesssoftek.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/include/llvm/DebugInfo/Symbolize/DIPrinter.h
    M llvm/lib/DebugInfo/Symbolize/DIPrinter.cpp
    M llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp

  Log Message:
  -----------
  * NFC. Refactored DIPrinter for better support of new print styles.

This patch introduces a DIPrinter interface to implement by different output style printer implementations. DIPrinterGNU and DIPrinterLLVM implement the GNU and LLVM output style printing respectively. No functional changes.

This refactoring clarifies and simplifies the code, and makes a new output style addition easier.

Reviewed By: jhenderson, dblaikie

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


  Commit: 13a84f21d7ce032186a060bfdf8bce5cc6d2daf4
      https://github.com/llvm/llvm-project/commit/13a84f21d7ce032186a060bfdf8bce5cc6d2daf4
  Author: Paul C. Anagnostopoulos <paul at windfall.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/docs/TableGen/ProgRef.rst

  Log Message:
  -----------
  [TableGen] [docs] Correct a couple of mistakes; use 'true' and 'false' in examples

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


  Commit: 00a84f9a7f8916e024243e2685db4c11d06ecf75
      https://github.com/llvm/llvm-project/commit/00a84f9a7f8916e024243e2685db4c11d06ecf75
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll

  Log Message:
  -----------
  [SLP]Improve vectorization of the CmpInst instructions.

During vectorization better to postpone the vectorization of the CmpInst
instructions till the end of the basic block. Otherwise we may vectorize
it too early and may miss some vectorization patterns, like reductions.

Reworked part of D57059

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


  Commit: 2aebb7cb3c88b1446515563653c821e8165b3aaf
      https://github.com/llvm/llvm-project/commit/2aebb7cb3c88b1446515563653c821e8165b3aaf
  Author: Peyton, Jonathan L <jonathan.l.peyton at intel.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M openmp/runtime/src/kmp_os.h
    M openmp/runtime/src/kmp_safe_c_api.h

  Log Message:
  -----------
  [OpenMP] Fix incorrect KMP_STRLEN() macro

The second argument to the strnlen_s(str, size) function should be
sizeof(str) when str is a true array of characters with known size
(instead of just a char*). Use type traits to determine if first
parameter is a character array and use the correct size based on that
trait.

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


  Commit: 660c4e57b4a7ac71f9595f31bfdec114369f4ca0
      https://github.com/llvm/llvm-project/commit/660c4e57b4a7ac71f9595f31bfdec114369f4ca0
  Author: Stefan Pintilie <stefanp at ca.ibm.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M lld/ELF/SyntheticSections.cpp
    A lld/test/ELF/ppc64-check-missing-tocbase.s
    M lld/test/ELF/ppc64-ld-got-dtprel.s
    M lld/test/ELF/ppc64-reloc-got-pcrel34.s
    M lld/test/ELF/ppc64-tls-gd.s
    M lld/test/ELF/ppc64-tls-ie.s
    M lld/test/ELF/ppc64-tls-missing-gdld.s
    M lld/test/ELF/ppc64-tls-pcrel-gd.s
    M lld/test/ELF/ppc64-tls-pcrel-ie.s

  Log Message:
  -----------
  [PowerPC] Fix issue where binary uses a .got but is missing a .TOC.

>From the PowerPC ELFv2 ABI section 4.2.3. Global Offset Table.
```
The GOT consists of an 8-byte header that contains the TOC base (the first TOC
base when multiple TOCs are present), followed by an array of 8-byte addresses.
```

Due to the introduction of PC Relative code it is now possible to require a GOT
without having a .TOC. symbol in the object that is being linked. Since LLD uses
the .TOC. symbol to determine whether or not a GOT is required the GOT header is
not setup correctly and the 8-byte header is missing.

This patch allows the Power PC GOT setup to happen when an element is added to
the GOT instead of at the very begining. When this header is added a .TOC.
symbol is also added.

Reviewed By: MaskRay

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


  Commit: 803b79221edfc2517e6bfc373e5f55609565b0e4
      https://github.com/llvm/llvm-project/commit/803b79221edfc2517e6bfc373e5f55609565b0e4
  Author: Erik Pilkington <erik.pilkington at gmail.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M clang/lib/Sema/SemaExprObjC.cpp
    A clang/test/SemaObjCXX/bridge-cast-redecl.mm

  Log Message:
  -----------
  [SemaObjC] Fix a -Wbridge-cast false-positive

Clang used to emit a bad -Wbridge-cast diagnostic on the cast in the attached
test. This was because, after 09abecef7, struct __CFString was not added to
lookup, so the objc_bridge attribute wasn't getting duplicated onto the most
recent declaration, causing us to fail to find it in getObjCBridgeAttr. This
patch fixes this by instead walking through the redeclarations to find an
appropriate bridge attribute. rdar://72823399

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


  Commit: 3f0df4d7b0269623cfcd0ef6272e6a3a2ad9066d
      https://github.com/llvm/llvm-project/commit/3f0df4d7b0269623cfcd0ef6272e6a3a2ad9066d
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    A llvm/test/CodeGen/RISCV/rvv/extload-truncstore.ll
    A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-extload-truncstore.ll

  Log Message:
  -----------
  [RISCV] Expand scalable-vector truncstores and extloads

Caught in internal testing, these operations are assumed legal by
default, even for scalable vector types. Expand them back into separate
truncations and stores, or loads and extensions.

Also add explicit fixed-length vector tests for these operations, even
though they should have been correct already.

Reviewed By: craig.topper

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


  Commit: 62a94b725cd201367547b22fdb3b0751cda982d5
      https://github.com/llvm/llvm-project/commit/62a94b725cd201367547b22fdb3b0751cda982d5
  Author: John Paul Adrian Glaubitz <glaubitz at physik.fu-berlin.de>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/lib/Target/M68k/M68kAsmPrinter.cpp
    M llvm/lib/Target/M68k/M68kTargetMachine.cpp
    M llvm/lib/Target/M68k/MCTargetDesc/M68kMCTargetDesc.cpp
    M llvm/lib/Target/M68k/TargetInfo/M68kTargetInfo.cpp

  Log Message:
  -----------
  [M68k] Mark public functions with the LLVM_EXTERNAL_VISIBILITY macro

In 0dbcb3639451, most most target symbols were made hidden by default
with the public ones marked with LLVM_EXTERNAL_VISIBILITY. When the
M68k target was added, this particular change was forgotten so that
external tools cannot make use of the public M68k target functions
in libLLVM.so. Thus, add the missing LLVM_EXTERNAL_VISIBILITY macro
to all public target functions in the M68k backend.

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


  Commit: c0b0da4684908b8e8143c0762fc766c1a2a5849f
      https://github.com/llvm/llvm-project/commit/c0b0da4684908b8e8143c0762fc766c1a2a5849f
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/InstCombine/select-binop-cmp.ll

  Log Message:
  -----------
  [InstCombine] add test for miscompile from select value equivalence; NFC

The new test is reduced from:
https://llvm.org/PR49832
...but we already show a potential miscompile in the existing test too.


  Commit: c590a9880d7a660a1c911fce07f3d01ea18be2df
      https://github.com/llvm/llvm-project/commit/c590a9880d7a660a1c911fce07f3d01ea18be2df
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/test/Transforms/InstCombine/select-binop-cmp.ll

  Log Message:
  -----------
  [InstCombine] fix potential miscompile in select value equivalence

As shown in the example based on:
https://llvm.org/PR49832
...and the existing test, we can't substitute
a vector value because the equality compare
replacement that we are attempting requires
that the comparison is true for the entire
value. Vector select can be partly true/false.


  Commit: af3a839c70adb97323fa3d122e9ab44522dca74e
      https://github.com/llvm/llvm-project/commit/af3a839c70adb97323fa3d122e9ab44522dca74e
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-bitcast.ll
    A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-bitcast.ll

  Log Message:
  -----------
  [RISCV] Add support for bitcasts between scalars and fixed-length vectors

This patch supports bitcasts from scalar types to fixed-length vectors
and vice versa. It custom-lowers and custom-legalizes them to
EXTRACT_VECTOR_ELT/INSERT_VECTOR_ELT operations, using a single-element
vectors to hold the scalar where appropriate.

Previously, some of these would fail to select, others would be expanded
through stack loads and stores. Effort was made to ensure the codegen
avoids the stack for both legal and illegal scalar types.

Some of the codegen could be improved, but on first glance it looks like
a general optimization of EXTRACT_VECTOR_ELT when extracting an i64
element on RV32.

Reviewed By: craig.topper

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


  Commit: 7416e8a8431a0f2711be9d16e111d1781b74df96
      https://github.com/llvm/llvm-project/commit/7416e8a8431a0f2711be9d16e111d1781b74df96
  Author: Arnamoy Bhattacharyya <arnamoy.bhattacharyya at huawei.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/Flang.cpp
    M flang/include/flang/Frontend/CompilerInvocation.h
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/Frontend/FrontendActions.cpp
    M flang/test/Driver/driver-help-hidden.f90
    M flang/test/Driver/driver-help.f90
    A flang/test/Driver/werror_parse.f
    A flang/test/Driver/werror_scan.f
    A flang/test/Driver/werror_sema.f90
    A flang/test/Driver/werror_wrong.f90
    M flang/tools/f18/f18.cpp

  Log Message:
  -----------
  [flang][driver] Add options for -Werror

With the option given, warnings are treated as error.

Reviewed By: awarzynski

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


  Commit: df64f471d1e26fc1e9e2f9cdcfc77c063fe55b56
      https://github.com/llvm/llvm-project/commit/df64f471d1e26fc1e9e2f9cdcfc77c063fe55b56
  Author: Charusso <dabis.csaba98 at gmail.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicSize.h
    M clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp
    M clang/lib/StaticAnalyzer/Core/DynamicSize.cpp
    M clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
    M clang/lib/StaticAnalyzer/Core/MemRegion.cpp
    M clang/test/Analysis/explain-svals.cpp

  Log Message:
  -----------
  [analyzer] DynamicSize: Store the dynamic size

This patch introduces a way to store the size.

Reviewed By: NoQ

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


  Commit: 6a82ace5f27fda10963f8b7b12299b61458d4904
      https://github.com/llvm/llvm-project/commit/6a82ace5f27fda10963f8b7b12299b61458d4904
  Author: Ta-Wei Tu <tu.da.wei at gmail.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LoopFuse.cpp
    A llvm/test/Transforms/LoopFusion/pr48060.ll

  Log Message:
  -----------
  [LoopFusion] Bails out if only the second candidate is guarded (PR48060)

If only the second candidate loop is guarded while the first one is not, fusioning
two loops might not be valid but this check is currently missing.

Fixes https://bugs.llvm.org/show_bug.cgi?id=48060

Reviewed By: sidbav

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


  Commit: 31ad5c14fefa66085eff3629c0cc8393556ba849
      https://github.com/llvm/llvm-project/commit/31ad5c14fefa66085eff3629c0cc8393556ba849
  Author: Arnamoy Bhattacharyya <arnamoy.bhattacharyya at huawei.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M flang/test/Semantics/canondo07.f90
    M flang/test/Semantics/canondo08.f90
    M flang/test/Semantics/canondo09.f90
    M flang/test/Semantics/canondo10.f90
    M flang/test/Semantics/canondo11.f90
    M flang/test/Semantics/canondo12.f90
    M flang/test/Semantics/canondo13.f90
    M flang/test/Semantics/canondo14.f90
    M flang/test/Semantics/canondo15.f90
    M flang/test/Semantics/canondo16.f90
    M flang/test/Semantics/canondo17.f90
    M flang/test/Semantics/canondo18.f90
    M flang/test/Semantics/canondo19.f90
    M flang/test/Semantics/dosemantics03.f90
    M flang/test/Semantics/io10.f90
    M flang/test/Semantics/label01.F90
    M flang/test/Semantics/resolve103.f90

  Log Message:
  -----------
  [flang][driver] Modify the existing test cases that use -Mstandard in f18, to use -pedantic and %flang_fc1 to share with the new driver

Reviewed By: awarzynski

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


  Commit: 89d210fe1a7a1c6cbf926df0595b6f107bc491d5
      https://github.com/llvm/llvm-project/commit/89d210fe1a7a1c6cbf926df0595b6f107bc491d5
  Author: Charusso <dabis.csaba98 at gmail.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M clang/docs/analyzer/developer-docs/DebugChecks.rst
    M clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
    M clang/test/Analysis/expr-inspection.cpp
    A clang/test/Analysis/memory-model.cpp

  Log Message:
  -----------
  [analyzer] DynamicSize: Debug facility

This patch adds two debug functions to ExprInspectionChecker to dump out
the dynamic extent and element count of symbolic values:
dumpExtent(), dumpElementCount().


  Commit: 9b3df78b4c2ab7a7063e532165492e1ffa38d401
      https://github.com/llvm/llvm-project/commit/9b3df78b4c2ab7a7063e532165492e1ffa38d401
  Author: Charusso <dabis.csaba98 at gmail.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    A clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicExtent.h
    R clang/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicSize.h
    M clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp
    M clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/CheckPlacementNew.cpp
    M clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/MPI-Checker/MPIChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/StdLibraryFunctionsChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp
    M clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp
    M clang/lib/StaticAnalyzer/Core/CMakeLists.txt
    A clang/lib/StaticAnalyzer/Core/DynamicExtent.cpp
    R clang/lib/StaticAnalyzer/Core/DynamicSize.cpp
    M clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
    M clang/lib/StaticAnalyzer/Core/MemRegion.cpp
    M clang/lib/StaticAnalyzer/Core/RegionStore.cpp

  Log Message:
  -----------
  [analyzer] DynamicSize: Rename 'size' to 'extent'


  Commit: 5abc7250122701012414733fc3273c01a45ffd29
      https://github.com/llvm/llvm-project/commit/5abc7250122701012414733fc3273c01a45ffd29
  Author: LLVM GN Syncbot <llvmgnsyncbot at gmail.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/utils/gn/secondary/clang/lib/StaticAnalyzer/Core/BUILD.gn

  Log Message:
  -----------
  [gn build] Port 9b3df78b4c2a


  Commit: 0116d04d04f20e9ae62ba847075840c3cb298080
      https://github.com/llvm/llvm-project/commit/0116d04d04f20e9ae62ba847075840c3cb298080
  Author: Cyndy Ishida <cyndy_ishida at apple.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M clang/docs/ClangFormattedStatus.rst
    M lld/MachO/Config.h
    M lld/MachO/Driver.cpp
    M lld/MachO/DriverUtils.cpp
    M lld/MachO/InputFiles.cpp
    M lld/MachO/InputFiles.h
    M lld/lib/ReaderWriter/MachO/File.h
    M llvm/include/llvm/Object/TapiFile.h
    M llvm/include/llvm/Object/TapiUniversal.h
    A llvm/include/llvm/TextAPI/Architecture.def
    A llvm/include/llvm/TextAPI/Architecture.h
    A llvm/include/llvm/TextAPI/ArchitectureSet.h
    A llvm/include/llvm/TextAPI/InterfaceFile.h
    R llvm/include/llvm/TextAPI/MachO/Architecture.def
    R llvm/include/llvm/TextAPI/MachO/Architecture.h
    R llvm/include/llvm/TextAPI/MachO/ArchitectureSet.h
    R llvm/include/llvm/TextAPI/MachO/InterfaceFile.h
    R llvm/include/llvm/TextAPI/MachO/PackedVersion.h
    R llvm/include/llvm/TextAPI/MachO/Platform.h
    R llvm/include/llvm/TextAPI/MachO/Symbol.h
    R llvm/include/llvm/TextAPI/MachO/Target.h
    R llvm/include/llvm/TextAPI/MachO/TextAPIReader.h
    R llvm/include/llvm/TextAPI/MachO/TextAPIWriter.h
    A llvm/include/llvm/TextAPI/PackedVersion.h
    A llvm/include/llvm/TextAPI/Platform.h
    A llvm/include/llvm/TextAPI/Symbol.h
    A llvm/include/llvm/TextAPI/Target.h
    A llvm/include/llvm/TextAPI/TextAPIReader.h
    A llvm/include/llvm/TextAPI/TextAPIWriter.h
    M llvm/lib/Object/TapiUniversal.cpp
    A llvm/lib/TextAPI/Architecture.cpp
    A llvm/lib/TextAPI/ArchitectureSet.cpp
    M llvm/lib/TextAPI/CMakeLists.txt
    A llvm/lib/TextAPI/InterfaceFile.cpp
    R llvm/lib/TextAPI/MachO/Architecture.cpp
    R llvm/lib/TextAPI/MachO/ArchitectureSet.cpp
    R llvm/lib/TextAPI/MachO/InterfaceFile.cpp
    R llvm/lib/TextAPI/MachO/PackedVersion.cpp
    R llvm/lib/TextAPI/MachO/Platform.cpp
    R llvm/lib/TextAPI/MachO/Symbol.cpp
    R llvm/lib/TextAPI/MachO/Target.cpp
    R llvm/lib/TextAPI/MachO/TextAPIContext.h
    R llvm/lib/TextAPI/MachO/TextStub.cpp
    R llvm/lib/TextAPI/MachO/TextStubCommon.cpp
    R llvm/lib/TextAPI/MachO/TextStubCommon.h
    A llvm/lib/TextAPI/PackedVersion.cpp
    A llvm/lib/TextAPI/Platform.cpp
    A llvm/lib/TextAPI/Symbol.cpp
    A llvm/lib/TextAPI/Target.cpp
    A llvm/lib/TextAPI/TextAPIContext.h
    A llvm/lib/TextAPI/TextStub.cpp
    A llvm/lib/TextAPI/TextStubCommon.cpp
    A llvm/lib/TextAPI/TextStubCommon.h
    M llvm/tools/llvm-ifs/llvm-ifs.cpp
    M llvm/tools/llvm-libtool-darwin/llvm-libtool-darwin.cpp
    M llvm/tools/llvm-lipo/llvm-lipo.cpp
    M llvm/unittests/TextAPI/TextStubHelpers.h
    M llvm/unittests/TextAPI/TextStubV1Tests.cpp
    M llvm/unittests/TextAPI/TextStubV2Tests.cpp
    M llvm/unittests/TextAPI/TextStubV3Tests.cpp
    M llvm/unittests/TextAPI/TextStubV4Tests.cpp

  Log Message:
  -----------
  [TextAPI] move source code files out of subdirectory, NFC

TextAPI/ELF has moved out into InterfaceStubs, so theres no longer a
need to seperate out TextAPI between formats.

Reviewed By: ributzka, int3, #lld-macho

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


  Commit: 982396ddd7df1b359d55809bc9d1aff4ed227c95
      https://github.com/llvm/llvm-project/commit/982396ddd7df1b359d55809bc9d1aff4ed227c95
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/lib/Support/CMakeLists.txt

  Log Message:
  -----------
  Revert "Fix build rules for LLVM_WITH_Z3 after D95727"

This reverts commit d66f9c4f1e83e69abf75f97cb5f8fd1dc9422357.

This was a follow up fix for 43ceb74eb1a5801662419fb66a6bf0d5414f1ec5, which
will be reverted.


  Commit: e07e08f3662ad821b9da99daedf2445ed1b18d2c
      https://github.com/llvm/llvm-project/commit/e07e08f3662ad821b9da99daedf2445ed1b18d2c
  Author: Tom Stellard <tstellar at redhat.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/cmake/modules/AddLLVM.cmake
    M llvm/tools/llvm-shlib/CMakeLists.txt

  Log Message:
  -----------
  Revert "llvm-shlib: Create object libraries for each component and link against them"

This reverts commit 43ceb74eb1a5801662419fb66a6bf0d5414f1ec5.

This caused some build failures: https://bugs.llvm.org/show_bug.cgi?id=49818


  Commit: 6103f3f39cc909d87ac374a5294748053bb8c7b8
      https://github.com/llvm/llvm-project/commit/6103f3f39cc909d87ac374a5294748053bb8c7b8
  Author: Nico Weber <thakis at chromium.org>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/utils/gn/secondary/llvm/lib/TextAPI/BUILD.gn

  Log Message:
  -----------
  [gn build] (manually) port 0116d04d04f2


  Commit: dc1a08caeff415712ff8299b21a4c26fced777db
      https://github.com/llvm/llvm-project/commit/dc1a08caeff415712ff8299b21a4c26fced777db
  Author: Sam Clegg <sbc at chromium.org>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    R lld/test/wasm/export.ll
    A lld/test/wasm/export.s

  Log Message:
  -----------
  [lld][WebAssembly] Rewrite exports test in assembly. NFC

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


  Commit: ea069aebccd317f350be3cabdcd848476616d4da
      https://github.com/llvm/llvm-project/commit/ea069aebccd317f350be3cabdcd848476616d4da
  Author: MaheshRavishankar <ravishankarm at google.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/Passes.h
    M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
    M mlir/include/mlir/Dialect/Linalg/Utils/Utils.h
    M mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp
    M mlir/lib/Dialect/Linalg/Transforms/ElementwiseToLinalg.cpp
    M mlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp

  Log Message:
  -----------
  [mlir][Linalg] NFC: Move populatePatterns* method into linalg namespace.

The moved `populate` methods are only relevant to Linalg
operations. So they are better of in `linalg` namespace.  Also rename
`populateLinalgTensorOpsFusionPatterns` to
`populateElementwiseOpsFusionPatterns`. This makes the scope of these
patterns explicit and disambiguates it with fusion on tensors using
tile + fuse.

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


  Commit: 7078ef47225091a9a42357b9ebf92e83a5665d43
      https://github.com/llvm/llvm-project/commit/7078ef47225091a9a42357b9ebf92e83a5665d43
  Author: Jennifer Yu <jennifer.yu at intel.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M clang/include/clang/AST/OpenMPClause.h
    M clang/include/clang/AST/RecursiveASTVisitor.h
    M clang/include/clang/Sema/Sema.h
    M clang/lib/AST/OpenMPClause.cpp
    M clang/lib/AST/StmtProfile.cpp
    M clang/lib/Basic/OpenMPKinds.cpp
    M clang/lib/CodeGen/CGStmtOpenMP.cpp
    M clang/lib/Parse/ParseOpenMP.cpp
    M clang/lib/Sema/SemaOpenMP.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/test/OpenMP/dispatch_ast_print.cpp
    M clang/test/OpenMP/dispatch_messages.cpp
    M clang/tools/libclang/CIndex.cpp
    M flang/lib/Semantics/check-omp-structure.cpp
    M llvm/include/llvm/Frontend/OpenMP/OMP.td

  Log Message:
  -----------
  [OPENMP51]Initial support for nocontext clause.

Added basic parsing/sema/serialization support for the 'nocontext' clause.

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


  Commit: 4db18d62afa8b17efec1c992fc10e9eafc1cefaf
      https://github.com/llvm/llvm-project/commit/4db18d62afa8b17efec1c992fc10e9eafc1cefaf
  Author: Ricky Taylor <rickytaylor26 at gmail.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/include/llvm/MC/MCAsmInfo.h
    M llvm/include/llvm/MC/MCParser/MCAsmLexer.h
    M llvm/lib/MC/MCParser/AsmLexer.cpp
    M llvm/lib/Target/M68k/MCTargetDesc/M68kMCAsmInfo.cpp
    A llvm/test/MC/AsmParser/motorola_integers.s
    M llvm/tools/llvm-mc/llvm-mc.cpp

  Log Message:
  -----------
  [M68k] Add support for Motorola literal syntax to AsmParser

These look like $00A0cf for hex and  %001010101 for binary. They are used in Motorola assembly syntax.

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


  Commit: 7edda698c0f090fbdbcc414625ff8161c25f0df4
      https://github.com/llvm/llvm-project/commit/7edda698c0f090fbdbcc414625ff8161c25f0df4
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td

  Log Message:
  -----------
  [RISCV] Move VSLIDE1UP_VX pattern out of a loop that includes FP types.

FP would need VFSLIDE1UP_VF which uses an FP register.


  Commit: be11bd1e9f01694fd859c6c5fa343cbb26ee3042
      https://github.com/llvm/llvm-project/commit/be11bd1e9f01694fd859c6c5fa343cbb26ee3042
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/test/Analysis/ValueTracking/known-non-equal.ll

  Log Message:
  -----------
  [tests] Precommmit tests for reasoning about equality of recurrences


  Commit: b0e59dd6e1f60bb28470768c322fe815b599f3a7
      https://github.com/llvm/llvm-project/commit/b0e59dd6e1f60bb28470768c322fe815b599f3a7
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp

  Log Message:
  -----------
  Extract a helper for figuring out if an operator is invertible [nfc]

For use in an uncoming patch.  Left out the phi case (which could otherwise fit in this framework) as it would cause infinite recursion in said patch.  We can probably also leverage this in instcombine to ensure we keep the two sets of related analysis and transforms in sync.


  Commit: 1d4c7429a72c07f455ac739776e9be76f5605bce
      https://github.com/llvm/llvm-project/commit/1d4c7429a72c07f455ac739776e9be76f5605bce
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/test/Analysis/ValueTracking/known-non-equal.ll

  Log Message:
  -----------
  Fix copy paste errors in tests from be11bd1e

Several of these weren't testing what was intented.


  Commit: af2837675a707fe7b2c1012038567ba1411045c5
      https://github.com/llvm/llvm-project/commit/af2837675a707fe7b2c1012038567ba1411045c5
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td

  Log Message:
  -----------
  [RISCV] Split RISCVISD::VMV_S_XF_VL into separate integer and FP.

It's a bit silly, but it allows us to write stricter type
constraints for isel. There's still some extra type checks in
the generated table due to some type interference limitations
around HWMode.


  Commit: 780a47285a7839faa8cfa6b670e96371e083011c
      https://github.com/llvm/llvm-project/commit/780a47285a7839faa8cfa6b670e96371e083011c
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td

  Log Message:
  -----------
  [RISCV] Add SDTCisInt to the SDTRVVSlide1 since it is only used for vslide1up.vx/vslide1down.vx.

The scalar type is already marked as XLenVT. The floating point
version would need a different rule.


  Commit: 828ec9e9e5da8a2e7d1bfa523b9a712658ee6ffc
      https://github.com/llvm/llvm-project/commit/828ec9e9e5da8a2e7d1bfa523b9a712658ee6ffc
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M clang/test/CodeGenOpenCL/fpmath.cl

  Log Message:
  -----------
  [OpenCL, test] Fix use of undef FileCheck var

Clang test CodeGenOpenCL/fpmath.cl uses a variable defined in an earlier
CHECK-NOT directive. However, by definition the pattern in that
directive is not supposed to occur so no variable will be defined. This
commit solves the issue by using a regex match with the same regex as in
the definition. It also changes the definition into a regex match since
no variable is going to be defined.

Reviewed By: yaxunl

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


  Commit: 78e5cf66fec52c8e6e665c3c9e64d38498d94a5d
      https://github.com/llvm/llvm-project/commit/78e5cf66fec52c8e6e665c3c9e64d38498d94a5d
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/InstSimplify/select.ll

  Log Message:
  -----------
  [InstSimplify] add test for vector select with operand replacement; NFC

We need a sibling fix to c590a9880d7a
( https://llvm.org/PR49832 ) to avoid miscompiling.


  Commit: e2a0f512eacad0699be9660f668726d7deb2cd75
      https://github.com/llvm/llvm-project/commit/e2a0f512eacad0699be9660f668726d7deb2cd75
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/lib/Analysis/InstructionSimplify.cpp
    M llvm/test/Transforms/InstSimplify/select.ll

  Log Message:
  -----------
  [InstSimplify] fix potential miscompile in select value equivalence

This is the sibling fix to c590a9880d7a -
as there, we can't subsitute a vector value the equality
compare replacement that we are trying requires that the
comparison is true for the entire value. Vector select
can be partly true/false.


  Commit: 740e3497629ccd0926c3f850a07147aef0b464ff
      https://github.com/llvm/llvm-project/commit/740e3497629ccd0926c3f850a07147aef0b464ff
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M libcxx/utils/ci/buildkite-pipeline.yml
    M libcxx/utils/ci/run-buildbot

  Log Message:
  -----------
  [libcxx] [ci] Add a Windows CI buildkite configuration

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


  Commit: a46f59a747a7273cc439efaf3b4f98d8b63d2f20
      https://github.com/llvm/llvm-project/commit/a46f59a747a7273cc439efaf3b4f98d8b63d2f20
  Author: Aart Bik <ajcbik at google.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    A mlir/test/Integration/Sparse/CPU/sparse_matvec.mlir
    R mlir/test/Integration/Sparse/sparse_matvec.mlir

  Log Message:
  -----------
  [mlir][sparse] move new test to right directory structure

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


  Commit: 9711118d2edf7aed133616de1eb7f633c263c4b5
      https://github.com/llvm/llvm-project/commit/9711118d2edf7aed133616de1eb7f633c263c4b5
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Parse/ParseStmt.cpp
    M clang/lib/Sema/SemaStmt.cpp
    M clang/lib/Sema/SemaStmtAttr.cpp
    M clang/lib/Sema/TreeTransform.h

  Log Message:
  -----------
  Rework the way statement attributes are processed; NFC

This changes our approach to processing statement attributes to be more
similar to how we process declaration attributes. Namely,
ActOnAttributedStmt() now calls ProcessStmtAttributes() instead of
vice-versa, and there is now an interface split between building an
attributed statement where you already have a list of semantic
attributes and building an attributed statement with attributes from
the parser.

This should make it easier to support statement attributes that are
dependent on a template. In that case, you would add a
TransformFooAttr() function in TreeTransform.h to perform the semantic
checking (morally similar to how Sema::InstantiateAttrs() already works
for declaration attributes) when transforming the semantic attribute at
instantiation time.


  Commit: 0e92cbd6a652c4f86fa76a3af2820009d5b6c300
      https://github.com/llvm/llvm-project/commit/0e92cbd6a652c4f86fa76a3af2820009d5b6c300
  Author: Nico Weber <thakis at chromium.org>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M compiler-rt/lib/asan/asan_rtl.cpp
    M compiler-rt/lib/asan/asan_thread.cpp
    M compiler-rt/lib/hwasan/hwasan.cpp
    M compiler-rt/lib/lsan/lsan.cpp
    M compiler-rt/lib/memprof/memprof_rtl.cpp
    M compiler-rt/lib/msan/msan.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_common.h
    M compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_linux.h
    M compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_rtems.cpp
    M compiler-rt/lib/sanitizer_common/sanitizer_win.cpp
    M compiler-rt/lib/sanitizer_common/tests/sanitizer_common_test.cpp
    M compiler-rt/lib/sanitizer_common/tests/sanitizer_linux_test.cpp
    M compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
    M compiler-rt/lib/tsan/rtl/tsan_platform_linux.cpp
    M compiler-rt/test/asan/TestCases/Linux/static_tls.cpp

  Log Message:
  -----------
  Revert "[sanitizer] Simplify GetTls with dl_iterate_phdr on Linux"

This reverts commit ec575e3b0a462ff7a3d23d0f39a22147606050de.
Still doesn't work, see https://crbug.com/1196037


  Commit: 8c7bf2f93da9b64b07509f67552d592a86260ff5
      https://github.com/llvm/llvm-project/commit/8c7bf2f93da9b64b07509f67552d592a86260ff5
  Author: Peter Steinfeld <psteinfeld at nvidia.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M flang/lib/Evaluate/fold-integer.cpp
    M flang/lib/Evaluate/formatting.cpp
    M flang/lib/Semantics/type.cpp
    M flang/test/Semantics/assign04.f90
    A flang/test/Semantics/resolve104.f90
    M flang/test/Semantics/resolve89.f90

  Log Message:
  -----------
  [flang] Improve constant folding for type parameter inquiries

We were not folding type parameter inquiries for the form 'var%typeParam'
where 'typeParam' was a KIND or LEN type parameter of a derived type and 'var'
was a designator of the derived type.  I fixed this by adding code to the
function 'FoldOperation()' for 'TypeParamInquiry's to handle this case.  I also
cleaned up the code for the case where there is no designator.

In order to make the error messages correctly refer to both the points of
declaration and instantiation, I needed to add an argument to the function
'InstantiateIntrinsicType()' for the location of the instantiation.

I also changed the formatting of 'TypeParamInquiry' to correctly format this
case.  I also added tests for both KIND and LEN type parameter inquiries in
resolve104.f90.

Making these changes revealed an error in resolve89.f90 and caused one of the
error messages in assign04.f90 to be different.

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


  Commit: 944a2fe7633fcdd600de2772364e406514d794da
      https://github.com/llvm/llvm-project/commit/944a2fe7633fcdd600de2772364e406514d794da
  Author: MaheshRavishankar <ravishankarm at google.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
    M mlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp
    A mlir/test/Dialect/Linalg/fusion-elementwise-options.mlir
    M mlir/test/lib/Transforms/CMakeLists.txt
    A mlir/test/lib/Transforms/TestLinalgElementwiseFusion.cpp
    M mlir/tools/mlir-opt/mlir-opt.cpp

  Log Message:
  -----------
  [mlir][Linalg] Add callbacks to fusion of elementwise operations to control fusion.

Right now Elementwise operations fusion in Linalg fuses everything it
can. This can run up against resource limits of the target hardware
without some checks. This patch adds a callback function that clients
can use to implement a cost function. When two elementwise operations
are deemed structurally fusable, the callback can be used to control
if the fusion applies.

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


  Commit: 391514436db49043820b526623e8747c1d6872ce
      https://github.com/llvm/llvm-project/commit/391514436db49043820b526623e8747c1d6872ce
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rvv/vslide1up-rv32.ll

  Log Message:
  -----------
  [RISCV] Add more RV32 vslide1up intrinsic test cases. NFC

For some reason we only had 1 test case. This synchronizes the
test with vslide1down so we have the same number of tests for both.


  Commit: 30b3aab3299a1b6e4e262866e88f0aac0ecdee09
      https://github.com/llvm/llvm-project/commit/30b3aab3299a1b6e4e262866e88f0aac0ecdee09
  Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/include/llvm/CodeGen/AtomicExpandUtils.h
    M llvm/lib/CodeGen/AtomicExpandPass.cpp
    A llvm/test/CodeGen/AMDGPU/expand-atomicrmw-syncscope.ll
    M llvm/test/CodeGen/AMDGPU/fp64-atomics-gfx90a.ll
    M llvm/test/CodeGen/AMDGPU/global-atomics-fp.ll
    M llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-rmw-fadd.ll

  Log Message:
  -----------
  Copy syncscope when expanding atomicrmw into cmpxchg loop

Fixes: SWDEV-280070

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


  Commit: be0ced03ba9bfab6fcb1fd2c263a33bc6a359cd8
      https://github.com/llvm/llvm-project/commit/be0ced03ba9bfab6fcb1fd2c263a33bc6a359cd8
  Author: Jim Ingham <jingham at apple.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M lldb/source/Plugins/Language/ObjC/Cocoa.cpp
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCClassDescriptorV2.h
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
    M lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h
    M lldb/test/API/functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCCF.py

  Log Message:
  -----------
  Revert "Revert "Add support for fetching signed values from tagged pointers.""

This reverts commit 602ab188a7e18b97d9af95e17271e8fbee129081.

The patch replicated an lldbassert for a certain type of NSNumber for tagged
pointers.  This really shouldn't be an assert since we don't do anything wrong
with these numbers, we just don't print a summary.  So this patch changed the
lldbassert to a log message in reverting the revert.


  Commit: dc8d864e3a91938e11e8aea38bb43c9fdef361bc
      https://github.com/llvm/llvm-project/commit/dc8d864e3a91938e11e8aea38bb43c9fdef361bc
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp

  Log Message:
  -----------
  Address minor post commit feedback on 0e59dd


  Commit: c25c22d5f9b7e56c0c350982b5ec41095c5a0a05
      https://github.com/llvm/llvm-project/commit/c25c22d5f9b7e56c0c350982b5ec41095c5a0a05
  Author: Christopher Di Bella <cjdb at google.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M libcxx/include/__functional_base
    M libcxx/include/concepts
    M libcxx/include/functional

  Log Message:
  -----------
  [libcxx] moves `std::invoke` into `__functional_base`

Including `<concepts>` in other standard library headers (such as
`<iterator>`) creates circular dependencies due to `<functional>`.
Since `<concepts>` only needs `std::invoke` from `<functional>`, the
easiest, fastest, and cleanest way to eliminate the circular dep is to
move `std::invoke` into `__functional_base`.

This has the added advantage of `<concepts>` not transitively importing
`<functional>`.

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


  Commit: 812ce7f9beb2b828032ddbd01d3aba4c1f9d76da
      https://github.com/llvm/llvm-project/commit/812ce7f9beb2b828032ddbd01d3aba4c1f9d76da
  Author: patacca <patacca at autistici.org>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M polly/include/polly/CodeGen/IslAst.h
    M polly/lib/CodeGen/IslAst.cpp

  Log Message:
  -----------
  [Polly] Refactoring isInnermost() from isl to use the C++ wrapper

Polly use algorithms from the Integer Set Library (isl), which is a library written in C and which is incompatible with the rest of the LLVM as it is written in C++.

Changes made:
 - Refactoring isInnermost() to take C++ bindings instead of the plain isl C api.
 - Addition of manage_copy() when needed to get the reference for the isl_ast_node object

Reviewed By: Meinersbur

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


  Commit: 13deb6aac723e5694d404f21ee136e9773eb27a6
      https://github.com/llvm/llvm-project/commit/13deb6aac723e5694d404f21ee136e9773eb27a6
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/test/Analysis/ValueTracking/known-non-equal.ll

  Log Message:
  -----------
  Exact ashr/lshr don't loose any set bits and are thus trivially invertible

Use that fact to improve isKnownNonEqual.


  Commit: ea0e2ca1acb20781515c23850ec1ee7476909b2f
      https://github.com/llvm/llvm-project/commit/ea0e2ca1acb20781515c23850ec1ee7476909b2f
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/include/llvm/IR/Instruction.h
    M llvm/lib/IR/Instruction.cpp
    M llvm/lib/Transforms/Scalar/SROA.cpp
    A llvm/test/Transforms/SROA/invariant-group.ll

  Log Message:
  -----------
  [SROA] Allow SROA on pointers with invariant group intrinsic uses

When we are able to SROA an alloca, we know all uses of it, meaning we
don't have to preserve the invariant group intrinsics and metadata.

It's possible that we could lose information regarding redundant
loads/stores, but that's unlikely to have any real impact since right
now the only user is Clang and vtables.

Reviewed By: rnk

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


  Commit: 58ccbd0d08fe0a9b4b06d47d0be20f19717919f8
      https://github.com/llvm/llvm-project/commit/58ccbd0d08fe0a9b4b06d47d0be20f19717919f8
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/lib/Analysis/ValueTracking.cpp

  Log Message:
  -----------
  Comment adjustments for a rename


  Commit: cb1028a0b95f5f4dd3924d81e8f8d9198b597ff4
      https://github.com/llvm/llvm-project/commit/cb1028a0b95f5f4dd3924d81e8f8d9198b597ff4
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-store-fp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-store-int.ll

  Log Message:
  -----------
  [RISCV] When custom iseling masked stores, copy the mask into V0 instead of virtual register.

I missed a few intrinsics in 3dd4aa7d09599507d1f801ffe4bec4c9eebbb8da
when I did this for masked loads and masked segment loads/stores.

Found while trying to share more code between these custom isel
functions.


  Commit: 872c57c90ac66a7a190fd575e4258eb06cec624e
      https://github.com/llvm/llvm-project/commit/872c57c90ac66a7a190fd575e4258eb06cec624e
  Author: Yevgeny Rouban <yrouban at azul.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/test/Other/loop-pm-invalidation.ll
    M llvm/test/Other/new-pm-O0-defaults.ll
    M llvm/test/Other/new-pm-lto-defaults.ll
    M llvm/test/Other/new-pm-thinlto-defaults.ll
    M llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
    M llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
    M llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
    M llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
    M llvm/test/Transforms/LoopRotate/pr35210.ll
    M llvm/test/Transforms/SCCP/ipsccp-preserve-analysis.ll

  Log Message:
  -----------
  [NewPM] Change tests to run them without PreserveCFGChecker. NFC

Change several pass sequence sensitive tests to be indifferent
to the PreserveCFGChecker by explicitly settting the option
-verify-cfg-preserved=0. It is a preparation step that allows
a redesign of PreserveCFGChecker.

Reviewed By: skatkov

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


  Commit: 0057ec8034d8d99ffbcf088b208484d36a0e24e2
      https://github.com/llvm/llvm-project/commit/0057ec8034d8d99ffbcf088b208484d36a0e24e2
  Author: Serguei Katkov <serguei.katkov at azul.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetInstrInfo.h
    M llvm/lib/CodeGen/TargetInstrInfo.cpp

  Log Message:
  -----------
  [Statepoint] Factor-out utility function to get non-foldable area of STATEPOINT like instructions. NFC

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


  Commit: 22411d80723860cd050eab072bb10abd7a2ae526
      https://github.com/llvm/llvm-project/commit/22411d80723860cd050eab072bb10abd7a2ae526
  Author: Geoffrey Martin-Noble <gcmn at google.com>
  Date:   2021-04-05 (Mon, 05 Apr 2021)

  Changed paths:
    M mlir/docs/LangRef.md

  Log Message:
  -----------
  [MLIR][docs] Fixes to operation syntax in Lang Ref

Reviewed By: rriddle

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


  Commit: 39e3e3aa51d628722637c1bfa507f9ec2c532120
      https://github.com/llvm/llvm-project/commit/39e3e3aa51d628722637c1bfa507f9ec2c532120
  Author: Yevgeny Rouban <yrouban at azul.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/lib/CodeGen/BackendUtil.cpp
    M llvm/include/llvm/Passes/StandardInstrumentations.h
    M llvm/lib/LTO/LTOBackend.cpp
    M llvm/lib/Passes/StandardInstrumentations.cpp
    M llvm/test/Other/new-pass-manager.ll
    M llvm/test/Other/new-pm-defaults.ll
    M llvm/tools/opt/NewPMDriver.cpp
    M llvm/unittests/IR/PassManagerTest.cpp

  Log Message:
  -----------
  [NewPM] Redesign of PreserveCFG Checker

The reason for the NewPM redesign is described in the commit
  cba3e783389a: [NewPM] Disable PreservedCFGChecker ...

The checker introduces an internal custom CFG analysis that tracks
current up-to date CFG snapshot. The analysis is invalidated along
any other CFG related analysis (the key is CFGAnalyses). If the CFG
analysis is not invalidated at a functional pass exit then the checker
asserts that the CFG snapshot taken from this analysis is equals to
a snapshot of the current CFG.

Along the way:
- the function CFG::printDiff() is simplified by removing function
  name calculation. The name is printed by the caller;
- fixed CFG invalidated condition (see CFG::invalidate());
- StandardInstrumentations::registerCallbacks() gets additional
  optional parameter of type FunctionAnalysisManager*, which is
  needed by the checker to get the custom CFG analysis;
- several PM related tests updated to explicitly set
  -verify-cfg-preserved=1 as they need.

This patch is safe to land as the CFGChecker is left switched off
(the options -verify-cfg-preserved is false by default). It will be
switched on by a separate patch to minimize possible reverts.

Reviewed By: skatkov, kuhar

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


  Commit: 98742e42fc50f58d3f2d3f2cdbbf540288c134b9
      https://github.com/llvm/llvm-project/commit/98742e42fc50f58d3f2d3f2cdbbf540288c134b9
  Author: Yevgeny Rouban <yrouban at azul.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Passes/StandardInstrumentations.cpp

  Log Message:
  -----------
  [NewPM] Fix unused lambda capture build error

Fixes commit 39e3e3aa51d: Redesign of PreserveCFG Checker


  Commit: cc26943313def7a985f72eadc7499ac981daabc6
      https://github.com/llvm/llvm-project/commit/cc26943313def7a985f72eadc7499ac981daabc6
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/include/clang/Frontend/FrontendOptions.h
    M clang/unittests/Frontend/CompilerInvocationTest.cpp

  Log Message:
  -----------
  [clang][cli] Ensure plugin args are generated in deterministic order

The '-plugin-arg' command-line arguments are not being generated in deterministic order.

This patch changes the storage from `std::unordered_map` to `std::map` to enforce ordering.

Reviewed By: dexonsmith

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


  Commit: 94d0fc32f54bb390550bfd2e33676ab78c5ab24f
      https://github.com/llvm/llvm-project/commit/94d0fc32f54bb390550bfd2e33676ab78c5ab24f
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/test/tools/llvm-objdump/ELF/AMDGPU/subtarget.ll

  Log Message:
  -----------
  [AMDGPU] Add some missing testing for new subtargets gfx90a and gfx90c

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


  Commit: ef05b08c612dd144003c1b2312bd2b365e7df519
      https://github.com/llvm/llvm-project/commit/ef05b08c612dd144003c1b2312bd2b365e7df519
  Author: Sjoerd Meijer <sjoerd.meijer at arm.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
    M llvm/test/CodeGen/AArch64/arm64-zero-cycle-zeroing.ll
    M llvm/test/CodeGen/AArch64/f16-imm.ll

  Log Message:
  -----------
  [AArch64] Use 64-bit movi for zeroing halfs/floats

This was using the .2d variant which zeros 128 bits, but using the .2s variant
that zeros 64 bits is faster on some cores.

This is a prep step for D99586 to always using movi for zeroing floats.

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


  Commit: f1313b3b249adea1fb8e629fb604fb7ccdcacf37
      https://github.com/llvm/llvm-project/commit/f1313b3b249adea1fb8e629fb604fb7ccdcacf37
  Author: Sam Parker <sam.parker at arm.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/WebAssembly/comparisons-f32.ll
    M llvm/test/CodeGen/WebAssembly/comparisons-f64.ll

  Log Message:
  -----------
  [NFC][WebAssembly] Removed mangled name from test.


  Commit: b7ef804807855e607da3eba221c1fc59e27f778e
      https://github.com/llvm/llvm-project/commit/b7ef804807855e607da3eba221c1fc59e27f778e
  Author: Kiran Chandramohan <kiran.chandramohan at arm.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M flang/lib/Evaluate/fold-integer.cpp
    M flang/lib/Evaluate/formatting.cpp
    M flang/lib/Semantics/type.cpp
    M flang/test/Semantics/assign04.f90
    R flang/test/Semantics/resolve104.f90
    M flang/test/Semantics/resolve89.f90

  Log Message:
  -----------
  Revert "[flang] Improve constant folding for type parameter inquiries"

This reverts commit 8c7bf2f93da9b64b07509f67552d592a86260ff5.


  Commit: 2935737da32dd21bf02e1a3c912a340de660d557
      https://github.com/llvm/llvm-project/commit/2935737da32dd21bf02e1a3c912a340de660d557
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/lib/Tooling/Tooling.cpp
    M clang/unittests/Tooling/ToolingTest.cpp

  Log Message:
  -----------
  [clang][tooling] Create SourceManager for DiagnosticsEngine before command-line parsing

In D84673, we started using `DiagnosticsEngine` during command-line parsing in more contexts.

When using `ToolInvocation`, a custom `DiagnosticsConsumer` can be specified and it might expect `SourceManager` to be present on the emitted diagnostics.

This patch ensures the `SourceManager` is set up in such scenarios.

Test authored by Jordan Rupprecht.

Reviewed By: rupprecht

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


  Commit: d5f1131c812df57560c7563475cb0d674a101636
      https://github.com/llvm/llvm-project/commit/d5f1131c812df57560c7563475cb0d674a101636
  Author: Sjoerd Meijer <sjoerd.meijer at arm.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64.td
    M llvm/lib/Target/AArch64/AArch64Subtarget.h
    M llvm/test/CodeGen/AArch64/arm64-fast-isel-materialize.ll
    M llvm/test/CodeGen/AArch64/arm64-fp-contract-zero.ll
    M llvm/test/CodeGen/AArch64/arm64-rev.ll
    M llvm/test/CodeGen/AArch64/arm64-zero-cycle-zeroing.ll
    M llvm/test/CodeGen/AArch64/f16-imm.ll
    M llvm/test/CodeGen/AArch64/fptosi-sat-scalar.ll
    M llvm/test/CodeGen/AArch64/fptosi-sat-vector.ll
    M llvm/test/CodeGen/AArch64/fptoui-sat-scalar.ll
    M llvm/test/CodeGen/AArch64/fptoui-sat-vector.ll
    M llvm/test/CodeGen/AArch64/remat-float0.ll

  Log Message:
  -----------
  [AArch64] Default to zero-cycle-zeroing FP registers

It is generally beneficial to prefer "movi d0, #0" over "fmov s0, wzr" as this
is most efficient across all cores; it is recognised as a zeroing idiom. For
newer cores, fmov instructions can also be eliminated early and there is no
difference with movi, but some implementations lack this so is not true for
other/older cores. Thus this standardises on using movi as this should always
gives the same or better performance than the fmov with wzr.

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


  Commit: bee4813789a378584d43c65497a5efd2353a6606
      https://github.com/llvm/llvm-project/commit/bee4813789a378584d43c65497a5efd2353a6606
  Author: Balázs Kéri <1.int32 at gmail.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp
    M clang/test/Analysis/pthreadlock.c

  Log Message:
  -----------
  [clang][Checkers] Fix PthreadLockChecker state cleanup at dead symbol.

It is possible that an entry in 'DestroyRetVal' lives longer
than an entry in 'LockMap' if not removed at checkDeadSymbols.
The added test case demonstrates this.

Reviewed By: NoQ

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


  Commit: ddbb58736a3f58b7eed1c0388395504610e5bb68
      https://github.com/llvm/llvm-project/commit/ddbb58736a3f58b7eed1c0388395504610e5bb68
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Support/KnownBits.h
    M llvm/lib/Analysis/ValueTracking.cpp
    M llvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/Support/KnownBits.cpp
    M llvm/lib/Target/ARM/ARMISelLowering.cpp
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/unittests/Support/KnownBitsTest.cpp

  Log Message:
  -----------
  [KnownBits] Rename KnownBits::computeForMul to KnownBits::mul. NFCI.

As promised in D98866


  Commit: 167ea67d76c297eb5dd3fa5f4ffc3c85e1842faa
      https://github.com/llvm/llvm-project/commit/167ea67d76c297eb5dd3fa5f4ffc3c85e1842faa
  Author: madhur13490 <Madhur.Amilkanthwar at amd.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/IR/Function.cpp
    M llvm/lib/Transforms/IPO/GlobalOpt.cpp
    A llvm/test/Analysis/CallGraph/ignore-bitcast-call-argument-callee.ll
    A llvm/test/Analysis/CallGraph/ignore-bitcast-call-argument.ll
    A llvm/test/Analysis/CallGraph/ignore-bitcast-callees.ll
    A llvm/test/Analysis/CallGraph/ignore-bitcast-callees2.ll
    M llvm/test/Transforms/Attributor/IPConstantProp/arg-count-mismatch.ll
    M llvm/test/Transforms/Attributor/IPConstantProp/arg-type-mismatch.ll
    A llvm/test/Transforms/GlobalOpt/assumelike-bitcast-fastcc.ll
    A llvm/test/Transforms/GlobalOpt/bitcast-call-argument-fastcc.ll
    A llvm/test/Transforms/GlobalOpt/bitcast-callees-fastcc.ll
    A llvm/test/Transforms/GlobalOpt/blockaddr-bitcast-fastcc.ll
    M llvm/test/Transforms/OpenMP/parallel_deletion_cg_update.ll
    M llvm/test/Transforms/SCCP/arg-count-mismatch.ll
    M llvm/test/Transforms/SCCP/arg-type-mismatch.ll

  Log Message:
  -----------
  [IR] Ignore bitcasts of function pointers which are only used as callees in callbase instruction

This patch enhances hasAddressTaken() to ignore bitcasts as a
callee in callbase instruction. Such bitcast usage doesn't really take
the address in a useful meaningful way.

Reviewed By: rampitec

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


  Commit: 2fc761aac93a8e2afef4a6dc618032bb97d8b9de
      https://github.com/llvm/llvm-project/commit/2fc761aac93a8e2afef4a6dc618032bb97d8b9de
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    A llvm/test/Transforms/PhaseOrdering/pr45687.ll

  Log Message:
  -----------
  [PhaseOrdering] Add PR45687 test coverage

This is a mixture of instcombine/simplfycfg/instcombine to recognise and then remove the abs pattern


  Commit: 638d70be6b931c6ac5b7fefb9f3e866e4a89522c
      https://github.com/llvm/llvm-project/commit/638d70be6b931c6ac5b7fefb9f3e866e4a89522c
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/AArch64/aarch64-tbz.ll

  Log Message:
  -----------
  [test, AArch64] Fix use of var defined in CHECK-NOT

LLVM test CodeGen/AArch64/aarch64-tbz.ll tries to check for the absence
of a sequence of instructions with several CHECK-NOT with one of those
directives using a variable defined in another. However CHECK-NOT are
checked independently so that is using a variable defined in a pattern
that should not occur in the input.

This commit removes the definition and uses of variable to check each
line independently, making the check stronger than the current one. It
also removes unnecessary regex match for labels.

Reviewed By: dmgreen

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


  Commit: f8f4d8f87ba4c1fbb18a4e7f4a5ea03a8b8ec061
      https://github.com/llvm/llvm-project/commit/f8f4d8f87ba4c1fbb18a4e7f4a5ea03a8b8ec061
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/lldbtest.py

  Log Message:
  -----------
  [lldb] Improve CPUInfo test predicate

Use a with block for reading the cpuinfo file.

When loading the file fails (or we're not on Linux)
return an empty string. Since all the callers are
going to do "x in self.getCPUInfo()".

Reviewed By: omjavaid

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


  Commit: 66c05609e0d5b758295b3c20d3dde4f3c3cda673
      https://github.com/llvm/llvm-project/commit/66c05609e0d5b758295b3c20d3dde4f3c3cda673
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vand.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vdiv.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmacc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmax.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmin.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmul.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vnmsac.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vnmsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vrem.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vrsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsll.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsra.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsrl.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vxor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vand.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vdiv.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmacc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmax.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmin.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmul.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vnmsac.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vnmsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vrem.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vrsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vsll.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vsra.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vsrl.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vxor.c

  Log Message:
  -----------
  [RISCV][Clang] Add some RVV Integer intrinsic functions.

1. Rename RVVBinBuiltin to RVVOutputOp1Builtin because it is not related
to the number of operand.
2. Add RVV Integer instuctions which use RVVOutputOp1Builtin.

Reviewed By: craig.topper

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

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


  Commit: 0a18ea01f19757c7b94bab8d7a9130b78136c6c1
      https://github.com/llvm/llvm-project/commit/0a18ea01f19757c7b94bab8d7a9130b78136c6c1
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vnsra.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vnsrl.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vwmul.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vnsra.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vnsrl.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vwmul.c

  Log Message:
  -----------
  [RISCV][Clang] Add RVV vnsra, vnsrl and vwmul intrinsic functions.

Reviewed By: craig.topper

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

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


  Commit: f720c22e77290187a53fc85cb8d34c313ad07e47
      https://github.com/llvm/llvm-project/commit/f720c22e77290187a53fc85cb8d34c313ad07e47
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsext.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vzext.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vsext.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vzext.c

  Log Message:
  -----------
  [RISCV][Clang] Add RVV Widening Integer Extension intrinsic functions.

Reviewed By: HsiangKai

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

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


  Commit: fe252b509ee6e8925219b97a189569c8d33c91f2
      https://github.com/llvm/llvm-project/commit/fe252b509ee6e8925219b97a189569c8d33c91f2
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vadc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmadc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsbc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmseq.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsgt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsle.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmslt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsne.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsbc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vwmacc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vadc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmadc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmsbc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmseq.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmsgt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmsle.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmslt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmsne.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vsbc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vwmacc.c

  Log Message:
  -----------
  [RISCV][Clang] Add more RVV Integer intrinsic functions.

Support below instructions.
1. Vector Integer Add-with-Carry / Subtract-with-Borrow Instructions
2. Vector Integer Comparison Instructions
3. Vector Widening Integer Multiply-Add Instructions

Reviewed By: HsiangKai

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

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


  Commit: f2a3601aa5a513e8d8a76cba84434fbfe4a71f10
      https://github.com/llvm/llvm-project/commit/f2a3601aa5a513e8d8a76cba84434fbfe4a71f10
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vaadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vasub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vnclip.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsmul.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vssra.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vssrl.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vssub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vaadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vasub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vnclip.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vsadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vsmul.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vssra.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vssrl.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vssub.c

  Log Message:
  -----------
  [RISCV][Clang] Add all RVV Fixed-Point Arithmetic intrinsic functions.

Reviewed By: HsiangKai

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

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


  Commit: 34f8a7f93c98b7c189f9684d0d207ab42aca166f
      https://github.com/llvm/llvm-project/commit/34f8a7f93c98b7c189f9684d0d207ab42aca166f
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M compiler-rt/test/lsan/TestCases/many_tls_keys_pthread.cpp

  Log Message:
  -----------
  [lsan][test] Disable many_tls_keys_pthread.cpp on AArch64

Partially reverts 04dbb63400c5fa2f263d7473272509be572a367a.

This test requires 9be8f8b34d9b150cd1811e3556fe9d0cd735ae29
which is/has been reverted a few times but this test was
left enabled.

Currently that change is reverted and this test is failing:
http://lab.llvm.org:8011/#/builders/7/builds/2327


  Commit: f6ee97d8271e1dfd9b6572222fefe8f40433952e
      https://github.com/llvm/llvm-project/commit/f6ee97d8271e1dfd9b6572222fefe8f40433952e
  Author: Alexander Belyaev <pifon at google.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cpp

  Log Message:
  -----------
  [rt] Update DIPrinter usage in 'sanitizer_symbolize.cpp`.

These changes were required after
https://github.com/llvm/llvm-project/commit/5f57793c4fe47aa3486a755768b43189351cbd15

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


  Commit: 6eb5b06ecfe4c3263e3df891123959fffe24d32a
      https://github.com/llvm/llvm-project/commit/6eb5b06ecfe4c3263e3df891123959fffe24d32a
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/AMDGPU/mul24-pass-ordering.ll

  Log Message:
  -----------
  [AMDGPU] Regenerate checks to fix prefixes broken in D96340. NFC.


  Commit: 201877d57264543d8ac5ca48f15bc0bc7c80b8ce
      https://github.com/llvm/llvm-project/commit/201877d57264543d8ac5ca48f15bc0bc7c80b8ce
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
    M llvm/test/Analysis/CostModel/X86/reduce-mul.ll

  Log Message:
  -----------
  [CostModel][X86] Improve accuracy of vXi8 multiply reduction costs

After rG47321c311bdbe0145b9bf45d822185c37b19fa50 we promote vXi8 reductions to vXi16 to create a much faster PMULLW mul reduction, followed by a (free) truncation. This avoids the high cost of repeated vXi8 multiplications (which extend+multiply+truncate to/from vXi16 types....).

Fixes the missing vXi8 mul reduction vectorization in PR42674 (Comment #20) 'mul16' test case.


  Commit: 476e087939e4c7cda4de9fa3bc998aea62da4096
      https://github.com/llvm/llvm-project/commit/476e087939e4c7cda4de9fa3bc998aea62da4096
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M lldb/source/Plugins/Process/Windows/Common/NativeRegisterContextWindows_arm64.cpp

  Log Message:
  -----------
  [LLDB] Fix building for aarch64 windows after d6d3d21cd1cb1567eaf7ff8c0867b07227a19d99

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


  Commit: b78e883fd8b3745250220776dd8bb635edd95539
      https://github.com/llvm/llvm-project/commit/b78e883fd8b3745250220776dd8bb635edd95539
  Author: Dominik Montada <dominik.montada at hightec-rt.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/lib/Tooling/CMakeLists.txt

  Log Message:
  -----------
  [CMake] Fix Python 3 lookup when building LLVM with tests

Remove the find_package(Python3 ...) call from Tooling/CMakeLists.txt as
it would override the python 3 version determined in llvm/CMakeLists.txt.
This call did not respect the LLVM_MINIMUM_PYTHON_VERSION.

This fixes the check-all target when building LLVM on a system where the
default python version is not the minimum required version for running tests.

Reviewed By: serge-sans-paille

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


  Commit: 3eadcb86abd2259e398c9c1ff81d5509bfeeb7df
      https://github.com/llvm/llvm-project/commit/3eadcb86abd2259e398c9c1ff81d5509bfeeb7df
  Author: Dmitry Preobrazhensky <dmitry.preobrazhensky at amd.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SMInstructions.td
    M llvm/test/MC/Disassembler/AMDGPU/smem_gfx9.txt

  Log Message:
  -----------
  [AMDGPU][MC][GFX9] Corrected SMEM decoding

Corrected SMEM decoding when IMM=0 and OFFSET>127

Fixed bug 49819 (https://bugs.llvm.org/show_bug.cgi?id=49819)

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


  Commit: a6b06b785cda1bb94dd05f29d66892ccb44cf0cd
      https://github.com/llvm/llvm-project/commit/a6b06b785cda1bb94dd05f29d66892ccb44cf0cd
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/VPlan.cpp
    M llvm/unittests/Transforms/Vectorize/VPlanHCFGTest.cpp

  Log Message:
  -----------
  [VPlan] Print VPValue operands for VPWidenPHI if possible.

For VPWidenPHIRecipes that model all incoming values as VPValue
operands, print those operands instead of printing the original PHI.

D99294 updates recipes of reduction PHIs to use the VPValue for the
incoming value from the loop backedge, making use of this new printing.


  Commit: 857b8a73da91e9036cf27f47939ee387966306c6
      https://github.com/llvm/llvm-project/commit/857b8a73da91e9036cf27f47939ee387966306c6
  Author: Kerry McLaughlin <kerry.mclaughlin at arm.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/IVDescriptors.h
    M llvm/lib/Analysis/IVDescriptors.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Transforms/LoopVectorize/X86/reduction-fastmath.ll

  Log Message:
  -----------
  [LoopVectorize] Change the identity element for FAdd

Changes getRecurrenceIdentity to always return a neutral value of -0.0 for FAdd.

Reviewed By: dmgreen, spatel

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


  Commit: 65c22acfa4a412066e47c3171ff26fcbd62f970e
      https://github.com/llvm/llvm-project/commit/65c22acfa4a412066e47c3171ff26fcbd62f970e
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/utils/TableGen/ClangAttrEmitter.cpp

  Log Message:
  -----------
  Silence -Woverloaded-virtual warnings from generated code; NFC


  Commit: 82b3e28e836d2f5c8cfd6e1047b93c088522365a
      https://github.com/llvm/llvm-project/commit/82b3e28e836d2f5c8cfd6e1047b93c088522365a
  Author: Abhina Sreeskantharajan <Abhina.Sreeskantharajan at ibm.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang-tools-extra/clang-move/tool/ClangMove.cpp
    M clang-tools-extra/modularize/ModuleAssistant.cpp
    M clang-tools-extra/pp-trace/PPTrace.cpp
    M clang/lib/ARCMigrate/PlistReporter.cpp
    M clang/lib/Driver/Compilation.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Frontend/CompilerInstance.cpp
    M clang/lib/Frontend/DependencyFile.cpp
    M clang/lib/Frontend/DependencyGraph.cpp
    M clang/lib/Frontend/FrontendActions.cpp
    M clang/lib/Frontend/HeaderIncludeGen.cpp
    M clang/lib/Frontend/ModuleDependencyCollector.cpp
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
    M clang/lib/StaticAnalyzer/Core/SarifDiagnostics.cpp
    M clang/tools/clang-refactor/ClangRefactor.cpp
    M clang/tools/driver/cc1as_main.cpp
    M flang/lib/Frontend/CompilerInstance.cpp
    M lld/COFF/DriverUtils.cpp
    M lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
    M lldb/include/lldb/Utility/ReproducerProvider.h
    M lldb/source/Utility/GDBRemote.cpp
    M lldb/source/Utility/ReproducerProvider.cpp
    M lldb/tools/lldb-server/LLDBServerUtilities.cpp
    M llvm/include/llvm/Analysis/DOTGraphTraitsPass.h
    M llvm/include/llvm/Support/FileSystem.h
    M llvm/lib/CodeGen/RegAllocPBQP.cpp
    M llvm/lib/IR/Core.cpp
    M llvm/lib/IR/LLVMRemarkStreamer.cpp
    M llvm/lib/LTO/LTOBackend.cpp
    M llvm/lib/MC/MCParser/DarwinAsmParser.cpp
    M llvm/lib/ProfileData/GCOV.cpp
    M llvm/lib/ProfileData/SampleProfWriter.cpp
    M llvm/lib/Support/FileCollector.cpp
    M llvm/lib/Support/MemoryBuffer.cpp
    M llvm/lib/Support/TimeProfiler.cpp
    M llvm/lib/Support/Timer.cpp
    M llvm/lib/Support/Unix/Program.inc
    M llvm/lib/Support/Windows/Path.inc
    M llvm/lib/Support/Windows/Program.inc
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/lib/Transforms/IPO/LowerTypeTests.cpp
    M llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
    M llvm/lib/Transforms/Utils/Debugify.cpp
    M llvm/tools/dsymutil/dsymutil.cpp
    M llvm/tools/llc/llc.cpp
    M llvm/tools/lli/lli.cpp
    M llvm/tools/llvm-cxxmap/llvm-cxxmap.cpp
    M llvm/tools/llvm-dis/llvm-dis.cpp
    M llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
    M llvm/tools/llvm-exegesis/lib/BenchmarkResult.cpp
    M llvm/tools/llvm-link/llvm-link.cpp
    M llvm/tools/llvm-mc/llvm-mc.cpp
    M llvm/tools/llvm-mca/llvm-mca.cpp
    M llvm/tools/llvm-opt-report/OptReport.cpp
    M llvm/tools/llvm-profdata/llvm-profdata.cpp
    M llvm/tools/llvm-xray/xray-account.cpp
    M llvm/tools/llvm-xray/xray-converter.cpp
    M llvm/tools/llvm-xray/xray-extract.cpp
    M llvm/tools/llvm-xray/xray-graph-diff.cpp
    M llvm/tools/llvm-xray/xray-graph.cpp
    M llvm/tools/opt/opt.cpp
    M llvm/tools/verify-uselistorder/verify-uselistorder.cpp
    M llvm/unittests/Support/Path.cpp
    M polly/lib/Exchange/JSONExporter.cpp

  Log Message:
  -----------
  [SystemZ][z/OS][Windows] Add new OF_TextWithCRLF flag and use this flag instead of OF_Text

Problem:
On SystemZ we need to open text files in text mode. On Windows, files opened in text mode adds a CRLF '\r\n' which may not be desirable.

Solution:
This patch adds two new flags

  - OF_CRLF which indicates that CRLF translation is used.
  - OF_TextWithCRLF = OF_Text | OF_CRLF indicates that the file is text and uses CRLF translation.

Developers should now use either the OF_Text or OF_TextWithCRLF for text files and OF_None for binary files. If the developer doesn't want carriage returns on Windows, they should use OF_Text, if they do want carriage returns on Windows, they should use OF_TextWithCRLF.

So this is the behaviour per platform with my patch:

z/OS:
OF_None: open in binary mode
OF_Text : open in text mode
OF_TextWithCRLF: open in text mode

Windows:
OF_None: open file with no carriage return
OF_Text: open file with no carriage return
OF_TextWithCRLF: open file with carriage return

The Major change is in llvm/lib/Support/Windows/Path.inc to only set text mode if the OF_CRLF is set.
```
  if (Flags & OF_CRLF)
    CrtOpenFlags |= _O_TEXT;
```

These following files are the ones that still use OF_Text which I left unchanged. I modified all these except raw_ostream.cpp in recent patches so I know these were previously in Binary mode on Windows.
./llvm/lib/Support/raw_ostream.cpp
./llvm/lib/TableGen/Main.cpp
./llvm/tools/dsymutil/DwarfLinkerForBinary.cpp
./llvm/unittests/Support/Path.cpp
./clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp
./clang/lib/Frontend/CompilerInstance.cpp
./clang/lib/Driver/Driver.cpp
./clang/lib/Driver/ToolChains/Clang.cpp

Reviewed By: MaskRay

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


  Commit: 2901dc7575873ed4bdfa1d7a0e79020e7a9ffb3d
      https://github.com/llvm/llvm-project/commit/2901dc7575873ed4bdfa1d7a0e79020e7a9ffb3d
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/Analysis/CalledOnceCheck.cpp
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/CodeGen/CGCUDANV.cpp
    M clang/lib/CodeGen/CGExprScalar.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaExprMember.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/lib/Sema/SemaTemplateDeduction.cpp
    M clang/unittests/AST/ASTImporterTest.cpp

  Log Message:
  -----------
  Don't directly dereference getAs<> casts to avoid potential null dereferences. NFCI.

Replace with castAs<> which asserts the cast is valid.

Fixes a number of static analyzer warnings.


  Commit: b8aba76a4eab8e39008e243ebc2a3d0b56c1bd0c
      https://github.com/llvm/llvm-project/commit/b8aba76a4eab8e39008e243ebc2a3d0b56c1bd0c
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LoopFlatten.cpp

  Log Message:
  -----------
  LoopFlatten - CanWidenIV - Fix uninitialized variable warnings and use for-range loop. NFCI.

Fix static analysis uninitialized variable warnings, and use for-range loop iteration across WideIVs array.


  Commit: 6fec0a34ceb0a3c95454ef8c978e19be3fec7ab7
      https://github.com/llvm/llvm-project/commit/6fec0a34ceb0a3c95454ef8c978e19be3fec7ab7
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/AMDGPU/cf-loop-on-constant.ll
    M llvm/test/CodeGen/AMDGPU/fold-imm-copy.mir
    M llvm/test/CodeGen/AMDGPU/fptosi.f16.ll
    M llvm/test/CodeGen/AMDGPU/fptoui.f16.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.gfx90a.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.rsq.clamp.ll
    M llvm/test/CodeGen/AMDGPU/mubuf.ll
    M llvm/test/CodeGen/AMDGPU/spill-offset-calculation.ll
    M llvm/test/CodeGen/AMDGPU/valu-i1.ll
    M llvm/test/CodeGen/AMDGPU/wave32.ll

  Log Message:
  -----------
  [AMDGPU] Fix typo in regular expression checks. NFC.


  Commit: 7dc7790ec52efe799211edde9114ba5e467ccb36
      https://github.com/llvm/llvm-project/commit/7dc7790ec52efe799211edde9114ba5e467ccb36
  Author: Alex Zinenko <zinenko at google.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M mlir/lib/Conversion/AffineToStandard/AffineToStandard.cpp
    M mlir/test/Conversion/AffineToStandard/lower-affine.mlir

  Log Message:
  -----------
  [mlir] Fix support for lowering non-32-bit affine reductions.

The existing implementation was always creating 32-bit constants for
floating-point and integer reductions regardless of the actual type, which
resulted in invalid IR being generated for any types other than f32 and i32
when lowering affine.parallel to SCF. Use the actual type instead.

Reviewed By: chelini

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


  Commit: e07a9b38a6892136fceae0ee17fea0530b6f7623
      https://github.com/llvm/llvm-project/commit/e07a9b38a6892136fceae0ee17fea0530b6f7623
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/InstCombine/demorgan.ll

  Log Message:
  -----------
  [InstCombine] Add PR45984 test case

Fold (a ^ b) | ~(a | b) --> ~(a & b)


  Commit: 0bf4836dc4cf126b602ea3f76b7a0340f05383bb
      https://github.com/llvm/llvm-project/commit/0bf4836dc4cf126b602ea3f76b7a0340f05383bb
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/AMDGPU/fadd64.ll
    M llvm/test/CodeGen/AMDGPU/fcmp64.ll
    M llvm/test/CodeGen/AMDGPU/ffloor.f64.ll
    M llvm/test/CodeGen/AMDGPU/fneg-combines.ll
    M llvm/test/CodeGen/AMDGPU/hoist-cond.ll
    M llvm/test/CodeGen/AMDGPU/shift-and-i128-ubfe.ll

  Log Message:
  -----------
  [AMDGPU] Fix dubious regexes with unescaped brackets. NFC.


  Commit: bdfee7d5e1924eb5ca7333b1da339cf21a481409
      https://github.com/llvm/llvm-project/commit/bdfee7d5e1924eb5ca7333b1da339cf21a481409
  Author: Raphael Isemann <teemperor at gmail.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M lldb/source/Plugins/Language/ObjC/Cocoa.cpp

  Log Message:
  -----------
  [lldb][NFC] Fix misleading indentation in Cocoa.cpp


  Commit: 5efe9efdadcbf635f79c9a2b19dae9a96e25496f
      https://github.com/llvm/llvm-project/commit/5efe9efdadcbf635f79c9a2b19dae9a96e25496f
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/X86/bmi.ll

  Log Message:
  -----------
  [X86] Add ANDN test case for PR48768

D94856 covered the BMI cases where we had existing tests, this adds a missing ANDN test case


  Commit: 5ab489d9ae99c60d6f7e1e01194e0b4aacaf68af
      https://github.com/llvm/llvm-project/commit/5ab489d9ae99c60d6f7e1e01194e0b4aacaf68af
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    A llvm/test/Transforms/InstCombine/sub-from-sub.ll

  Log Message:
  -----------
  [NFC][InstCombine] Add tests for '((X - Y) - Z)' pattern (PR49858)


  Commit: 31d219d2997fed1b7dc97e0adf170d5aaf65883e
      https://github.com/llvm/llvm-project/commit/31d219d2997fed1b7dc97e0adf170d5aaf65883e
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
    M llvm/test/Transforms/InstCombine/abs-1.ll
    M llvm/test/Transforms/InstCombine/sub-from-sub.ll

  Log Message:
  -----------
  [InstCombine] Fold `((X - Y) - Z)` to `X - (Y + Z)` (PR49858)

https://alive2.llvm.org/ce/z/67w-wQ

We prefer `add`s over `sub`, and this particular xform
allows further folds to happen:

Fixes https://bugs.llvm.org/show_bug.cgi?id=49858


  Commit: 849d3729433e05e6d89892c1814fa07ed3ec18e2
      https://github.com/llvm/llvm-project/commit/849d3729433e05e6d89892c1814fa07ed3ec18e2
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/test/CodeGen/builtins-ppc-quadword-noi128.c

  Log Message:
  -----------
  [NFC][Clang] Speculative fix for builtins-ppc-quadword-noi128.c


  Commit: 1dcb5b5e8978a0a2f296670a4ab29a8038a21a0e
      https://github.com/llvm/llvm-project/commit/1dcb5b5e8978a0a2f296670a4ab29a8038a21a0e
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/test/CodeGen/X86/bmi.ll

  Log Message:
  -----------
  [X86] Improve optimizeCompareInstr for signed comparisons after ANDN instructions

Extend D94856 to handle 'andn' instructions as well


  Commit: 88c2454057b6cd1b122f7fadde666e6b8ea6ebd3
      https://github.com/llvm/llvm-project/commit/88c2454057b6cd1b122f7fadde666e6b8ea6ebd3
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/InstCombine/or.ll

  Log Message:
  -----------
  [InstCombine] Add PR38929 test case

Fold (~x & y) | ~(x | y) --> ~x


  Commit: 7344f3d39a0dc934b22ee43b4f92160fc3ea2db6
      https://github.com/llvm/llvm-project/commit/7344f3d39a0dc934b22ee43b4f92160fc3ea2db6
  Author: Kerry McLaughlin <kerry.mclaughlin at arm.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/IVDescriptors.h
    M llvm/include/llvm/Transforms/Utils/LoopUtils.h
    M llvm/lib/Analysis/IVDescriptors.cpp
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    A llvm/test/Transforms/LoopVectorize/AArch64/strict-fadd.ll

  Log Message:
  -----------
  [LoopVectorize] Add strict in-order reduction support for fixed-width vectorization

Previously we could only vectorize FP reductions if fast math was enabled, as this allows us to
reorder FP operations. However, it may still be beneficial to vectorize the loop by moving
the reduction inside the vectorized loop and making sure that the scalar reduction value
be an input to the horizontal reduction, e.g:

  %phi = phi float [ 0.0, %entry ], [ %reduction, %vector_body ]
  %load = load <8 x float>
  %reduction = call float @llvm.vector.reduce.fadd.v8f32(float %phi, <8 x float> %load)

This patch adds a new flag (IsOrdered) to RecurrenceDescriptor and makes use of the changes added
by D75069 as much as possible, which already teaches the vectorizer about in-loop reductions.
For now in-order reduction support is off by default and controlled with the `-enable-strict-reductions` flag.

Reviewed By: david-arm

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


  Commit: e9608a84d881e3190d17d8b11f9fdf6d745018ef
      https://github.com/llvm/llvm-project/commit/e9608a84d881e3190d17d8b11f9fdf6d745018ef
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/MIMGInstructions.td
    M llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.gather4.dim.ll
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.gather4.dim.ll

  Log Message:
  -----------
  [AMDGPU][SDag] Add IMG init also for image_gather4 instructions

This fixes an oversight in D99747 which moved the IMG init code from
SIAddIMGInit to AdjustInstrPostInstrSelection, but did not set the
hasPostISelHook flag on gather4 instructions.

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


  Commit: ccb361af6cf771ba5d9e50a9dc5b845a1a196697
      https://github.com/llvm/llvm-project/commit/ccb361af6cf771ba5d9e50a9dc5b845a1a196697
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp

  Log Message:
  -----------
  [llvm-symbolizer] Don't use the same 'OutputStyle' name for the enum type and instance. NFCI.

This was causing some buildbot problems, e.g. http://lab.llvm.org:8011/#/builders/110/builds/2306


  Commit: cf4f5292f637d4ff1217da67d07147d63257ca87
      https://github.com/llvm/llvm-project/commit/cf4f5292f637d4ff1217da67d07147d63257ca87
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp

  Log Message:
  -----------
  [AMDGPU] SIFoldOperands: use getVRegDef instead of getUniqueVRegDef

We are in SSA so getVRegDef is equivalent but simpler. NFC.


  Commit: ce9cca6c3a31998b924ac9c67d8e1c70ada5665b
      https://github.com/llvm/llvm-project/commit/ce9cca6c3a31998b924ac9c67d8e1c70ada5665b
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp

  Log Message:
  -----------
  [AMDGPU] SIFoldOperands: rename tryFoldInst to tryFoldCndMask

This follows the pattern of the other tryFold* functions. NFC.


  Commit: 005dcd196ef64f77cc3070ed3a2df6ba6e78c628
      https://github.com/llvm/llvm-project/commit/005dcd196ef64f77cc3070ed3a2df6ba6e78c628
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp

  Log Message:
  -----------
  [AMDGPU] SIFoldOperands: use range-based loops and make_early_inc_range

NFC.


  Commit: efc7bf27f5ee87ac106c6e48c4276e26f4f04715
      https://github.com/llvm/llvm-project/commit/efc7bf27f5ee87ac106c6e48c4276e26f4f04715
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp

  Log Message:
  -----------
  [AMDGPU] SIFoldOperands: use MachineRegisterInfo::hasOneNonDBGUser

NFC.


  Commit: ce4acb01b315b74e04da83d89304bd159b31dadd
      https://github.com/llvm/llvm-project/commit/ce4acb01b315b74e04da83d89304bd159b31dadd
  Author: Benjamin Kramer <benny.kra at googlemail.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Utils/LoopUtils.cpp

  Log Message:
  -----------
  Avoid unused variable warning in Release builds


  Commit: fb6a5237aa73e42d476f3736afcd531a593d3c33
      https://github.com/llvm/llvm-project/commit/fb6a5237aa73e42d476f3736afcd531a593d3c33
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/IR/Function.cpp
    M llvm/lib/Transforms/IPO/GlobalOpt.cpp
    R llvm/test/Analysis/CallGraph/ignore-bitcast-call-argument-callee.ll
    R llvm/test/Analysis/CallGraph/ignore-bitcast-call-argument.ll
    R llvm/test/Analysis/CallGraph/ignore-bitcast-callees.ll
    R llvm/test/Analysis/CallGraph/ignore-bitcast-callees2.ll
    M llvm/test/Transforms/Attributor/IPConstantProp/arg-count-mismatch.ll
    M llvm/test/Transforms/Attributor/IPConstantProp/arg-type-mismatch.ll
    R llvm/test/Transforms/GlobalOpt/assumelike-bitcast-fastcc.ll
    R llvm/test/Transforms/GlobalOpt/bitcast-call-argument-fastcc.ll
    R llvm/test/Transforms/GlobalOpt/bitcast-callees-fastcc.ll
    R llvm/test/Transforms/GlobalOpt/blockaddr-bitcast-fastcc.ll
    M llvm/test/Transforms/OpenMP/parallel_deletion_cg_update.ll
    M llvm/test/Transforms/SCCP/arg-count-mismatch.ll
    M llvm/test/Transforms/SCCP/arg-type-mismatch.ll

  Log Message:
  -----------
  Revert "[IR] Ignore bitcasts of function pointers which are only used as callees in callbase instruction"

This reverts commit 167ea67d

This causes a bunch of build failures:
* http://lab.llvm.org:8011/#/builders/121/builds/6287
* http://green.lab.llvm.org/green/job/clang-stage1-RA/19915


  Commit: 23929af383f27a6ddf23704192a25591481152b3
      https://github.com/llvm/llvm-project/commit/23929af383f27a6ddf23704192a25591481152b3
  Author: Abhina Sreeskantharajan <Abhina.Sreeskantharajan at ibm.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/lib/Frontend/Rewrite/FrontendActions.cpp

  Log Message:
  -----------
  [Windows] Turn off text mode correctly in Rewriter to stop CRLF translation

I incorrectly changed the RewriteTestAction::ExecuteAction's file to binary instead of the proper RewriteIncludesAction::BeginSourceFileAction in https://reviews.llvm.org/rGbc5d4bcc2deb71ab647270c9754a83484b3d6f87. In the original commit, I actually changed RewriteIncludesAction::BeginSourceFileAction in https://reviews.llvm.org/rGfdb640ea30d416368b76b68b106deda580c6aced. This should fix the issue @aganea is facing.

Reviewed By: aganea

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


  Commit: 52ecd94cfbca726aae2532db43aac5dec92ced15
      https://github.com/llvm/llvm-project/commit/52ecd94cfbca726aae2532db43aac5dec92ced15
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/EarlyCSE.cpp
    M llvm/lib/Transforms/Scalar/GVN.cpp

  Log Message:
  -----------
  Remove last remnants of PR49607 migration [NFC]

The key change (4f5e92c) to switch gc.result and gc.relocate to being readnone landed nearly two weeks ago, and we haven't seen any fallout.  Time to remove the code added to make reverting easy.


  Commit: 844012940e177cea9d4deb49c2d79d808adf815e
      https://github.com/llvm/llvm-project/commit/844012940e177cea9d4deb49c2d79d808adf815e
  Author: Konstantin Zhuravlyov <kzhuravl_dev at outlook.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SOPInstructions.td

  Log Message:
  -----------
  AMDGPU: Add isBranch=1 to SOPP branch instructions

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


  Commit: b660abc80d0d0943c54e9440636ddfa89c2d626d
      https://github.com/llvm/llvm-project/commit/b660abc80d0d0943c54e9440636ddfa89c2d626d
  Author: Erik Pilkington <erik.pilkington at gmail.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/include/clang/AST/DeclObjC.h
    M clang/include/clang/Basic/LangOptions.def
    M clang/include/clang/Driver/Options.td
    M clang/lib/AST/DeclObjC.cpp
    M clang/lib/Driver/ToolChains/Clang.cpp
    M clang/lib/Sema/SemaDeclObjC.cpp
    A clang/test/CodeGenObjC/disable-direct-method.m
    M clang/test/Driver/clang_f_opts.c
    A clang/test/SemaObjC/disable-direct-method.m

  Log Message:
  -----------
  [ObjC] Add a command line flag that disables recognition of objc_direct for testability

Programmers would like to be able to test direct methods by calling them from a
different linkage unit or mocking them, both of which are impossible. This
patch adds a flag that effectively disables the attribute, which will fix this
when enabled in testable builds. rdar://71190891

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


  Commit: 14a7296c0120913e949739e4e90ea5a5f1bd8af1
      https://github.com/llvm/llvm-project/commit/14a7296c0120913e949739e4e90ea5a5f1bd8af1
  Author: oToToT <ty1208chiang at gmail.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang-tools-extra/clangd/Compiler.cpp
    M clang/lib/Frontend/ASTUnit.cpp
    M clang/lib/Frontend/PrecompiledPreamble.cpp

  Log Message:
  -----------
  [clang][clangd] Avoid inconsistent target creation

As proposed in D97109, I tried to make target creation consistent in `clang` and `clangd` by replacing the original procedure with a single function introduced in D97493.

This also helps `clangd` works with CUDA, OpenMP, etc.

Reviewed By: kadircet

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


  Commit: b36ef9f47db774f53baf6a527c8ea60d7e111287
      https://github.com/llvm/llvm-project/commit/b36ef9f47db774f53baf6a527c8ea60d7e111287
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M mlir/test/Dialect/Linalg/tile-indexed-generic.mlir

  Log Message:
  -----------
  [MLIR, test] Fix use of undef FileCheck var

MLIR test Dialect/Linalg/tile-indexed-generic.mlir has a CHECK-NOT
directive referring to a variable only defined in a CHECK directive with
a different prefix, and thus undefined in the CHECK-NOT.

This commit removes the variable reference altogether to error on any
content it might have.

Reviewed By: pifon2a

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


  Commit: fa818bb0357d140987155f75296b1205303be31d
      https://github.com/llvm/llvm-project/commit/fa818bb0357d140987155f75296b1205303be31d
  Author: Dan Liew <dliew at apple.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M compiler-rt/cmake/Modules/CompilerRTUtils.cmake

  Log Message:
  -----------
  [CMake][Compiler-rt] Compute `LLVM_MAIN_SRC_DIR` assuming the monorepo
layout.

When doing a standalone compiler-rt build we currently rely on
getting information from the `llvm-config` binary. Previously
we would rely on calling `llvm-config --src-root` to find the
LLVM sources. Unfortunately the returned path could easily be wrong
if the sources were built on another machine.

Now that compiler-rt is part of a monorepo we can easily fix this
problem by finding the LLVM source tree next to `compiler-rt` in
the monorepo. We do this regardless of whether or not the `llvm-config`
binary is available which moves us one step closer to not requiring
`llvm-config` to be available.

To try avoid anyone breaking anyone who relies on the current behavior,
if the path assuming the monorepo layout doesn't exist we invoke
`llvm-config --src-root` to get the path. A deprecation warning is
emitted if this path is taken because we should remove this path
in the future given that other runtimes already assume the monorepo
layout.

We also now emit a warning if `LLVM_MAIN_SRC_DIR` does not exist.
The intention is that this should be a hard error in future but
to avoid breaking existing users we'll keep this as a warning
for now.

rdar://76016632

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


  Commit: fd28517d878e1d3d14f492ab659aabdf729fd331
      https://github.com/llvm/llvm-project/commit/fd28517d878e1d3d14f492ab659aabdf729fd331
  Author: Dan Liew <dliew at apple.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    A compiler-rt/cmake/Modules/CompilerRTMockLLVMCMakeConfig.cmake
    M compiler-rt/cmake/Modules/CompilerRTUtils.cmake

  Log Message:
  -----------
  [CMake][Compiler-rt] Make it possible to configure standalone compiler-rt without `LLVMConfig.cmake`.

Previously it wasn't possible to configure a standalone compiler-rt
build if the `LLVMConfig.cmake` file isn't present in a shipped
toolchain.

This patch adds a fallback behaviour for when `LLVMConfig.cmake` is not
available in the toolchain being used for configure. The fallback
behaviour mocks out the bare minimum required to make a configure
succeed when the host is Darwin. Support for other platforms could
be added in future patches.

The new code path is taken either in one of the following cases:

* `llvm-config` is not available.
* `llvm-config` is available but it provides an invalid path for the CMake files.

The motivation here is to be able to generate the compiler-rt lit test
suites for an arbitrary LLVM toolchain and then run the tests against
it.

The invocation to do this looks something like.

```
CC=/path/to/cc \
CXX=/path/to/c++ \
cmake \
  -G Ninja \
  -DLLVM_CONFIG_PATH=/path/to/llvm-config \
  -DCOMPILER_RT_INCLUDE_TESTS=ON \
  /path/to/llvm-project/compiler-rt

 # Note we don't compile compiler-rt in this workflow.
bin/llvm-lit -v test/path/to/generated/test_suite
```

A possible alternative approach is to configure the
`cmake/modules/LLVMConfig.cmake.in` file in the LLVM source tree
and then include it. This approach was not taken because it is more
complicated.

An interesting side benefit of this patch is that it is now
possible to configure on Darwin without `llvm-config` being available
by configuring with `-DLLVM_CONFIG_PATH=""`. This moves us a step
closer to a world where no LLVM build artefacts are required to
build compiler-rt.

rdar://76016632

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


  Commit: 21d48399484cc5dbc94af8aff2a3b2208783ab08
      https://github.com/llvm/llvm-project/commit/21d48399484cc5dbc94af8aff2a3b2208783ab08
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/include/llvm/IR/IntrinsicInst.h
    M llvm/include/llvm/IR/Statepoint.h
    M llvm/lib/Analysis/Loads.cpp
    M llvm/lib/IR/AsmWriter.cpp
    M llvm/lib/IR/IntrinsicInst.cpp
    M llvm/lib/IR/Value.cpp
    M llvm/lib/Transforms/Scalar/EarlyCSE.cpp
    M llvm/lib/Transforms/Scalar/GVN.cpp

  Log Message:
  -----------
  Move GCRelocateInst and GCResultInst to IntrinsicInst.h [nfc]

These two are part of the IntrinsicInst class hierarchy and it helps to cut down on some redundant includes.


  Commit: 916093f49fafa54a7a4a8473ec4704eca3dc5a67
      https://github.com/llvm/llvm-project/commit/916093f49fafa54a7a4a8473ec4704eca3dc5a67
  Author: Zbigniew Sarbinowski <zibi at ca.ibm.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M libcxx/include/__support/ibm/nanosleep.h

  Log Message:
  -----------
  [SystemZ][z/OS] correct rc and errno within nanosleep()

This patch fixes rc and errno within nanosleep(). It also updates __rem parameter as well it introduces cast to handle conversions from long into unsigned int to avoid warnings.

Reviewed By: Mordante

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


  Commit: 518e6f341dddab7824592b3769146318950a01be
      https://github.com/llvm/llvm-project/commit/518e6f341dddab7824592b3769146318950a01be
  Author: Nicolas Vasilache <nicolas.vasilache at gmail.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/IR/LinalgInterfaces.td
    M mlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp
    M mlir/test/Dialect/Linalg/fusion-tensor.mlir

  Log Message:
  -----------
  [mlir][Linalg] Fix fusion on tensors operands / bbArg mismatch

Linalg fusion on tensors has mismatching assumptions on the operand side than on the region bbArg side.
Relax the behavior on the operand/indexing map side so that we better support output operands that may also be read from.

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


  Commit: 53283cc2f1ddc2562bac0f623aa48eeeba359798
      https://github.com/llvm/llvm-project/commit/53283cc2f1ddc2562bac0f623aa48eeeba359798
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/horizontal-sum.ll

  Log Message:
  -----------
  [X86][SSE] canonicalizeShuffleWithBinOps - add MOVSD/MOVSS handling.


  Commit: f98567b3fecb2d0efe390f7c3f309333287d9398
      https://github.com/llvm/llvm-project/commit/f98567b3fecb2d0efe390f7c3f309333287d9398
  Author: Victor Huang <wei.huang at ibm.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/MC/XCOFFObjectWriter.cpp
    A llvm/test/CodeGen/PowerPC/aix-tls-xcoff-variables.ll
    M llvm/tools/llvm-readobj/XCOFFDumper.cpp

  Log Message:
  -----------
  [AIX][TLS] Add support for TLS variables to XCOFF object writer

This patch adds support for TLS variables to the XCOFF object writer:
- Add TData and TBSS sections
- Add CsectGroups for the mapping classes XCOFF::XMC_TL and XCOFF::XMC_UL
- Add XMC_UL in the enum entry of CsectStorageMapping class to print the string
  while reading the symbol properties for TLS variables
- Fix the starting address of TData and TBSS sections

Reviewed by: hubert.reinterpretcast, DiggerLin

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


  Commit: 17f4f23eeab402c792fb5c6a8e66be6afd88c33f
      https://github.com/llvm/llvm-project/commit/17f4f23eeab402c792fb5c6a8e66be6afd88c33f
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M mlir/test/Transforms/canonicalize.mlir

  Log Message:
  -----------
  [MLIR, test] Fix use of undef FileCheck var

MLIR test Transforms/canonicalize.mlir tries to check for the absence of
a sequence of instructions with several CHECK-NOT with one of those
directives using a variable defined in another. However CHECK-NOT are
checked independently so that is using a variable defined in a pattern
that should not occur in the input.

This commit removes the dependency between those CHECK-NOT by replacing
occurences of variables by the regex that were used to define them.

Reviewed By: pifon2a

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


  Commit: 9c5ebf0358960adf28931569a0c801b56c8008d9
      https://github.com/llvm/llvm-project/commit/9c5ebf0358960adf28931569a0c801b56c8008d9
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/GVN/PRE/load-pre-nonlocal.ll
    M llvm/test/Transforms/GVN/big-endian.ll
    M llvm/test/Transforms/NewGVN/big-endian.ll

  Log Message:
  -----------
  [test, GVN] Fix use of var defined in CHECK-NOT

Commit 22ce5eb051591b828b1ce4238624b6e95d334a5b, changed checks in
GVN/big-endian.ll into CHECK-NOT. The intent was to check that a
succession of lines does not occur but each CHECK-NOT is checked
independently. In other word, one CHECK-NOT uses a variable defined
in a pattern (the one defining the variable) that should not occur in
the input. The bug was then copied over in NewGVN/big-endian.ll.

This commit only checks for the absence of i16 load which rules out the
presence of the whole sequence and does not involve an undefined
variable.

Reviewed By: nikic

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


  Commit: 93c87fc06eca8d8a65ff6c0bdd9f2671227224ac
      https://github.com/llvm/llvm-project/commit/93c87fc06eca8d8a65ff6c0bdd9f2671227224ac
  Author: Ben Langmuir <blangmuir at apple.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/include/clang/Index/DeclOccurrence.h
    M clang/include/clang/Index/IndexingOptions.h
    M clang/lib/Index/FileIndexRecord.cpp
    M clang/lib/Index/FileIndexRecord.h
    M clang/lib/Index/IndexingAction.cpp
    M clang/lib/Index/IndexingContext.cpp
    M clang/lib/Index/IndexingContext.h
    M clang/lib/Index/USRGeneration.cpp
    M clang/test/Index/Core/Inputs/module/ModA.h
    M clang/test/Index/Core/Inputs/module/SubModA.h
    M clang/test/Index/Core/Inputs/sys/system-head.h
    M clang/test/Index/Core/index-macros.c
    M clang/test/Index/Core/index-with-module.m
    M clang/tools/c-index-test/core_main.cpp
    M clang/unittests/Index/IndexTests.cpp

  Log Message:
  -----------
  [index] Improve macro indexing support

The major change here is to index macro occurrences in more places than
before, specifically

* In non-expansion references such as `#if`, `#ifdef`, etc.
* When the macro is a reference to a builtin macro such as __LINE__.
* When using the preprocessor state instead of callbacks, we now include
  all definition locations and undefinitions instead of just the latest
  one (which may also have had the wrong location previously).
* When indexing an existing module file (.pcm), we now include module
  macros, and we no longer report unrelated preprocessor macros during
  indexing the module, which could have caused duplication.

Additionally, we now correctly obey the system symbol filter for macros,
so by default in system headers only definition/undefinition occurrences
are reported, but it can be configured to report references as well if
desired.

Extends FileIndexRecord to support occurrences of macros. Since the
design of this type is to keep a single list of entities organized by
source location, we incorporate macros into the existing DeclOccurrence
struct.

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


  Commit: a3e1b1112317bace8bf77de79cb0b421d833ec70
      https://github.com/llvm/llvm-project/commit/a3e1b1112317bace8bf77de79cb0b421d833ec70
  Author: Julian Lettner <julian.lettner at apple.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M compiler-rt/test/sanitizer_common/ios_commands/iossim_compile.py
    M compiler-rt/test/sanitizer_common/ios_commands/iossim_env.py
    M compiler-rt/test/sanitizer_common/ios_commands/iossim_prepare.py
    M compiler-rt/test/sanitizer_common/ios_commands/iossim_run.py

  Log Message:
  -----------
  [Sanitizer] Adopt Python 3 for iOS simulator test scripts

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


  Commit: 710651c61dcdb2f969811b9a8c7efb425b5e2918
      https://github.com/llvm/llvm-project/commit/710651c61dcdb2f969811b9a8c7efb425b5e2918
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M lldb/source/Commands/CommandObjectMemory.cpp
    M lldb/test/API/functionalities/memory/read/TestMemoryRead.py

  Log Message:
  -----------
  [lldb] Fix bug where memory read --outfile is not truncating the file

The memory read --outfile command should truncate the output when unless
--append-outfile. Fix the bug and add a test.

rdar://76062318

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


  Commit: 5571cc7deed6dc01f4764adbbf3d668866f22173
      https://github.com/llvm/llvm-project/commit/5571cc7deed6dc01f4764adbbf3d668866f22173
  Author: Alexander Belyaev <pifon at google.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td

  Log Message:
  -----------
  [mlir][linalg] Add helpers for linalg.tiled_loop [nfc].

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


  Commit: 04b3c8c52c549ee57e69a1b23484b8c4109f83b8
      https://github.com/llvm/llvm-project/commit/04b3c8c52c549ee57e69a1b23484b8c4109f83b8
  Author: Paul Robinson <paul.robinson at sony.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/lib/Driver/ToolChains/Clang.cpp
    A clang/test/Driver/crash-diagnostics-dir-2.c
    M llvm/lib/Support/Signals.cpp
    M llvm/lib/Support/Windows/Signals.inc

  Log Message:
  -----------
  Pass -fcrash-diagnostics-dir along to LLVM

This allows frontend and backend diagnostic files to all go into the
same place.  Have it control the Windows (mini-)dump location.

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


  Commit: 9c8b28a69b95db539f5da5ee5af6e273504bf869
      https://github.com/llvm/llvm-project/commit/9c8b28a69b95db539f5da5ee5af6e273504bf869
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    A llvm/test/tools/llvm-reduce/remove-module-inline-asm.ll
    M llvm/tools/llvm-reduce/CMakeLists.txt
    M llvm/tools/llvm-reduce/DeltaManager.cpp
    A llvm/tools/llvm-reduce/deltas/ReduceModuleInlineAsm.cpp
    A llvm/tools/llvm-reduce/deltas/ReduceModuleInlineAsm.h
    M llvm/utils/gn/secondary/llvm/tools/llvm-reduce/BUILD.gn

  Log Message:
  -----------
  [llvm-reduce] Remove unwanted module inline asm

We can clear line by line, but that's likely not very important.

Reviewed By: hans

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


  Commit: 96dbdd753a1f8bfe0d03f13de484fa18c8bca8db
      https://github.com/llvm/llvm-project/commit/96dbdd753a1f8bfe0d03f13de484fa18c8bca8db
  Author: Christopher Di Bella <cjdb at google.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M libcxx/docs/Cxx2aStatusPaperStatus.csv
    M libcxx/include/concepts
    A libcxx/test/std/concepts/concepts.callable/concept.equiv/equivalence_relation.compile.pass.cpp
    A libcxx/test/std/concepts/concepts.callable/concept.equiv/equivalence_relation.subsumption.compile.pass.cpp
    A libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.compile.pass.cpp
    A libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.subsumption.compile.pass.cpp
    A libcxx/test/std/concepts/concepts.callable/concept.relation/relation.compile.pass.cpp
    A libcxx/test/std/concepts/concepts.callable/concept.relation/relation.subsumption.compile.pass.cpp
    A libcxx/test/std/concepts/concepts.callable/concept.strictweakorder/strict_weak_order.compile.pass.cpp
    A libcxx/test/std/concepts/concepts.callable/concept.strictweakorder/strict_weak_order.subsumption.compile.pass.cpp

  Log Message:
  -----------
  [libcxx] adds remaining callable concepts

* `std::predicate`
* `std::relation`
* `std::equivalence_relation`
* `std::strict_weak_order`

Implements parts of:
    - P0898R3 Standard Library Concepts
    - P1754 Rename concepts to standard_case for C++20, while we still can

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


  Commit: dc8d63de5d5ec987b89256564a038cb580cae607
      https://github.com/llvm/llvm-project/commit/dc8d63de5d5ec987b89256564a038cb580cae607
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M lldb/source/Plugins/Language/ObjC/Cocoa.cpp

  Log Message:
  -----------
  [lldb] Format Plugins/Language/ObjC/Cocoa.cpp (NFC)


  Commit: 8f798566a3988491b8ff4d2e77cff5063e2fc92f
      https://github.com/llvm/llvm-project/commit/8f798566a3988491b8ff4d2e77cff5063e2fc92f
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp

  Log Message:
  -----------
  [AMDGPU] SIFoldOperands: use isUseMIInFoldList. NFC.


  Commit: 3ae03f67fe41f336c022ada37f8525bfa2bc5a8e
      https://github.com/llvm/llvm-project/commit/3ae03f67fe41f336c022ada37f8525bfa2bc5a8e
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.h

  Log Message:
  -----------
  [RISCV] Add helper function to share some of the code for isel of vector load/store intrinsics.

Many of the operands are handled the same or in the same order
for all these intrinsics. Factor out the code for selecting and
pushing them into the Operands vector.

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


  Commit: 91d6debbb9136a0ac30278135bd4089c9e614ad1
      https://github.com/llvm/llvm-project/commit/91d6debbb9136a0ac30278135bd4089c9e614ad1
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M libcxx/test/std/concepts/concepts.callable/concept.invocable/invocable.compile.pass.cpp
    M libcxx/test/std/concepts/concepts.callable/concept.regularinvocable/regular_invocable.pass.cpp

  Log Message:
  -----------
  [libcxx] [test] Use dedicated types for the invocable concept tests for multiple overloads

This should be clearer, instead of relying on rules for implicit
conversions regarding built in float/integer types.

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


  Commit: 948dd664c3ed30dd853df03cb931436f280bad4a
      https://github.com/llvm/llvm-project/commit/948dd664c3ed30dd853df03cb931436f280bad4a
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M libcxx/include/experimental/functional
    M libcxx/include/functional
    M libcxx/include/utility
    M libcxx/test/libcxx/diagnostics/nodiscard_extensions.pass.cpp
    M libcxx/test/std/utilities/function.objects/func.search/func.search.default/default.pass.cpp
    M libcxx/test/std/utilities/function.objects/func.search/func.search.default/default.pred.pass.cpp

  Log Message:
  -----------
  [libcxx] Fix the type attribute for a couple templates

Use `_LIBCPP_TEMPLATE_VIS` instead of `_LIBCPP_TYPE_VIS` for a template
class.

This fixes the nodiscard_extensions.pass.cpp and a couple
func.search.default test cases when built in MSVC/DLL configurations.

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


  Commit: 48268aa0a9c18ab244b252b9617b91f6f5055c95
      https://github.com/llvm/llvm-project/commit/48268aa0a9c18ab244b252b9617b91f6f5055c95
  Author: Nicolas Vasilache <nicolas.vasilache at gmail.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M mlir/test/Bindings/Python/ir_affine_map.py

  Log Message:
  -----------
  [mlir][python] Add missing affine map compression test


  Commit: 4059c1c32d37ff3738428dcc2a4c98c4677d3a24
      https://github.com/llvm/llvm-project/commit/4059c1c32d37ff3738428dcc2a4c98c4677d3a24
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Analysis/InstructionSimplify.cpp
    M llvm/test/Transforms/InstSimplify/gep.ll

  Log Message:
  -----------
  [SimplifyInst] Use correct type for GEPs with vector indices.

The current code does not properly handle vector indices unless they are
the first index.

At the moment LangRef gives the impression that the vector index must be
the one and only index (https://llvm.org/docs/LangRef.html#getelementptr-instruction).

But vector indices can appear at any position and according to the
verifier there may be multiple vector indices. If that's the case, the
number of elements must match.

This patch updates SimplifyGEPInst to properly handle those additional
cases.

Reviewed By: nikic

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


  Commit: 801cea2ce9515cc6b6c9b59dfac6e48074737da1
      https://github.com/llvm/llvm-project/commit/801cea2ce9515cc6b6c9b59dfac6e48074737da1
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp

  Log Message:
  -----------
  [lldb] Fix else-after-return in AppleObjCRuntimeV2 (NFC)

Use early returns to associate the error message with the corresponding
condition and eliminate some else-after-returns in the process.


  Commit: 4e83e59eb8f096c8399489c61c1db034814a76ba
      https://github.com/llvm/llvm-project/commit/4e83e59eb8f096c8399489c61c1db034814a76ba
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/GVN.cpp
    A llvm/test/Transforms/GVN/pr49193.ll

  Log Message:
  -----------
  [GVN] Add missing ICF update

performScalarPREInsertion() inserts instructions into blocks that we
need to tell ImplicitControlFlowTracking about, otherwise the ICF cache
may be invalid.

Fixes PR49193.

Reviewed By: nikic

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


  Commit: a9a7498b3f25750608ae07eb009a4091cbe9060f
      https://github.com/llvm/llvm-project/commit/a9a7498b3f25750608ae07eb009a4091cbe9060f
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M libcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.cons/path.pass.cpp
    M libcxx/test/std/input.output/filesystems/class.directory_iterator/directory_iterator.members/ctor.pass.cpp
    M libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp
    M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.exists/exists.pass.cpp
    M libcxx/test/support/filesystem_test_helper.h

  Log Message:
  -----------
  [libcxx] [test] Allow C:\System Volume Information to be missing

If running in a Windows Container, there is no such directory at all.

If running from within bash on Windows Server, the directory seems to
be fully accessible. (The mechanics of this isn't fully understood, and
it doesn't seem to happen on desktop versions.)

If the directory isn't available with the expected behaviour, mark those
individual tests as unsupported. (The test as a whole is considered to
pass, but the unsupported test is mentioned in a test summary printed on
stdout.)

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


  Commit: 3b1b1d7530e6cf2c3aac25fc9d079f083e929137
      https://github.com/llvm/llvm-project/commit/3b1b1d7530e6cf2c3aac25fc9d079f083e929137
  Author: James Y Knight <jyknight at google.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M compiler-rt/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cpp

  Log Message:
  -----------
  Fix f6ee97d8271e1dfd9b6572222fefe8f40433952e:

PrintAddress needs to be false (as it was before), or this breaks sanitizer backtraces.


  Commit: a6d2a8d6f59a974752666305c4baaabebee41b95
      https://github.com/llvm/llvm-project/commit/a6d2a8d6f59a974752666305c4baaabebee41b95
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/AssumptionCache.h
    M llvm/include/llvm/IR/IntrinsicInst.h
    M llvm/lib/Analysis/AssumptionCache.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/lib/Transforms/Scalar/LoopUnswitch.cpp
    M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
    M llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp
    M llvm/lib/Transforms/Utils/CodeExtractor.cpp
    M llvm/lib/Transforms/Utils/InlineFunction.cpp
    M llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
    M llvm/lib/Transforms/Utils/LoopUnroll.cpp
    M llvm/lib/Transforms/Utils/LoopUnrollAndJam.cpp
    M llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp

  Log Message:
  -----------
  Add a subclass of IntrinsicInst for llvm.assume [nfc]

Add the subclass, update a few places which check for the intrinsic to use idiomatic dyn_cast, and update the public interface of AssumptionCache to use the new class.  A follow up change will do the same for the newer assumption query/bundle mechanisms.


  Commit: e0df2b540a5a7d6076bb77352e50fcd0e14522e0
      https://github.com/llvm/llvm-project/commit/e0df2b540a5a7d6076bb77352e50fcd0e14522e0
  Author: Jez Ng <jezng at fb.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M lld/MachO/Driver.cpp
    M lld/MachO/InputFiles.cpp
    M lld/MachO/InputFiles.h

  Log Message:
  -----------
  [lld-macho] Rename SubsectionMapping to SubsectionMap

We bikeshedded about it here: https://reviews.llvm.org/D98837#inline-931557

I initially suggested SubsectionMapping, but I thought the discussion
landed on doing `std::vector<SubsectionEntry>`. @alexshap went and did
both, but on hindsight I regret adding 3 more characters to an already
long name, and I think SubsectionEntry is descriptive enough...

This diff also renames `subsectionMap` to `subsecMap` for consistency
with other variable names in the codebase.


  Commit: 174deb0539ee4af7d20bfead9f73055782e878e3
      https://github.com/llvm/llvm-project/commit/174deb0539ee4af7d20bfead9f73055782e878e3
  Author: Jez Ng <jezng at fb.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M lld/MachO/Driver.cpp
    M lld/MachO/Driver.h
    M lld/MachO/Symbols.cpp
    M lld/MachO/Symbols.h
    M lld/MachO/SyntheticSections.cpp

  Log Message:
  -----------
  [lld-macho] clang-format cleanup

  find . -type f -name "*.cpp" -o -name "*.h" | xargs clang-format -i


  Commit: fb41cae03976f5148af15684a64b3172beed47d5
      https://github.com/llvm/llvm-project/commit/fb41cae03976f5148af15684a64b3172beed47d5
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/StatepointLowering.h

  Log Message:
  -----------
  More precisely type code used for gc.relocate assertions [nfc]


  Commit: a7ef45bc5c1d0c2788680dbcb261304d7dfae03c
      https://github.com/llvm/llvm-project/commit/a7ef45bc5c1d0c2788680dbcb261304d7dfae03c
  Author: Fangrui Song <i at maskray.me>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Passes/StandardInstrumentations.cpp

  Log Message:
  -----------
  [NewPM] Fix -Wunused-lambda-capture in -DLLVM_ENABLE_ASSERTIONS=off builds after D91327


  Commit: bd6033eca7be937a236401fdbbf414d6929a44e8
      https://github.com/llvm/llvm-project/commit/bd6033eca7be937a236401fdbbf414d6929a44e8
  Author: Amy Kwan <amy.kwan1 at ibm.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
    M llvm/test/CodeGen/PowerPC/p10-constants.ll

  Log Message:
  -----------
  [PowerPC] Materialize 34-bit constants with pli directly

Previously, 34-bit constants were materialized in selectI64Imm(), and we relied
on td pattern matching to instead produce a pli. This becomes problematic as
there is no guarantee that the 34-bit constant will reach the td pattern
selection for pli. It is also possible for other transformations (such as complex
bit permutations) to also produce and utilize the 34-bit constant materialized
through selectI64Imm().

This patch instead produces pli on Power10 directly whenever the constant fits
within 34-bits.

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


  Commit: 1d9d7f6a2c0f6121df9468ea156d3a147c3b604c
      https://github.com/llvm/llvm-project/commit/1d9d7f6a2c0f6121df9468ea156d3a147c3b604c
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M mlir/test/Dialect/Linalg/transform-patterns.mlir

  Log Message:
  -----------
  [MLIR, test] Fix use of undef FileCheck var

MLIR test Dialect/Linalg/transform-patterns.mlir tries to check for the
absence of a sequence of instructions with several CHECK-NOT with one of
those directives using a variable defined in another. However CHECK-NOT
are checked independently so that is using a variable defined in a
pattern that should not occur in the input.

This commit removes the dependency between those CHECK-NOT by replacing
occurences of variables by the regex that were used to define them.

Note to reviewers: please pay attention to whether the remaining
reference to l0 is correct. There was a l0 defined in those CHECK-NOT
and one defined before. I'm not sure what was the intent there.

Reviewed By: nicolasvasilache

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


  Commit: 9456e720ec8465a9da2acbda14cd7d67cddf16f7
      https://github.com/llvm/llvm-project/commit/9456e720ec8465a9da2acbda14cd7d67cddf16f7
  Author: Jez Ng <jezng at fb.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    R lld/test/MachO/dylink-lazy.s
    R lld/test/MachO/stub-framework.s
    R lld/test/MachO/stub-link-by-arch.s
    R lld/test/MachO/stub-link.s
    A lld/test/MachO/tapi-framework.s
    A lld/test/MachO/tapi-link-by-arch.s
    A lld/test/MachO/tapi-link.s
    A lld/test/MachO/x86-64-stubs.s

  Log Message:
  -----------
  [lld-macho][nfc] Rename some tests

"stub" is a bit too overloaded... we were using it to refer to
TAPI files, but it's also the name for the PLT trampolines in Mach-O.
Going ahead, let's just use "TAPI" or ".tbd" to refer to TAPI stuff.

Reviewed By: #lld-macho, oontvoo

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


  Commit: 94f75202accb26d71fd3149f410e80d602fc562d
      https://github.com/llvm/llvm-project/commit/94f75202accb26d71fd3149f410e80d602fc562d
  Author: Jez Ng <jezng at fb.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M lld/MachO/Options.td
    M lld/test/MachO/sectcreate.s
    M lld/test/MachO/why-load.s

  Log Message:
  -----------
  [lld-macho][nfc] Remove HelpHidden from aliases to implemented flags

This is a no-op. Just cleaning up Options.td...

Reviewed By: #lld-macho, oontvoo

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


  Commit: ceec610754b045cdac4ae0d705d8d9651e323fc4
      https://github.com/llvm/llvm-project/commit/ceec610754b045cdac4ae0d705d8d9651e323fc4
  Author: Jez Ng <jezng at fb.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M lld/MachO/InputFiles.cpp
    M lld/MachO/SymbolTable.cpp
    M lld/MachO/Symbols.h
    M lld/test/MachO/stabs.s
    M lld/test/MachO/symtab.s

  Log Message:
  -----------
  [lld-macho] Fix & refactor symbol size calculations

I noticed two problems with the previous implementation:

* N_ALT_ENTRY symbols weren't being handled correctly -- they should
  determine the size of the previous symbol, even though they don't
  cause a new section to be created
* The last symbol in a section had its size calculated wrongly;
  the first subsection's size was used instead of the last one

I decided to take the opportunity to refactor things as well, mainly to
realize my observation
[here](https://reviews.llvm.org/D98837#inline-931511) that we could
avoid doing a binary search to match symbols with subsections. I think
the resulting code is a bit simpler too.

      N           Min           Max        Median           Avg        Stddev
  x  20          4.31          4.43          4.37        4.3775   0.034162922
  +  20          4.32          4.43          4.38        4.3755    0.02799906
  No difference proven at 95.0% confidence

Reviewed By: #lld-macho, alexshap

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


  Commit: fcc57558783b12de7a7d2cea809f72705ea849b4
      https://github.com/llvm/llvm-project/commit/fcc57558783b12de7a7d2cea809f72705ea849b4
  Author: Christian Sigg <csigg at google.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M mlir/lib/IR/BuiltinAttributes.cpp

  Log Message:
  -----------
  [mlir] Remove no-op array assignment in dictionaryAttrSort().

Reviewed By: rriddle

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


  Commit: ae318beb35517c70505114cab8d1fb286f99ab4b
      https://github.com/llvm/llvm-project/commit/ae318beb35517c70505114cab8d1fb286f99ab4b
  Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M libcxx/test/std/concepts/concepts.callable/concept.invocable/invocable.compile.pass.cpp
    M libcxx/test/std/concepts/concepts.callable/concept.regularinvocable/regular_invocable.pass.cpp

  Log Message:
  -----------
  [libc++] Post-commit review on D99928.

The "user-defined conversion by implicit constructor" codepath is already
handled by `B(int)`; we don't need to test `A(const A&)` a second time
via `DA` (nor the isomorphic case with `DB`).
We don't need `&` anywhere in this test.
Generally, `operator()` should be const; this test needn't be special.
(No functional change in test coverage.)


  Commit: 2d0f1fa472a99dbb46735623363fe918feeda795
      https://github.com/llvm/llvm-project/commit/2d0f1fa472a99dbb46735623363fe918feeda795
  Author: Arthur O'Dwyer <arthur.j.odwyer at gmail.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M libcxx/docs/Contributing.rst
    M libcxx/include/chrono
    M libcxx/include/deque
    M libcxx/include/filesystem
    M libcxx/include/iterator
    M libcxx/include/map
    M libcxx/include/memory
    M libcxx/include/optional
    M libcxx/include/queue
    M libcxx/include/regex
    M libcxx/include/set
    M libcxx/include/string
    M libcxx/include/string_view
    M libcxx/include/system_error
    M libcxx/include/tuple
    M libcxx/include/typeindex
    M libcxx/include/unordered_map
    M libcxx/include/unordered_set
    M libcxx/include/utility
    M libcxx/include/variant
    M libcxx/include/vector
    A libcxx/test/libcxx/inclusions/algorithm.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/array.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/bitset.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/chrono.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/cinttypes.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/complex.h.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/deque.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/filesystem.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/forward_list.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/ios.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/iostream.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/iterator.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/list.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/map.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/memory.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/optional.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/queue.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/random.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/regex.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/set.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/stack.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/string.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/string_view.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/system_error.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/tgmath.h.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/thread.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/tuple.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/typeindex.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/unordered_map.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/unordered_set.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/utility.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/valarray.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/variant.inclusions.compile.pass.cpp
    A libcxx/test/libcxx/inclusions/vector.inclusions.compile.pass.cpp
    A libcxx/utils/generate_header_inclusion_tests.py

  Log Message:
  -----------
  [libc++] Header inclusion tests.

As mandated by the Standard's various synopses, e.g. [iterator.synopsis].
Searching the TeX source for '#include' is a good way to find all of these
mandates.

The new tests are all autogenerated by utils/generate_header_inclusion_tests.py.
I was SHOCKED by how many mandates there are, and how many of them
libc++ wasn't conforming with.

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


  Commit: 8fbc05acd5531a8bb74f689699e8de2788bcb769
      https://github.com/llvm/llvm-project/commit/8fbc05acd5531a8bb74f689699e8de2788bcb769
  Author: Alexandre Ganea <alexandre.ganea at ubisoft.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    A clang/test/Frontend/rewrite-includes-macros.cpp

  Log Message:
  -----------
  [Windows] Add test coverage for line endings when rewriting includes

Validate that we're properly generating a single line ending on Windows when
using -frewrite-includes. Otherwise we're breaking split-line macros. The test
fails before 23929af383f27a6ddf23704192a25591481152b3.

See discussion in https://reviews.llvm.org/D96363#2650460 and D99426

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


  Commit: ddebed8e9742add4372d54021cb55e06b655cfd6
      https://github.com/llvm/llvm-project/commit/ddebed8e9742add4372d54021cb55e06b655cfd6
  Author: Felix Berger <flx at google.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang-tools-extra/clang-tidy/utils/Matchers.h
    M clang-tools-extra/docs/clang-tidy/checks/performance-for-range-copy.rst
    M clang-tools-extra/docs/clang-tidy/checks/performance-unnecessary-copy-initialization.rst
    M clang-tools-extra/docs/clang-tidy/checks/performance-unnecessary-value-param.rst
    M clang-tools-extra/test/clang-tidy/checkers/performance-for-range-copy-allowed-types.cpp

  Log Message:
  -----------
  [clang-tidy] performance-* checks: Match AllowedTypes against qualified type names when they contain "::".

This allows users to be more precise and exclude a type in a specific namespace
from triggering the check instead of excluding all types with the same
unqualified name.

This change should not interfere with correctly configured clang-tidy setups
since an AllowedType with "::" would never match.

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

Reviewed-by: ymandel, hokein


  Commit: 61d065e21ff37fb9040aed711c97daddac2f7577
      https://github.com/llvm/llvm-project/commit/61d065e21ff37fb9040aed711c97daddac2f7577
  Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/CodeGen/CGAtomic.cpp
    M clang/lib/Sema/SemaChecking.cpp
    A clang/test/CodeGen/fp-atomic-ops.c
    A clang/test/CodeGenCUDA/amdgpu-atomic-ops.cu
    M clang/test/CodeGenOpenCL/atomic-ops.cl
    M clang/test/Sema/atomic-ops.c
    M clang/test/SemaOpenCL/atomic-ops.cl

  Log Message:
  -----------
  Let clang atomic builtins fetch add/sub support floating point types

Recently atomicrmw started to support fadd/fsub:

https://reviews.llvm.org/D53965

However clang atomic builtins fetch add/sub still does not support
emitting atomicrmw fadd/fsub.

This patch adds that.

Reviewed by: John McCall, Artem Belevich, Matt Arsenault, JF Bastien,
James Y Knight, Louis Dionne, Olivier Giroux

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


  Commit: 0c3bc1f3a47752489871b7a0b06f6986935c4a1e
      https://github.com/llvm/llvm-project/commit/0c3bc1f3a47752489871b7a0b06f6986935c4a1e
  Author: Luís Marques <luismarques at lowrisc.org>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M compiler-rt/lib/asan/asan_mapping.h
    M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp

  Log Message:
  -----------
  [ASan][RISCV] Fix RISC-V memory mapping

Fixes the ASan RISC-V memory mapping (originally introduced by D87580 and
D87581). This should be an improvement both in terms of first principles
soundness and observed test failures --- test failures would occur
non-deterministically depending on the ASLR random offset.

On RISC-V Linux (64-bit), `TASK_UNMAPPED_BASE` is currently defined as
`PAGE_ALIGN(TASK_SIZE / 3)`. The non-power-of-two divisor makes the result
be the not very round number 0x1555556000. That address had to be further
rounded to ensure page alignment after the shadow scale shifting is applied.
Still, that value explains why the mapping table may look less regular than
expected.

Further cleanups:
- Moved the mapping table comment, to ensure that the two Linux/AArch64
tables stayed together;
- Removed mention of Sv48. Neither the original mapping nor this one are
compatible with an actual Linux Sv48 address space (mainline Linux still
operates Sv48 in Sv39 mode). A future patch can improve this;
- Removed the additional comments, for consistency.

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


  Commit: b09df246cad93436325150f9115b69471dda2531
      https://github.com/llvm/llvm-project/commit/b09df246cad93436325150f9115b69471dda2531
  Author: Luís Marques <luismarques at lowrisc.org>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/utils/lit/tests/xfail-cl.py

  Log Message:
  -----------
  [lit testing] Fix xfail-cl.py test worker count

This would fail in test environments with < 3 hardware threads.

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


  Commit: 96caf3817f4771eb6ef496371b62e69994ef28cf
      https://github.com/llvm/llvm-project/commit/96caf3817f4771eb6ef496371b62e69994ef28cf
  Author: Jacques Pienaar <jpienaar at google.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M mlir/tools/mlir-tblgen/CMakeLists.txt
    M mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp
    M mlir/tools/mlir-tblgen/OpDocGen.cpp
    A mlir/tools/mlir-tblgen/OpGenHelpers.cpp
    A mlir/tools/mlir-tblgen/OpGenHelpers.h

  Log Message:
  -----------
  [mlir] Hoist out getRequestedOpDefinitions helper

Enables performing the same filtering in the op doc definition as in the op definition generator.

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


  Commit: 9ef6aa020b6fb9c7672919985b0ed2a6953a3596
      https://github.com/llvm/llvm-project/commit/9ef6aa020b6fb9c7672919985b0ed2a6953a3596
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/AssumeBundleQueries.h
    M llvm/include/llvm/Transforms/Scalar/GVN.h
    M llvm/include/llvm/Transforms/Utils/AssumeBundleBuilder.h
    M llvm/lib/Analysis/AssumeBundleQueries.cpp
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/lib/Transforms/Scalar/GVN.cpp
    M llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp
    M llvm/lib/Transforms/Utils/Local.cpp
    M llvm/unittests/Analysis/AssumeBundleQueriesTest.cpp

  Log Message:
  -----------
  Plumb AssumeInst through operand bundle apis [nfc]

Follow up to a6d2a8d6f5.  This covers all the public interfaces of the bundle related code.  I tried to cleanup the internals where the changes were obvious, but there's definitely more room for improvement.


  Commit: d0615a93bb6d7aedc43323dc8957fe57e86ed8ae
      https://github.com/llvm/llvm-project/commit/d0615a93bb6d7aedc43323dc8957fe57e86ed8ae
  Author: Artem Belevich <tra at google.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Target/NVPTX/NVPTXLowerArgs.cpp
    M llvm/test/CodeGen/NVPTX/lower-byval-args.ll

  Log Message:
  -----------
  [NVPTX] Handle bitcast and ASC(101) when trying to avoid argument copy.

This allows us to skip the copy in few more cases.

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


  Commit: 3ba246719b7cde7cb5f4603dd25c0c46df22ea36
      https://github.com/llvm/llvm-project/commit/3ba246719b7cde7cb5f4603dd25c0c46df22ea36
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/AArch64/speculation-hardening.ll

  Log Message:
  -----------
  [test, AArch64] Fix use of var defined in CHECK-NOT

LLVM test CodeGen/AArch64/speculation-hardening.ll tries to check for
the absence of a sequence of instructions with several CHECK-NOT with
one of those directives using a variable defined in another. However
CHECK-NOT are checked independently so that is using a variable defined
in a pattern that should not occur in the input.

This commit removes the dependency between those CHECK-NOT by replacing
single occurence of the undefined variable by a regex match, and
multiple occurences by a definition followed by a use.

Reviewed By: aemerson

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


  Commit: 69190f95b1698cec8366ad657000b275c2039c1b
      https://github.com/llvm/llvm-project/commit/69190f95b1698cec8366ad657000b275c2039c1b
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M libcxx/test/libcxx/language.support/support.rtti/type.info/type_info.comparison.apple.compile.pass.cpp

  Log Message:
  -----------
  [libc++] NFCI: Fix test pinning down RTTI implementation on Apple platforms

The test didn't handle arm64 correctly.


  Commit: 908215b34636f579533ecd6671bb6213b8327dbc
      https://github.com/llvm/llvm-project/commit/908215b34636f579533ecd6671bb6213b8327dbc
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Analysis/AssumptionCache.cpp
    M llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
    M llvm/lib/Analysis/TypeMetadataUtils.cpp
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    M llvm/lib/IR/User.cpp
    M llvm/lib/IR/Value.cpp
    M llvm/lib/Transforms/IPO/LowerTypeTests.cpp
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/lib/Transforms/Scalar/EarlyCSE.cpp
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  Log Message:
  -----------
  Use AssumeInst in a few more places [nfc]

Follow up to a6d2a8d6f5.  These were found by simply grepping for "::assume", and are the subset of that result which looked cleaner to me using the isa/dyn_cast patterns.


  Commit: 4bf8985f4fb1411831505a4b38265eb517783dc7
      https://github.com/llvm/llvm-project/commit/4bf8985f4fb1411831505a4b38265eb517783dc7
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp

  Log Message:
  -----------
  Replace calls to IntrinsicInst::Create with CallInst::Create [nfc]

There is no IntrinsicInst::Create.  These are binding to the method in the super type.  Be explicitly about which method is being called.


  Commit: dfec26b186d2f0c80f2b70901b7cc5747f5b377c
      https://github.com/llvm/llvm-project/commit/dfec26b186d2f0c80f2b70901b7cc5747f5b377c
  Author: Aaron Puchert <aaron.puchert at sap.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/lib/Analysis/ThreadSafety.cpp
    M clang/test/SemaCXX/warn-thread-safety-analysis.cpp

  Log Message:
  -----------
  Thread safety analysis: Don't warn about managed locks on join points

We already did so for scoped locks acquired in the constructor, this
change extends the treatment to deferred locks and scoped unlocking, so
locks acquired outside of the constructor. Obviously this makes things
more consistent.

Originally I thought this was a bad idea, because obviously it
introduces false negatives when it comes to double locking, but these
are typically easily found in tests, and the primary goal of the Thread
safety analysis is not to find double locks but race conditions.
Since the scoped lock will release the mutex anyway when the scope ends,
the inconsistent state is just temporary and probably fine.

Reviewed By: delesley

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


  Commit: 0312b25df0a872295f8db203fbebfb4a0d7f0f3e
      https://github.com/llvm/llvm-project/commit/0312b25df0a872295f8db203fbebfb4a0d7f0f3e
  Author: Rob Suderman <rob.suderman at gmail.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir

  Log Message:
  -----------
  [mlir][tosa] Add tosa.table lowering to linalg.generic

Table op lowering to linalg.generic for both i8 (behaves like a gather) and a
pair of gathers with a quantized interpolation.

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


  Commit: c060945b23a1c54d4b2a053ff4b093a2277b303d
      https://github.com/llvm/llvm-project/commit/c060945b23a1c54d4b2a053ff4b093a2277b303d
  Author: Vince Bridgers <vince.a.bridgers at gmail.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang-tools-extra/docs/clang-tidy/checks/bugprone-misplaced-widening-cast.rst

  Log Message:
  -----------
  [docs] Update documentation for bugprone-misplaced-widening-cast

The default setting for CheckImplicitCasts was changed in
https://reviews.llvm.org/D32164 but the documentation was not updated.
This simple change just syncs the documentation with the behavior of
that checker.

Reviewed By: aaron.ballman

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


  Commit: d81d9e8b8604c85709de0a22bb8dd672a28f0401
      https://github.com/llvm/llvm-project/commit/d81d9e8b8604c85709de0a22bb8dd672a28f0401
  Author: Sidharth Baveja <sidharth.baveja at ibm.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h
    M llvm/lib/Transforms/Coroutines/CoroFrame.cpp
    M llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
    M llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp
    M llvm/unittests/Transforms/Utils/BasicBlockUtilsTest.cpp

  Log Message:
  -----------
  [SplitEdge] Update SplitCriticalEdge to return a nullptr only when the edge is not critical

Summary:
The function SplitCriticalEdge (called by SplitEdge) can return a nullptr in
cases where the edge is a critical. SplitEdge uses SplitCriticalEdge assuming it
can always split all critical edges, which is an incorrect assumption.

The three cases where the function SplitCriticalEdge will return a nullptr is:
1. DestBB is an exception block
2. Options.IgnoreUnreachableDests is set to true and
isa(DestBB->getFirstNonPHIOrDbgOrLifetime()) is not equal to a nullptr
3. LoopSimplify form must be preserved (Options.PreserveLoopSimplify is true)
and it cannot be maintained for a loop due to indirect branches

For each of these situations they are handled in the following way:
1. Modified the function ehAwareSplitEdge originally from
llvm/lib/Transforms/Coroutines/CoroFrame.cpp to handle the cases when the DestBB
is an exception block. This function is called directly in SplitEdge.
SplitEdge does not call SplitCriticalEdge in this case
2. Options.IgnoreUnreachableDests is set to false by default, so this situation
does not apply.
3. Return a nullptr in this situation since the SplitCriticalEdge also returned
nullptr. Nothing we can do in this case.

Reviewed By: asbirlea

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


  Commit: 0126e906483c50c47db0687195e4b0216479846e
      https://github.com/llvm/llvm-project/commit/0126e906483c50c47db0687195e4b0216479846e
  Author: John Demme <john.demme at microsoft.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M mlir/lib/Bindings/Python/IRCore.cpp
    M mlir/lib/Bindings/Python/IRModule.h
    M mlir/test/Bindings/Python/ir_operation.py

  Log Message:
  -----------
  [MLIR] [Python] Add capsule methods for pybind11 to PyOperation

Add the `getCapsule()` and `createFromCapsule()` methods to the PyOperation class.

Reviewed By: stellaraccident

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


  Commit: 0d6dd23ca9a32325bb756c656cfc1a275984b05e
      https://github.com/llvm/llvm-project/commit/0d6dd23ca9a32325bb756c656cfc1a275984b05e
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Support/MachineValueType.h

  Log Message:
  -----------
  [MachineValueTypes] Add blank lines between floating point vectors with different element types. NFC


  Commit: 2461804b484e53e448632de0b195ce187e9b0b04
      https://github.com/llvm/llvm-project/commit/2461804b484e53e448632de0b195ce187e9b0b04
  Author: Jez Ng <jezng at fb.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M lld/MachO/InputFiles.cpp
    M lld/MachO/SymbolTable.cpp
    M lld/MachO/SymbolTable.h

  Log Message:
  -----------
  [lld-macho] Symbol::value should always be uint64_t

D98837 migrated a bunch of `value`s to uint64_t, but missed these.


  Commit: 3da61ddae7fe77f71b89ce20cf6b5febd68d216a
      https://github.com/llvm/llvm-project/commit/3da61ddae7fe77f71b89ce20cf6b5febd68d216a
  Author: Hansang Bae <hansang.bae at intel.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/Builtins.def
    M clang/lib/AST/ExprConstant.cpp
    R clang/test/OpenMP/is_initial_device.c
    A openmp/libomptarget/test/api/is_initial_device.c
    M openmp/runtime/src/include/omp.h.var

  Log Message:
  -----------
  [OpenMP] Define omp_is_initial_device() variants in omp.h

omp_is_initial_device() is marked as a built-in function in the current
compiler, and user code guarded by this call may be optimized away,
resulting in undesired behavior in some cases. This patch provides a
possible fix for such cases by defining the routine as a variant
function and removing it from builtin list.

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


  Commit: 2641c1f15ea53125eb4119af036c60553b30f7bf
      https://github.com/llvm/llvm-project/commit/2641c1f15ea53125eb4119af036c60553b30f7bf
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp

  Log Message:
  -----------
  [RISCV] Don't custom type legalize fixed vector to scalar integer bitcasts if the fixed vector type isn't legal.

We encountered a hang in our internal code base. I'm having trouble
creating a test case because the test that hit it was testing some
code that is not upstream.


  Commit: 52cc9df1c14cf34dbfe491cf2b4079c920a2190e
      https://github.com/llvm/llvm-project/commit/52cc9df1c14cf34dbfe491cf2b4079c920a2190e
  Author: Peter Steinfeld <psteinfeld at nvidia.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M flang/lib/Evaluate/fold-integer.cpp
    M flang/lib/Evaluate/formatting.cpp
    M flang/lib/Semantics/type.cpp
    M flang/test/Semantics/assign04.f90
    A flang/test/Semantics/resolve104.f90
    M flang/test/Semantics/resolve89.f90

  Log Message:
  -----------
  [flang] Improve constant folding for type parameter inquiries

We were not folding type parameter inquiries for the form 'var%typeParam'
where 'typeParam' was a KIND or LEN type parameter of a derived type and 'var'
was a designator of the derived type.  I fixed this by adding code to the
function 'FoldOperation()' for 'TypeParamInquiry's to handle this case.  I also
cleaned up the code for the case where there is no designator.

In order to make the error messages correctly refer to both the points of
declaration and instantiation, I needed to add an argument to the function
'InstantiateIntrinsicType()' for the location of the instantiation.

I also changed the formatting of 'TypeParamInquiry' to correctly format this
case.  I also added tests for both KIND and LEN type parameter inquiries in
resolve104.f90.

Making these changes revealed an error in resolve89.f90 and caused one of the
error messages in assign04.f90 to be different.

Reviewed By: klausler

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


  Commit: a1aada75f565fe9312e341cb850d415529a84eb2
      https://github.com/llvm/llvm-project/commit/a1aada75f565fe9312e341cb850d415529a84eb2
  Author: Nicolás Alvarez <nicolas.alvarez at gmail.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/include/llvm/ADT/STLExtras.h
    M llvm/include/llvm/Analysis/ValueLattice.h
    M llvm/include/llvm/BinaryFormat/MsgPackDocument.h
    M llvm/include/llvm/CodeGen/AccelTable.h
    M llvm/include/llvm/CodeGen/GlobalISel/CSEInfo.h
    M llvm/include/llvm/CodeGen/GlobalISel/Combiner.h
    M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
    M llvm/include/llvm/CodeGen/GlobalISel/CombinerInfo.h
    M llvm/include/llvm/CodeGen/GlobalISel/GISelChangeObserver.h
    M llvm/include/llvm/CodeGen/GlobalISel/GISelKnownBits.h
    M llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h
    M llvm/include/llvm/CodeGen/GlobalISel/LostDebugLocObserver.h
    M llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h
    M llvm/include/llvm/CodeGen/GlobalISel/RegBankSelect.h
    M llvm/include/llvm/CodeGen/LowLevelType.h
    M llvm/include/llvm/CodeGen/Passes.h
    M llvm/include/llvm/CodeGen/TargetPassConfig.h
    M llvm/include/llvm/ExecutionEngine/Orc/SpeculateAnalyses.h
    M llvm/include/llvm/IR/GlobalIFunc.h
    M llvm/include/llvm/IR/PassManagerImpl.h
    M llvm/include/llvm/IR/PassManagerInternal.h
    M llvm/include/llvm/InterfaceStub/ELFObjHandler.h
    M llvm/include/llvm/Support/BinaryStreamArray.h
    M llvm/include/llvm/Support/Chrono.h
    M llvm/include/llvm/Support/LowLevelTypeImpl.h
    M llvm/include/llvm/Support/OptimizedStructLayout.h
    M llvm/lib/CodeGen/EdgeBundles.cpp
    M llvm/lib/CodeGen/LiveRangeUtils.h
    M llvm/lib/CodeGen/MachineSSAUpdater.cpp
    M llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp
    M llvm/lib/Target/X86/ImmutableGraph.h
    M llvm/lib/Target/X86/X86OptimizeLEAs.cpp

  Log Message:
  -----------
  [docs] Fix doxygen comments wrongly attached to the llvm namespace

Looking at the Doxygen-generated documentation for the llvm namespace
currently shows all sorts of random comments from different parts of the
codebase. These are mostly caused by:

- File doc comments that aren't marked with \file, so they're attached to
  the next declaration, which is usually "namespace llvm {".
- Class doc comments placed before the namespace rather than before the
  class.
- Code comments before the namespace that (in my opinion) shouldn't be
  extracted by doxygen at all.

This commit fixes these comments. The generated doxygen documentation now
has proper docs for several classes and files, and the docs for the llvm
and llvm::detail namespaces are now empty.

Reviewed By: thakis, mizvekov

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


  Commit: 01a23dccb1a167869cb08f23817e5a885bd7b555
      https://github.com/llvm/llvm-project/commit/01a23dccb1a167869cb08f23817e5a885bd7b555
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp

  Log Message:
  -----------
  [RISCV] Add an assertion to the ReplaceNodeResults handling of bitcasts to make sure the VT is always a scalar integer.


  Commit: 4fd05e0ad7fba41f27a6f61d9f7fec4382cb96fe
      https://github.com/llvm/llvm-project/commit/4fd05e0ad7fba41f27a6f61d9f7fec4382cb96fe
  Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/lib/Driver/ToolChains/CommonArgs.cpp
    M clang/lib/Driver/ToolChains/HIP.cpp
    M clang/test/Driver/hip-code-object-version.hip
    M clang/test/Driver/hip-target-id.hip
    M clang/test/Driver/hip-toolchain-device-only.hip
    M clang/test/Driver/hip-toolchain-no-rdc.hip
    M clang/test/Driver/hip-toolchain-rdc-separate.hip
    M clang/test/Driver/hip-toolchain-rdc-static-lib.hip
    M clang/test/Driver/hip-toolchain-rdc.hip
    M clang/tools/clang-offload-bundler/ClangOffloadBundler.cpp

  Log Message:
  -----------
  [HIP] Change to code object v4

Change to code object v4 by default to match ROCm 4.1.

Reviewed by: Artem Belevich

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


  Commit: 86175d5fedba7c09ad09ee5afd359e7f9246367a
      https://github.com/llvm/llvm-project/commit/86175d5fedba7c09ad09ee5afd359e7f9246367a
  Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/test/Driver/hip-code-object-version.hip

  Log Message:
  -----------
  Minor fix for test hip-code-object-version.hip

Changed the order of checking of v2 and v3.

Change-Id: Ifea8197b398afdfb0aa1bd40140cda30f00f0c17


  Commit: e74e6afcf13aeb7d0a30e55b2eda89f5910d6e68
      https://github.com/llvm/llvm-project/commit/e74e6afcf13aeb7d0a30e55b2eda89f5910d6e68
  Author: Jacques Pienaar <jpienaar at google.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
    M mlir/test/Dialect/Shape/ops.mlir

  Log Message:
  -----------
  [shape] Add min and max ops

These are element-wise operations that operates on shapes with equal ranks.
Also add missing printer/parser for join operator.

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


  Commit: 401826800ef1d2e73ac9ea8e7e31d6c12d543c5e
      https://github.com/llvm/llvm-project/commit/401826800ef1d2e73ac9ea8e7e31d6c12d543c5e
  Author: Weverything <rtrieu at google.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/test/SemaCXX/warn-max-unsigned-zero.cpp

  Log Message:
  -----------
  Add missing CHECK lines in test


  Commit: b5c63e30ca1af7e36ba5069eb0121d1eb4b06ebb
      https://github.com/llvm/llvm-project/commit/b5c63e30ca1af7e36ba5069eb0121d1eb4b06ebb
  Author: Yevgeny Rouban <yrouban at azul.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Passes/StandardInstrumentations.cpp

  Log Message:
  -----------
  [NewPM] Set verify-cfg-preserved=1 by default for debug builds


  Commit: c4c98c1b0a0c276475fdbd895aa21a85d23352e4
      https://github.com/llvm/llvm-project/commit/c4c98c1b0a0c276475fdbd895aa21a85d23352e4
  Author: Alex Orlov <aorlov at accesssoftek.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp

  Log Message:
  -----------
  Removed redundant code.


  Commit: 5d07dc897707f877c45cab6c7e4b65dad7d3ff6d
      https://github.com/llvm/llvm-project/commit/5d07dc897707f877c45cab6c7e4b65dad7d3ff6d
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/include/llvm/DWARFLinker/DWARFLinker.h
    M llvm/include/llvm/DWARFLinker/DWARFStreamer.h
    M llvm/lib/DWARFLinker/DWARFLinker.cpp
    M llvm/lib/DWARFLinker/DWARFStreamer.cpp
    M llvm/test/tools/dsymutil/ARM/obfuscated.test
    M llvm/test/tools/dsymutil/X86/basic-linking-bundle.test
    M llvm/test/tools/dsymutil/X86/basic-linking-x86.test
    M llvm/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test
    M llvm/test/tools/dsymutil/X86/basic-lto-linking-x86.test
    M llvm/test/tools/dsymutil/X86/dsym-companion.test
    R llvm/test/tools/dsymutil/X86/minimize.test
    M llvm/test/tools/dsymutil/X86/update.test
    M llvm/test/tools/dsymutil/cmdline.test
    M llvm/tools/dsymutil/DwarfLinkerForBinary.cpp
    M llvm/tools/dsymutil/LinkUtils.h
    M llvm/tools/dsymutil/Options.td
    M llvm/tools/dsymutil/dsymutil.cpp

  Log Message:
  -----------
  [dsymutil] Don't emit .debug_pubnames and .debug_pubtypes

Consider the .debug_pubnames and .debug_pubtypes their own kind of
accelerator and stop emitting them together with the Apple-style
accelerator tables. The only reason we were still emitting both was for
(byte-for-byte) compatibility with dsymutil-classic.

 - This patch adds a new accelerator table kind "Pub" which can be
   specified with --accelerator=Pub.
 - This patch removes the ability to emit both pubnames/types and apple
   style accelerator tables. I don't think anyone is relying on that but
   it's worth pointing out.
 - This patch removes the --minimize option and makes this behavior the
   default. Specifying the flag will result in a warning but won't abort
   the program.

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


  Commit: 233c24330b8e253c4a22053fb405cffb6da769d9
      https://github.com/llvm/llvm-project/commit/233c24330b8e253c4a22053fb405cffb6da769d9
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/DWARFLinker/DWARFLinker.cpp

  Log Message:
  -----------
  [dsymutil] Don't keep old abbreviations

Don't keep the old abbreviations around. This code existed for
compatibility with dsymutil-classic.


  Commit: 162c2759b66a5ecc5ffa59fb0e894e8bbb377f6a
      https://github.com/llvm/llvm-project/commit/162c2759b66a5ecc5ffa59fb0e894e8bbb377f6a
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/DWARFLinker/DWARFLinker.cpp
    M llvm/test/tools/dsymutil/X86/frame-2.test

  Log Message:
  -----------
  [dsymutil] Stop emulating dsymutil-classic CIE caching behavior

Stop emulating dsymutil-classic which only cached the last used CIE for
reuse.


  Commit: 8b109bc2eae0d33a140982c02c77501932bfa394
      https://github.com/llvm/llvm-project/commit/8b109bc2eae0d33a140982c02c77501932bfa394
  Author: Jacques Pienaar <jpienaar at google.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
    M mlir/lib/Dialect/Shape/IR/Shape.cpp
    M mlir/test/Dialect/Shape/canonicalize.mlir

  Log Message:
  -----------
  [mlir,shape] Add max/min folder for simple case

When both arguments are the same for these ops, propagate this argument.


  Commit: a547b4e26b311e417cd51100e379693f51a3f448
      https://github.com/llvm/llvm-project/commit/a547b4e26b311e417cd51100e379693f51a3f448
  Author: Petr Hosek <phosek at google.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
    M llvm/test/Transforms/InstCombine/abs-1.ll
    M llvm/test/Transforms/InstCombine/sub-from-sub.ll

  Log Message:
  -----------
  Revert "[InstCombine] Fold `((X - Y) - Z)` to `X - (Y + Z)` (PR49858)"

This reverts commit 31d219d2997fed1b7dc97e0adf170d5aaf65883e which
causes an infinite loop when compiling the XRay runtime.


  Commit: cedd07df5136ba446be23dbd2ca7d29d7b82cd60
      https://github.com/llvm/llvm-project/commit/cedd07df5136ba446be23dbd2ca7d29d7b82cd60
  Author: Christopher Di Bella <cjdb at google.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M libcxx/docs/Cxx2aStatusIssuesStatus.csv
    M libcxx/include/concepts
    M libcxx/test/std/concepts/concepts.lang/concept.swappable/swappable_with.compile.pass.cpp

  Log Message:
  -----------
  [libcxx] fixes `common_reference` requirement for `swappable_with`

LWG3175 identifies that the `common_reference` requirement for
`swappable_with` is over-constraining and doesn't need to concern itself
with cv- or reference qualifiers.

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


  Commit: 000cf84cf1bb2f5475600737c16c3ccf43096f58
      https://github.com/llvm/llvm-project/commit/000cf84cf1bb2f5475600737c16c3ccf43096f58
  Author: Petr Hosek <phosek at google.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M clang/test/CodeGen/builtins-ppc-quadword-noi128.c

  Log Message:
  -----------
  Revert "[NFC][Clang] Speculative fix for builtins-ppc-quadword-noi128.c"

This reverts commit 849d3729433e05e6d89892c1814fa07ed3ec18e2 which
depends on 31d219d2997fed1b7dc97e0adf170d5aaf65883e that was reverted.


  Commit: fee330824a2b3d7e502a27e1464c418a4663d7a3
      https://github.com/llvm/llvm-project/commit/fee330824a2b3d7e502a27e1464c418a4663d7a3
  Author: Max Kazantsev <mkazantsev at azul.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Analysis/ScalarEvolution.cpp
    A llvm/test/Analysis/ScalarEvolution/pr49856.ll

  Log Message:
  -----------
  [SCEV] Fix false-positive recognition of simple recurrences. PR49856

A value from reachable block may come to a Phi node as its input from
unreachable block. This may confuse matchSimpleRecurrence  which
has no access to DomTree and can falsely recognize something as a recurrency
because of this effect, as the attached test shows.

Patch `ae7b1e` deals with half of this problem, but it only accounts from
the case when an unreachable instruction comes to Phi as an input.

This patch provides a generalization by checking that no Phi block's
predecessor is unreachable (no matter what the input is).

Differential Revision: https://reviews.llvm.org/D99929
Reviewed By: reames


  Commit: 03f7b13d4452e3ee7749ed0cd354071eced25502
      https://github.com/llvm/llvm-project/commit/03f7b13d4452e3ee7749ed0cd354071eced25502
  Author: LemonBoy <thatlemon at gmail.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Target/TargetOptions.h

  Log Message:
  -----------
  [X86] Initialize TargetOptions::StackProtectorGuardOffset member to its default value

D88631 introduced a set of knobs to tweak how the stack protector is codegen'd for x86 targets, including the offset from the base register where the stack cookie is located. The `StackProtectorGuardOffset` field in `TargetOptions` was left uninitialized instead of being reset to its neutral value -1, making it possible to emit nonsensical code if the frontend doesn't change the field value at all before feeding the `TargetOptions` to the target machine initializer.

Reviewed By: nickdesaulniers

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


  Commit: 030ac786d4ff3540b414172810f0a92ece3ca81c
      https://github.com/llvm/llvm-project/commit/030ac786d4ff3540b414172810f0a92ece3ca81c
  Author: Stefan Gränitz <stefan.graenitz at gmail.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/test/lit.cfg.py

  Log Message:
  -----------
  [Orc][examples] Add lit ToolSubst for LLJITWithRemoteDebugging example

The test case added in 258f055ed936 was lacking two important details for the test infrastructure. ae217bf1f327 added the executable to LLVM_TEST_DEPENDS in CMake to make sure the exectubale gets built before we run the test suite. This patch adds a ToolSubst for the executable in LIT, which replaces the tool invokation in the RUN line with an absolute path. It makes sure we don't run accidentally run some other tool from the user's PATH. The test works without it in case LLVM's main binary directory happens to be the working directory (which is default apparently). Configurations that don't build the examples ignore failures for this ToolSubst (and won't run the test).

Reviewed By: echristo

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


  Commit: 033c9c25520c4aa2825e3e162f88f48e189794db
      https://github.com/llvm/llvm-project/commit/033c9c25520c4aa2825e3e162f88f48e189794db
  Author: Qiu Chaofan <qiucofan at cn.ibm.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
    M llvm/test/CodeGen/PowerPC/swap-reduction.ll

  Log Message:
  -----------
  [PowerPC] Fix use check of swap-reduction

This will fix swap-reduction in DAGISel for cases where COPY_TO_REGCLASS
has multiple uses.


  Commit: 0aa0458f1429372038ca6a4edc7e94c96cd9a753
      https://github.com/llvm/llvm-project/commit/0aa0458f1429372038ca6a4edc7e94c96cd9a753
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/lib/CodeGen/CGCall.cpp
    M clang/test/CodeGen/attr-nomerge.cpp
    M clang/test/CodeGenCXX/this-nonnull.cpp
    M clang/test/CodeGenCoroutines/coro-symmetric-transfer-01.cpp
    M clang/test/CodeGenObjCXX/objc-struct-cxx-abi.mm
    M clang/test/OpenMP/irbuilder_for_iterator.cpp
    M clang/test/OpenMP/irbuilder_for_rangefor.cpp
    M clang/test/utils/update_cc_test_checks/Inputs/basic-cplusplus.cpp.expected

  Log Message:
  -----------
  [CGCall] Annotate `this` argument with alignment

As it is being noted in D99249, lack of alignment information on `this`
has been preventing LICM from happening.

For some time now, lack of alignment attribute does *not* imply
natural alignment, but an alignment of `1`.
Also, we used to treat dereferenceable as implying alignment,
but we no longer do, so it's a bugfix.

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


  Commit: b62c62c51973f82713477ecba28d0a4bd7c6ee6a
      https://github.com/llvm/llvm-project/commit/b62c62c51973f82713477ecba28d0a4bd7c6ee6a
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/Coroutines/coro-split-sink-lifetime-02.ll

  Log Message:
  -----------
  [Coroutines, test] Fix use of var defined in CHECK-NOT

LLVM test Transforms/Coroutine/coro-split-sink-lifetime-O2.ll tries to
check for the absence of a sequence of instructions with several
CHECK-NOT with one of those directives using a variable defined in
another. However CHECK-NOT are checked independently so that is using a
variable defined in a pattern that should not occur in the input.

This commit simplifies the CHECK-NOT block to only check for the
presence of any lifetime start marker since that is effectively what
the test was testing at the moment.

Reviewed By: junparser

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


  Commit: e018698bec363637f0da25b68da9ba8c3192d1cb
      https://github.com/llvm/llvm-project/commit/e018698bec363637f0da25b68da9ba8c3192d1cb
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/test/CodeGen/libcalls.c

  Log Message:
  -----------
  [clang, test] Fix use of undef FileCheck var

Clang test CodeGen/libcalls.c contains CHECK-NOT directives using a
variable defined in a CHECK directive with a different prefix never
enabled together, therefore causing the variable to be undefined in that
CHECK-NOT.

The intent of the test is to check that some declaration do not have the
same attribute as when compiling the test without -fmath-errno. This
commits instead changes all CHECK-NOT to CHECK directive, checking that
they all use the same attribute. It also adds an extra CHECK for that
prefix to check the expected attributes these functions should have when
compiling with -fmath-errno.

Reviewed By: rjmccall

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


  Commit: 73a7d451a2ca7a90fb09b2cd934948ae30cc72c3
      https://github.com/llvm/llvm-project/commit/73a7d451a2ca7a90fb09b2cd934948ae30cc72c3
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/PowerPC/ppc-disable-non-volatile-cr.ll

  Log Message:
  -----------
  [PowerPC, test] Fix use of undef FileCheck var

LLVM test CodeGen/PowerPC/ppc-disable-non-volatile-cr.ll tries to check
for the absence of a sequence of instructions with several CHECK-NOT
with one of those directives using a variable defined in another.
However CHECK-NOT are checked independently so that is using a variable
defined in a pattern that should not occur in the input.

This commit changes occurence of the variable for the regex used in its
definition, thereby making each CHECK-NOT independent.

Reviewed By: NeHuang, nemanjai

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


  Commit: c972e2d1c29fc248e47f1c502f90472a1c26b256
      https://github.com/llvm/llvm-project/commit/c972e2d1c29fc248e47f1c502f90472a1c26b256
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/InstCombine/sub-from-sub.ll

  Log Message:
  -----------
  [NFC][InstCombine] Add sub-of-sub tests with constant expressions

These would cause endless combine loop after 31d219d2997fed1b7dc97e0adf170d5aaf65883e.


  Commit: 93d1d94b745b940c9ad0adf20322eb16ed624ef3
      https://github.com/llvm/llvm-project/commit/93d1d94b745b940c9ad0adf20322eb16ed624ef3
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
    M llvm/test/Transforms/InstCombine/sub-from-sub.ll

  Log Message:
  -----------
  [InstCombine] Restrict "C-(X+C2) --> (C-C2)-X" fold to immediate constants

I.e., if any/all of the consants is an expression, don't do it.
Since those constants won't reduce into an immediate,
but would be left as an constant expression, they could cause
endless combine loops after 31d219d2997fed1b7dc97e0adf170d5aaf65883e
added an inverse transformation.


  Commit: 2829094a8e252d04f13aabdf6f416c42a06af695
      https://github.com/llvm/llvm-project/commit/2829094a8e252d04f13aabdf6f416c42a06af695
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/test/CodeGen/builtins-ppc-quadword-noi128.c
    M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
    M llvm/test/Transforms/InstCombine/abs-1.ll
    M llvm/test/Transforms/InstCombine/sub-from-sub.ll

  Log Message:
  -----------
  Reland [InstCombine] Fold `((X - Y) - Z)` to `X - (Y + Z)` (PR49858)

This reverts commit a547b4e26b311e417cd51100e379693f51a3f448,
relanding commit 31d219d2997fed1b7dc97e0adf170d5aaf65883e,
which was reverted because there was a conflicting inverse transform,
which was causing an endless combine loop, which has now been adjusted.

Original commit message:

https://alive2.llvm.org/ce/z/67w-wQ

We prefer `add`s over `sub`, and this particular xform
allows further folds to happen:

Fixes https://bugs.llvm.org/show_bug.cgi?id=49858


  Commit: 792ee5be36926bca22291cc93595cf65d0cd6985
      https://github.com/llvm/llvm-project/commit/792ee5be36926bca22291cc93595cf65d0cd6985
  Author: Stefan Gränitz <stefan.graenitz at gmail.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/examples/OrcV2Examples/LLJITWithRemoteDebugging/LLJITWithRemoteDebugging.cpp
    M llvm/test/Examples/OrcV2Examples/lljit-with-remote-debugging.test

  Log Message:
  -----------
  [Orc][examples] Add missing FileCheck for lit test and polish output


  Commit: 35bc7569f8ad8e76d36560386bbc45ca40716410
      https://github.com/llvm/llvm-project/commit/35bc7569f8ad8e76d36560386bbc45ca40716410
  Author: Sven van Haastregt <sven.vanhaastregt at arm.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/lib/Headers/opencl-c-base.h
    M clang/test/SemaOpenCL/as_type.cl

  Log Message:
  -----------
  [OpenCL] Add as_size/ptrdiff/intptr/uintptr_t operators

size_t and friends are built-in scalar data types and s6.4.4.2 of the
OpenCL C Specification says the as_type() operator must be available
for these data types.

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


  Commit: cd824a48cccb000655498e2d52129adfda25f49b
      https://github.com/llvm/llvm-project/commit/cd824a48cccb000655498e2d52129adfda25f49b
  Author: Utkarsh Saxena <usx at google.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/lib/Tooling/Syntax/Tokens.cpp

  Log Message:
  -----------
  [clang][Syntax] Handle invalid source range in expandedTokens.

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


  Commit: f37ea62e57b5e0e7b52102a2254288e205bfef89
      https://github.com/llvm/llvm-project/commit/f37ea62e57b5e0e7b52102a2254288e205bfef89
  Author: Kirill Bobyrev <kbobyrev at google.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/cmake/modules/LLVMInstallSymlink.cmake

  Log Message:
  -----------
  [CMake] try creating symlink first on windows

//-E create_symlink//  is available on windows since CMake 3.13 (LLVM now uses 3.13.4)
It may needs administrator privileges or enabled developer mode (Windows 10)
See https://cmake.org/cmake/help/latest/release/3.13.html

Reviewed By: kbobyrev

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


  Commit: 43637c0dfeebcf4a4fcbb331f1094662e8882430
      https://github.com/llvm/llvm-project/commit/43637c0dfeebcf4a4fcbb331f1094662e8882430
  Author: crr0004 <crr0004 at gmail.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang-tools-extra/clangd/Protocol.cpp

  Log Message:
  -----------
  Fix crash when an invalid URI is parsed and error handling is attempted

When you pass in a payload with an invalid URI in a build with assertions enabled, it will crash.
Consuming the error from the failed URI parse prevents the error.

The crash is caused by the [llvm::expected](https://llvm.org/doxygen/classllvm_1_1Expected.html) having protection around trying to deconstruct without consuming the error first.

Reviewed By: kadircet

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


  Commit: a7eb6b00e934befae9e8e49803ae6621b27be604
      https://github.com/llvm/llvm-project/commit/a7eb6b00e934befae9e8e49803ae6621b27be604
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/X86/bmi2.ll

  Log Message:
  -----------
  [X86] Add BZHI test case for PR48768

D94856 covered the BMI cases where we had existing tests, this adds a missing BZHI test case


  Commit: 4821c15691bab9efaef871c957a8ba73697cdda9
      https://github.com/llvm/llvm-project/commit/4821c15691bab9efaef871c957a8ba73697cdda9
  Author: Valeriy Savchenko <vsavchenko at apple.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/lib/Analysis/BodyFarm.cpp
    M clang/test/Analysis/properties.mm

  Log Message:
  -----------
  [analyzer] Fix body farm for Obj-C++ properties

When property is declared in a superclass (or in a protocol),
it still can be of CXXRecord type and Sema could've already
generated a body for us.  This patch joins two branches and
two ways of acquiring IVar in order to reuse the existing code.
And prevent us from generating l-value to r-value casts for
C++ types.

rdar://67416721

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


  Commit: 3e738afae4b5994b3f5e4fc6f7249083fc470df5
      https://github.com/llvm/llvm-project/commit/3e738afae4b5994b3f5e4fc6f7249083fc470df5
  Author: Yevgeny Rouban <yrouban at azul.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
    A llvm/test/CodeGen/X86/statepoint-spill-slot-size-promotion.ll

  Log Message:
  -----------
  [Statepoint Lowering] Allow other than N byte sized types in deopt bundle

I do not see any bit-width restriction from the point of the
LLVM Lang Ref - Operand Bundles on the types of the deopt bundle
operands. Statepoint Lowering seems to be able to work with any
types.
This patch relaxes the two related assertions and adds a new test
for this change.

Reviewed By: reames
Differential Revision: https://reviews.llvm.org/D100006


  Commit: 77f1e096e8a0a0f37a4c5f8a0bacc7c60f44f0a1
      https://github.com/llvm/llvm-project/commit/77f1e096e8a0a0f37a4c5f8a0bacc7c60f44f0a1
  Author: Valeriy Savchenko <vsavchenko at apple.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/lib/Analysis/CalledOnceCheck.cpp
    M clang/test/SemaObjC/warn-called-once.m

  Log Message:
  -----------
  [-Wcompletion-handler] Don't recognize init methods as conventional

rdar://75704162

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


  Commit: 583258723fe22cbb8b10d4a21b50a486b2df59ed
      https://github.com/llvm/llvm-project/commit/583258723fe22cbb8b10d4a21b50a486b2df59ed
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/test/CodeGen/X86/bmi2.ll

  Log Message:
  -----------
  [X86] Improve optimizeCompareInstr for signed comparisons after BZHI instructions

Extend D94856 to handle 'bzhi' instructions as well


  Commit: f0e102c1a39f0f7e9e309b27916533b8fefd9be7
      https://github.com/llvm/llvm-project/commit/f0e102c1a39f0f7e9e309b27916533b8fefd9be7
  Author: Balazs Benics <balazsbenics at sigmatechnology.se>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/test/Analysis/malloc.c

  Log Message:
  -----------
  [analyzer][NFC] Add tests for extents

If we allocate memory, the extent of the MemRegion will be the symbolic
value of the size parameter. This way, if that symbol gets constrained,
the extent will be also constrained.

This test demonstrates that the extent is indeed the same symbol.

Reviewed By: NoQ

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


  Commit: 6951b72334bbe4c189c71751edc1e361d7b5632c
      https://github.com/llvm/llvm-project/commit/6951b72334bbe4c189c71751edc1e361d7b5632c
  Author: serge-sans-paille <sguelton at redhat.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/lib/Basic/SourceManager.cpp
    M llvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test

  Log Message:
  -----------
  [clang] Speedup line offset mapping computation

Clang spends a decent amount of time in the LineOffsetMapping::get(...)
function. This function used to be vectorized (through SSE2) then the
optimization got dropped because the sequential version was on-par performance
wise.

This provides an optimization of the sequential version that works on a word at
a time, using (documented) bithacks to provide a portable vectorization.

When preprocessing the sqlite amalgamation, this yields a sweet 3% speedup.

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


  Commit: 7ca4dd82175c9571e8251dfcd452b9ba0fb59280
      https://github.com/llvm/llvm-project/commit/7ca4dd82175c9571e8251dfcd452b9ba0fb59280
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/test/CodeGen/attr-mustprogress.c
    M clang/test/CodeGenCXX/attr-mustprogress.cpp

  Log Message:
  -----------
  [Clang] Extend test coverage for -f[no-]finite-loops options.

Extend test coverage by checking various standard versions with
-f[no-]finite-loops. Suggested as part of D96418.


  Commit: c0ef93bec85a8847b51d91d2a6470af903e1ec9a
      https://github.com/llvm/llvm-project/commit/c0ef93bec85a8847b51d91d2a6470af903e1ec9a
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    A llvm/test/CodeGen/X86/and-with-overflow.ll
    A llvm/test/CodeGen/X86/or-with-overflow.ll
    A llvm/test/CodeGen/X86/xor-with-overflow.ll

  Log Message:
  -----------
  [X86] Add AND/OR/XOR signed-comparison overflow test cases for PR48768

D94856 covered the BMI cases where we had existing tests, this adds missing AND/OR/XOR test cases


  Commit: 65a3f289397fd7d6cfcb4ddfdf324e37cf90cad7
      https://github.com/llvm/llvm-project/commit/65a3f289397fd7d6cfcb4ddfdf324e37cf90cad7
  Author: Matthias Springer <springerm at google.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Conversion/VectorToLLVM/ConvertVectorToLLVM.h
    M mlir/include/mlir/Dialect/Vector/VectorOps.h
    M mlir/include/mlir/Dialect/Vector/VectorOps.td
    M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
    M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVMPass.cpp
    M mlir/lib/Conversion/VectorToROCDL/VectorToROCDL.cpp
    M mlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
    M mlir/lib/Dialect/Vector/VectorOps.cpp
    M mlir/lib/Dialect/Vector/VectorTransforms.cpp
    M mlir/test/Conversion/VectorToLLVM/vector-mask-to-llvm.mlir
    M mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
    M mlir/test/Dialect/Vector/ops.mlir
    M mlir/test/Integration/Dialect/Vector/CPU/test-transfer-read.mlir

  Log Message:
  -----------
  [mlir] Add "mask" operand to vector.transfer_read/write.

Also factors out out-of-bounds mask generation from vector.transfer_read/write into a new MaterializeTransferMask pattern.

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


  Commit: e571e56ae839e8f672eeb57f60581dac12b0688d
      https://github.com/llvm/llvm-project/commit/e571e56ae839e8f672eeb57f60581dac12b0688d
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/InstCombine/minmax-intrinsics.ll

  Log Message:
  -----------
  [InstCombine] add tests for not-of-min/max; NFC


  Commit: 0333ed8e0c3763e50ec0c43e289967d407c14786
      https://github.com/llvm/llvm-project/commit/0333ed8e0c3763e50ec0c43e289967d407c14786
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp

  Log Message:
  -----------
  [InstCombine] move abs transform to helper function; NFC

The swap of the operands can affect later transforms that
are expecting a constant as operand 1. I don't think we
can trigger a bug with the current code, but I hit that
problem while drafting a new transform for min/max intrinsics.


  Commit: fc1117df5b875b922ec4d4417404b26abaceaf7b
      https://github.com/llvm/llvm-project/commit/fc1117df5b875b922ec4d4417404b26abaceaf7b
  Author: oToToT <ty1208chiang at gmail.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/lib/Frontend/CompilerInstance.cpp

  Log Message:
  -----------
  [clang] Check AuxTarget exists when creating target in CompilerInstance

D97493 separate target creation out to a single function
`CompilerInstance::createTarget`. However, it would overwrite AuxTarget
even if it has been set.
As @kadircet recommended in D98128, this patch check the existence of
AuxTarget and not overwrite it when it has been set.

Reviewed By: kadircet

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


  Commit: b83a4450c216879d76d78c21a2a0b864fdc2eb3d
      https://github.com/llvm/llvm-project/commit/b83a4450c216879d76d78c21a2a0b864fdc2eb3d
  Author: Andrzej Warzynski <andrzej.warzynski at arm.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/lib/Driver/ToolChains/Flang.cpp
    M flang/include/flang/Frontend/CompilerInvocation.h
    M flang/include/flang/Frontend/FrontendOptions.h
    M flang/include/flang/Frontend/PreprocessorOptions.h
    M flang/lib/Frontend/CompilerInstance.cpp
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/Frontend/FrontendAction.cpp
    M flang/lib/Frontend/FrontendActions.cpp
    M flang/lib/Frontend/FrontendOptions.cpp
    A flang/test/Driver/cpp-nocpp-command-line-macro.f90
    A flang/test/Driver/cpp-nocpp-predefined-macro.F90
    M flang/test/Driver/driver-help-hidden.f90
    M flang/test/Driver/driver-help.f90
    M flang/test/Driver/input-from-stdin.f90
    A flang/test/Driver/macro-def-undef.F90
    R flang/test/Driver/macro-def-undef.f90
    A flang/test/Driver/macro-multiline.F90
    R flang/test/Driver/macro-multiline.f90
    A flang/test/Driver/predefined-macros-compiler-version.F90
    R flang/test/Driver/predefined-macros-compiler-version.f90

  Log Message:
  -----------
  [flang][driver] Add support for `-cpp/-nocpp`

This patch adds support for the `-cpp` and `-nocpp` flags. The
implemented semantics match f18 (i.e. the "throwaway" driver), but are
different to gfortran. In Flang the preprocessor is always run. Instead,
`-cpp/-nocpp` are used to control whether predefined and command-line
preprocessor macro definitions are enabled or not. In practice this is
sufficient to model gfortran`s `-cpp/-nocpp`.

In the absence of `-cpp/-nocpp`, the driver will use the extension of
the input file to decide whether to include the standard macro
predefinitions. gfortran's documentation [1] was used to decide which
file extension to use for this.

The logic mentioned above was added in FrontendAction::BeginSourceFile.
That's relatively late in the driver set-up, but this roughly where the
name of the input file becomes available. The logic for deciding between
fixed and free form works in a similar way and was also moved to
FrontendAction::BeginSourceFile for consistency (and to reduce
code-duplication).

The `-cpp/-nocpp` flags are respected also when the input is read from
stdin. This is different to:
   * gfortran (behaves as if `-cpp` was used)
   * f18 (behaves as if `-nocpp` was used)

Starting with this patch, file extensions are significant and some test
files had to be renamed to reflect that. Where possible, preprocessor
tests were updated so that they can be shared between `f18` and
`flang-new`. This was implemented on top of adding new test for
`-cpp/-nocpp`.

[1] https://gcc.gnu.org/onlinedocs/gcc/Overall-Options.html

Reviewed By: kiranchandramohan

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


  Commit: bf6cab6f07e1db2329c36b5d8009bf4b16d2761c
      https://github.com/llvm/llvm-project/commit/bf6cab6f07e1db2329c36b5d8009bf4b16d2761c
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp

  Log Message:
  -----------
  [AMDGPU] SIFoldOperands: don't dump extra '\n' after MachineInstr. NFC.


  Commit: 85b86c6f43ab50ba70571ed49da7e81f7d52ffd2
      https://github.com/llvm/llvm-project/commit/85b86c6f43ab50ba70571ed49da7e81f7d52ffd2
  Author: Andrzej Warzynski <andrzej.warzynski at arm.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M flang/include/flang/Frontend/FrontendOptions.h
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/test/Driver/debug-provenance.f90

  Log Message:
  -----------
  [flang][driver] Fix `-fdebug-dump-provenance`

The -fdebug-dump-provenance flag is meant to be used with
needProvenanceRangeToCharBlockMappings set to true. This way, extra
mapping is generated that allows e.g. IDEs to retrieve symbol's scope
(offset into cooked character stream) based on symbol's source code
location. This patch makes sure that this option is set when using
-fdebug-dump-provenance.

With this patch, the implementation of  -fdebug-dump-provenance in
`flang-new -fc1` becomes consistent with `f18`. The corresponding LIT
test is updated so that it can be shared with `f18`. I refined it a bit
so that:
  * it becomes a frontend-only test
  * it's stricter about the expected output

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


  Commit: a78e86e6beb2d62196fa42be9f4a2994823f71f3
      https://github.com/llvm/llvm-project/commit/a78e86e6beb2d62196fa42be9f4a2994823f71f3
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

  Log Message:
  -----------
  [SLP]Avoid multiple attempts to vectorize CmpInsts.

No need to lookup through and/or try to vectorize operands of the
CmpInst instructions during attempts to find/vectorize min/max
reductions. Compiler implements postanalysis of the CmpInsts so we can
skip extra attempts in tryToVectorizeHorReductionOrInstOperands and save
compile time.

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


  Commit: 302e7480655b0d1c1a3a629b4ef446bf77dcb01a
      https://github.com/llvm/llvm-project/commit/302e7480655b0d1c1a3a629b4ef446bf77dcb01a
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86InstrInfo.cpp
    M llvm/test/CodeGen/X86/and-with-overflow.ll
    M llvm/test/CodeGen/X86/or-with-overflow.ll
    M llvm/test/CodeGen/X86/xor-with-overflow.ll

  Log Message:
  -----------
  [X86] Improve optimizeCompareInstr for signed comparisons after AND/OR/XOR instructions

Extend D94856 to handle 'and', 'or' and 'xor' instructions as well

We still fail on many i8/i16 cases as the test and the logic-op are performed on different widths


  Commit: c22b09debddbaa00be3418b47ca33446ee8a8319
      https://github.com/llvm/llvm-project/commit/c22b09debddbaa00be3418b47ca33446ee8a8319
  Author: Nico Weber <thakis at chromium.org>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/lib/Basic/SourceManager.cpp
    M llvm/test/tools/llvm-objdump/X86/source-interleave-prefix.test

  Log Message:
  -----------
  Revert "[clang] Speedup line offset mapping computation"

This reverts commit 6951b72334bbe4c189c71751edc1e361d7b5632c.
Breaks several bots, see comments on https://reviews.llvm.org/D99409


  Commit: 798b0fd36b48f55fa9eb7c2b449179d9af2f9b63
      https://github.com/llvm/llvm-project/commit/798b0fd36b48f55fa9eb7c2b449179d9af2f9b63
  Author: Jingu Kang <jingu.kang at arm.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Passes/PassBuilder.cpp

  Log Message:
  -----------
  [NPM] Fix typo inisLTOPreLink for loop rotate

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


  Commit: 2dc6be52093af5347162f1ff71c61df8b9d0fdf8
      https://github.com/llvm/llvm-project/commit/2dc6be52093af5347162f1ff71c61df8b9d0fdf8
  Author: Sebastian Neubauer <sebastian.neubauer at amd.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
    M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
    M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h

  Log Message:
  -----------
  [AMDGPU] Update SGPRSpillVGPRCSR name. NFC

The struct is used for both, callee and caller-save registers now.
The frame index is not set for entrypoints, as we do not need to save
the registers then.
Update the struct name to reflect that.

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


  Commit: f23b259e1877115794c0bb5654a329c7bdefadb0
      https://github.com/llvm/llvm-project/commit/f23b259e1877115794c0bb5654a329c7bdefadb0
  Author: Sam Clegg <sbc at chromium.org>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/MC/WasmObjectWriter.cpp

  Log Message:
  -----------
  [WebAssembly] Improve error messages regarding missing indirect function table. NFC

Use report_fatal_error here since this is an internal error, and not
something the user can/should be trying to fix.

Also distinguish between the symbol being missing and the symbol having
the wrong type.

We have a failure internally where the symbol is missing.  Currently
trying to reduce the test case to something we can attach to an llvm
bug.

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


  Commit: 672f673004663aeb15ece1af4b5b219994924167
      https://github.com/llvm/llvm-project/commit/672f673004663aeb15ece1af4b5b219994924167
  Author: Sander de Smalen <sander.desmalen at arm.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_abd.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_abs.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_acge.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_acgt.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_acle.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_aclt.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_add.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_adda.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_addv.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_adrb.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_adrd.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_adrh.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_adrw.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_and.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_andv.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_asr.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_asrd.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_bic.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_brka.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_brkb.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_brkn.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_brkpa.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_brkpb.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cadd.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_clasta-bfloat.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_clasta.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_clastb-bfloat.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_clastb.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cls.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_clz.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmla.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmpeq.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmpge.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmpgt.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmple.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmplt.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmpne.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cmpuo.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cnot.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cnt-bfloat.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cnt.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cntb.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cntd.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cnth.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cntp.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cntw.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_compact.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_cvt.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_div.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_divr.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dot.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dup-bfloat.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dup.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dupq-bfloat.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_dupq.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_eor.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_eorv.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_expa.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ext-bfloat.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ext.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_extb.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_exth.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_extw.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get2.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get3.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get4.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_index.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_insr-bfloat.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_insr.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_lasta-bfloat.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_lasta.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_lastb-bfloat.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_lastb.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1rq.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1sb.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1sh.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1sw.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1ub.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1uh.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1uw.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldff1.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldff1sb.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldff1sh.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldff1sw.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldff1ub.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldff1uh.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldff1uw.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnf1.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnf1sb.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnf1sh.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnf1sw.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnf1ub.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnf1uh.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnf1uw.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnt1.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_len-bfloat.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_len.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_lsl.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_lsr.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mad.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_max.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_maxnm.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_maxnmv.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_maxv.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_min.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_minnm.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_minnmv.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_minv.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mla.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mls.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mov.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_msb.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mul.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mulh.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_mulx.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nand.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_neg.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nmad.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nmla.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nmls.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nmsb.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_nor.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_not.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_orn.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_orr.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_orv.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_pfalse.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_pfirst.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_pnext.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_prfb.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_prfd.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_prfh.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_prfw.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ptest.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ptrue.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qadd.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qdecb.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qdecd.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qdech.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qdecp.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qdecw.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qincb.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qincd.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qinch.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qincp.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qincw.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_qsub.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rbit.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rdffr.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_recpe.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_recps.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_recpx.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_reinterpret-bfloat.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_reinterpret.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rev.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_revb.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_revh.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_revw.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rinta.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rinti.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rintm.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rintn.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rintp.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rintx.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rintz.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rsqrte.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rsqrts.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_scale.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_sel-bfloat.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_sel.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_setffr.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_splice-bfloat.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_splice.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_sqrt.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1b.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1h.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1w.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st2.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st3.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st4.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_stnt1.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_sub.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_subr.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_tbl-bfloat.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_tbl.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_tmad.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn1.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn2.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_tsmul.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_tssel.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_unpkhi.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_unpklo.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp1.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp2.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_whilele.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_whilelt.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_wrffr.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip1.c
    M clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip2.c
    M llvm/test/Analysis/CostModel/AArch64/cost-scalable-vector-gep.ll
    M llvm/test/Analysis/CostModel/AArch64/getIntrinsicInstrCost-vector-reverse.ll
    M llvm/test/Analysis/CostModel/AArch64/sve-bitcast.ll
    M llvm/test/Analysis/CostModel/AArch64/sve-cmpsel.ll
    M llvm/test/Analysis/CostModel/AArch64/sve-fpext.ll
    M llvm/test/Analysis/CostModel/AArch64/sve-fptoi.ll
    M llvm/test/Analysis/CostModel/AArch64/sve-fptrunc.ll
    M llvm/test/Analysis/CostModel/AArch64/sve-gather.ll
    M llvm/test/Analysis/CostModel/AArch64/sve-intrinsics.ll
    M llvm/test/Analysis/CostModel/AArch64/sve-scatter.ll
    M llvm/test/Analysis/CostModel/AArch64/sve-shuffle-broadcast.ll
    M llvm/test/Analysis/CostModel/AArch64/sve-stepvector.ll
    M llvm/test/Analysis/CostModel/AArch64/sve-trunc.ll
    M llvm/test/Analysis/CostModel/AArch64/sve-widening-instruction.ll
    M llvm/test/Analysis/LoopAccessAnalysis/gep-induction-operand-typesize-warning.ll
    M llvm/test/Analysis/LoopAccessAnalysis/runtime-pointer-checking-insert-typesize.ll
    M llvm/test/CodeGen/AArch64/DAGCombine_vscale.ll
    M llvm/test/CodeGen/AArch64/dag-combine-insert-subvector.ll
    M llvm/test/CodeGen/AArch64/dag-combine-lifetime-end-store-typesize.ll
    M llvm/test/CodeGen/AArch64/llvm-masked-gather-legal-for-sve.ll
    M llvm/test/CodeGen/AArch64/llvm-masked-scatter-legal-for-sve.ll
    M llvm/test/CodeGen/AArch64/named-vector-shuffle-reverse-neon.ll
    M llvm/test/CodeGen/AArch64/named-vector-shuffle-reverse-sve.ll
    M llvm/test/CodeGen/AArch64/sdag-no-typesize-warnings-regandsizes.ll
    M llvm/test/CodeGen/AArch64/sve-alloca-stackid.ll
    M llvm/test/CodeGen/AArch64/sve-bit-counting-pred.ll
    M llvm/test/CodeGen/AArch64/sve-bit-counting.ll
    M llvm/test/CodeGen/AArch64/sve-bitcast.ll
    M llvm/test/CodeGen/AArch64/sve-breakdown-scalable-vectortype.ll
    M llvm/test/CodeGen/AArch64/sve-callbyref-notailcall.ll
    M llvm/test/CodeGen/AArch64/sve-calling-convention-byref.ll
    M llvm/test/CodeGen/AArch64/sve-calling-convention-tuple-types.ll
    M llvm/test/CodeGen/AArch64/sve-calling-convention.ll
    M llvm/test/CodeGen/AArch64/sve-cmp-select.ll
    M llvm/test/CodeGen/AArch64/sve-coalesce-ptrue-intrinsics.ll
    M llvm/test/CodeGen/AArch64/sve-extract-element.ll
    M llvm/test/CodeGen/AArch64/sve-extract-subvector.ll
    M llvm/test/CodeGen/AArch64/sve-extract-vector.ll
    M llvm/test/CodeGen/AArch64/sve-fcmp.ll
    M llvm/test/CodeGen/AArch64/sve-fcvt.ll
    M llvm/test/CodeGen/AArch64/sve-fixed-length-subvector.ll
    M llvm/test/CodeGen/AArch64/sve-fmul-idempotency.ll
    M llvm/test/CodeGen/AArch64/sve-fold-vscale.ll
    M llvm/test/CodeGen/AArch64/sve-forward-st-to-ld.ll
    M llvm/test/CodeGen/AArch64/sve-fp-reduce.ll
    M llvm/test/CodeGen/AArch64/sve-fp.ll
    M llvm/test/CodeGen/AArch64/sve-gather-scatter-dag-combine.ll
    M llvm/test/CodeGen/AArch64/sve-gep.ll
    M llvm/test/CodeGen/AArch64/sve-insert-element.ll
    M llvm/test/CodeGen/AArch64/sve-insert-vector.ll
    M llvm/test/CodeGen/AArch64/sve-int-arith-imm.ll
    M llvm/test/CodeGen/AArch64/sve-int-arith-pred.ll
    M llvm/test/CodeGen/AArch64/sve-int-arith.ll
    M llvm/test/CodeGen/AArch64/sve-int-div-pred.ll
    M llvm/test/CodeGen/AArch64/sve-int-imm.ll
    M llvm/test/CodeGen/AArch64/sve-int-log-imm.ll
    M llvm/test/CodeGen/AArch64/sve-int-log-pred.ll
    M llvm/test/CodeGen/AArch64/sve-int-log.ll
    M llvm/test/CodeGen/AArch64/sve-int-mad-pred.ll
    M llvm/test/CodeGen/AArch64/sve-int-mul-pred.ll
    M llvm/test/CodeGen/AArch64/sve-int-pred-reduce.ll
    M llvm/test/CodeGen/AArch64/sve-int-reduce-pred.ll
    M llvm/test/CodeGen/AArch64/sve-int-reduce.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsic-opts-ptest.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsic-opts-reinterpret.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-adr.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-bfloat.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-contiguous-prefetches.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-conversion.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-counting-bits.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-counting-elems.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-create-tuple.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-dup-x.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-ff-gather-loads-32bit-scaled-offsets.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-ff-gather-loads-32bit-unscaled-offsets.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-ff-gather-loads-64bit-scaled-offset.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-ff-gather-loads-64bit-unscaled-offset.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-ff-gather-loads-vector-base-imm-offset.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-ff-gather-loads-vector-base-scalar-offset.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-ffr-manipulation.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-fp-arith-merging.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-fp-arith.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-fp-compares.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-fp-converts.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-fp-reduce.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-gather-loads-32bit-scaled-offsets.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-gather-loads-32bit-unscaled-offsets.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-gather-loads-64bit-scaled-offset.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-gather-loads-64bit-unscaled-offset.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-gather-loads-vector-base-imm-offset.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-gather-loads-vector-base-scalar-offset.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-gather-prefetches-scalar-base-vector-indexes.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-gather-prefetches-vect-base-imm-offset.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-gather-prefetches-vect-base-invalid-imm-offset.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-index.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-insert-extract-tuple.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith-imm.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith-merging.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-int-compares-with-imm.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-int-compares.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-ld1-addressing-mode-reg-imm.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-ld1-addressing-mode-reg-reg.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-ld1.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-ld1ro-addressing-mode-reg-imm.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-ld1ro-addressing-mode-reg-reg.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-ld1ro.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-ldN-reg+imm-addr-mode.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-ldN-reg+reg-addr-mode.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-loads-ff.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-loads-nf.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-loads.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-logical.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-matmul-fp32.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-matmul-fp64.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-matmul-int8.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-perm-select-matmul-fp64.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-perm-select.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-pred-creation.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-pred-operations.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-pred-testing.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-reinterpret.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-reversal.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-scalar-to-vec.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-scatter-stores-32bit-scaled-offsets.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-scatter-stores-32bit-unscaled-offsets.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-scatter-stores-64bit-scaled-offset.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-scatter-stores-64bit-unscaled-offset.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-scatter-stores-vector-base-imm-offset.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-scatter-stores-vector-base-scalar-offset.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-sel.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-shifts-merging.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-shifts.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-sqdec.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-sqinc.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-st1-addressing-mode-reg-imm.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-st1-addressing-mode-reg-reg.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-st1.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-stN-reg-imm-addr-mode.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-stN-reg-reg-addr-mode.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-stores.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-uqdec.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-uqinc.ll
    M llvm/test/CodeGen/AArch64/sve-intrinsics-while.ll
    M llvm/test/CodeGen/AArch64/sve-ld-post-inc.ll
    M llvm/test/CodeGen/AArch64/sve-ld1-addressing-mode-reg-imm.ll
    M llvm/test/CodeGen/AArch64/sve-ld1-addressing-mode-reg-reg.ll
    M llvm/test/CodeGen/AArch64/sve-masked-ldst-nonext.ll
    M llvm/test/CodeGen/AArch64/sve-masked-ldst-sext.ll
    M llvm/test/CodeGen/AArch64/sve-masked-ldst-trunc.ll
    M llvm/test/CodeGen/AArch64/sve-masked-ldst-zext.ll
    M llvm/test/CodeGen/AArch64/sve-merging-stores.ll
    M llvm/test/CodeGen/AArch64/sve-mul-idempotency.ll
    M llvm/test/CodeGen/AArch64/sve-pred-arith.ll
    M llvm/test/CodeGen/AArch64/sve-pred-contiguous-ldst-addressing-mode-reg-imm.ll
    M llvm/test/CodeGen/AArch64/sve-pred-contiguous-ldst-addressing-mode-reg-reg.ll
    M llvm/test/CodeGen/AArch64/sve-pred-log.ll
    M llvm/test/CodeGen/AArch64/sve-pred-non-temporal-ldst-addressing-mode-reg-imm.ll
    M llvm/test/CodeGen/AArch64/sve-pred-non-temporal-ldst-addressing-mode-reg-reg.ll
    M llvm/test/CodeGen/AArch64/sve-redundant-store.ll
    M llvm/test/CodeGen/AArch64/sve-rev.ll
    M llvm/test/CodeGen/AArch64/sve-select.ll
    M llvm/test/CodeGen/AArch64/sve-setcc.ll
    M llvm/test/CodeGen/AArch64/sve-sext-zext.ll
    M llvm/test/CodeGen/AArch64/sve-split-extract-elt.ll
    M llvm/test/CodeGen/AArch64/sve-split-fcvt.ll
    M llvm/test/CodeGen/AArch64/sve-split-fp-reduce.ll
    M llvm/test/CodeGen/AArch64/sve-split-insert-elt.ll
    M llvm/test/CodeGen/AArch64/sve-split-int-pred-reduce.ll
    M llvm/test/CodeGen/AArch64/sve-split-int-reduce.ll
    M llvm/test/CodeGen/AArch64/sve-split-load.ll
    M llvm/test/CodeGen/AArch64/sve-split-store.ll
    M llvm/test/CodeGen/AArch64/sve-st1-addressing-mode-reg-imm.ll
    M llvm/test/CodeGen/AArch64/sve-st1-addressing-mode-reg-reg.ll
    M llvm/test/CodeGen/AArch64/sve-stepvector.ll
    M llvm/test/CodeGen/AArch64/sve-tailcall.ll
    M llvm/test/CodeGen/AArch64/sve-tbl-dupx.ll
    M llvm/test/CodeGen/AArch64/sve-trunc.ll
    M llvm/test/CodeGen/AArch64/sve-varargs.ll
    M llvm/test/CodeGen/AArch64/sve-vector-splat.ll
    M llvm/test/CodeGen/AArch64/sve-vscale-combine.ll
    M llvm/test/CodeGen/AArch64/sve-vscale.ll
    M llvm/test/CodeGen/AArch64/sve-vselect-imm.ll
    M llvm/test/CodeGen/AArch64/sve-zeroinit.ll
    M llvm/test/CodeGen/AArch64/sve2-bitwise-ternary.ll
    M llvm/test/CodeGen/AArch64/sve2-int-addsub-long.ll
    M llvm/test/CodeGen/AArch64/sve2-int-mul.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-binary-narrowing-add-sub.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-binary-narrowing-shr.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-bit-permutation.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-character-match.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-complex-dot.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-contiguous-conflict-detection.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-crypto.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-fp-converts.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-fp-int-binary-logarithm.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-fp-widening-mul-acc.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-int-mul-lane.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-non-widening-pairwise-arith.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-nt-gather-loads-32bit-unscaled-offset.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-nt-gather-loads-64bit-scaled-offset.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-nt-gather-loads-64bit-unscaled-offset.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-nt-gather-loads-vector-base-scalar-offset.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-nt-scatter-stores-32bit-unscaled-offset.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-nt-scatter-stores-64bit-scaled-offset.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-nt-scatter-stores-64bit-unscaled-offset.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-nt-scatter-stores-vector-base-scalar-offset.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-perm-tb.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-polynomial-arithmetic-128.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-polynomial-arithmetic.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-unary-narrowing.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-uniform-complex-arith.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-uniform-dsp-zeroing.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-uniform-dsp.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-vec-hist-count.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-while.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-widening-complex-int-arith.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-widening-dsp.ll
    M llvm/test/CodeGen/AArch64/sve2-intrinsics-widening-pairwise-arith.ll
    M llvm/test/CodeGen/AArch64/sve2-mla-indexed.ll
    M llvm/test/CodeGen/AArch64/sve2-mla-unpredicated.ll
    M llvm/test/CodeGen/X86/named-vector-shuffle-reverse.ll
    M llvm/test/Transforms/InstCombine/debuginfo-scalable-typesize.ll
    M llvm/test/Transforms/InstCombine/gep-can-replace-gep-idx-with-zero-typesize.ll
    M llvm/test/Transforms/InstCombine/scalable-cast-of-alloc.ll
    M llvm/test/Transforms/InstCombine/scalable-const-fp-splat.ll
    M llvm/test/Transforms/InstCombine/scalable-trunc.ll
    M llvm/test/Transforms/InstSimplify/named-vector-shuffle-reverse.ll
    M llvm/test/Transforms/LoopIdiom/memcpy-vectors.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-basic-vec.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-extract-last-veclane.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-inductions.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-inv-loads.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-scalable-load-in-loop.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-vector-reverse-mask4.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/sve-vector-reverse.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/vector-reverse-mask4.ll
    M llvm/test/Transforms/LoopVectorize/AArch64/vector-reverse.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/insertelement-inseltpoison.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/insertelement.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/scalable-vector.ll

  Log Message:
  -----------
  [SVE] Remove checks for warnings in scalable-vector tests.

After D98856 these tests will by default break (fatal_error) if any of
the wrong interfaces are used, so there's no longer a need to have a
RUN line that checks for a warning message emitted by the compiler.


  Commit: 628dda08b82fcedcd9e89c9ef7850388e988bf68
      https://github.com/llvm/llvm-project/commit/628dda08b82fcedcd9e89c9ef7850388e988bf68
  Author: Jacques Pienaar <jpienaar at google.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td

  Log Message:
  -----------
  [mlir,shape] Update min/max op description


  Commit: 1bcf58b2136d4a5f07f525ba8c3dfabede0af046
      https://github.com/llvm/llvm-project/commit/1bcf58b2136d4a5f07f525ba8c3dfabede0af046
  Author: Abhina Sreeskantharajan <Abhina.Sreeskantharajan at ibm.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/TableGen/Main.cpp

  Log Message:
  -----------
  [SystemZ][z/OS][TableGen] TableGen files should be text

This patch sets tablegen files as text. It should have no effect on Windows after this patch landed https://reviews.llvm.org/rG82b3e28e836d2f5c8cfd6e1047b93c088522365a.

Reviewed By: anirudhp

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


  Commit: 3b460f8cc08790c7f9a77c28671e7fe5791a5bb5
      https://github.com/llvm/llvm-project/commit/3b460f8cc08790c7f9a77c28671e7fe5791a5bb5
  Author: Nicolas Vasilache <nicolas.vasilache at gmail.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M mlir/cmake/modules/CMakeLists.txt

  Log Message:
  -----------
  [mlir] Export python-related .cmake files

This allows downstream projects to build python extensions using the same macros as MLIR.

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


  Commit: 93fb72575f7a70c0e095f7b278fd249260fe84a8
      https://github.com/llvm/llvm-project/commit/93fb72575f7a70c0e095f7b278fd249260fe84a8
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/X86/vector-shuffle-256-v4.ll

  Log Message:
  -----------
  [X86][AVX] Add HADD lane crossing test

This used to work before rG77d625f8d8aa, but we now merge the shuffles across the fadd resulting in a hadd that requires a lane crossing post shuffle, which we don't permit on AVX1 targets


  Commit: 6d5132b426fbe23c5bc3e591ca2ca09a315d459b
      https://github.com/llvm/llvm-project/commit/6d5132b426fbe23c5bc3e591ca2ca09a315d459b
  Author: wlei <wlei at fb.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/IPO/SampleProfile.cpp
    A llvm/test/Transforms/SampleProfile/Inputs/pseudo-probe-icp-factor.prof
    A llvm/test/Transforms/SampleProfile/pseudo-probe-icp-factor.ll

  Log Message:
  -----------
  [CSSPGO] Fix incorrect probe distribution factor computation in top-down inliner

We see a regression related to low probe factor(0.01) which prevents some callsites being promoted in ICPPass and later cause the missing inline in CGSCC inliner. The root cause is due to redundant(the second) multiplication of the probe factor and this change try to fix it.

`Sum` does multiply a factor right after findCallSamples but later when using as the parameter in setProbeDistributionFactor, it multiplies one again.

This change could get ~2% perf back on mcf benchmark. In mcf, previously the corresponding factor is 1 and it's the recent feature introducing the <1 factor then trigger this bug.

Reviewed By: hoy, wenlei

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


  Commit: d855a727bbf3dd0a8c7502980a667641b50e54d3
      https://github.com/llvm/llvm-project/commit/d855a727bbf3dd0a8c7502980a667641b50e54d3
  Author: Jez Ng <jezng at fb.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    A lld/test/MachO/arm64-stubs.s

  Log Message:
  -----------
  [lld-macho][nfc] Add test for ARM64 stubs

Reviewed By: #lld-macho, gkm

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


  Commit: 982e3c05108b606701d99d43098331357d9dd0ca
      https://github.com/llvm/llvm-project/commit/982e3c05108b606701d99d43098331357d9dd0ca
  Author: Jez Ng <jezng at fb.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M lld/MachO/SyntheticSections.h
    M lld/test/CMakeLists.txt
    M lld/test/MachO/stabs.s

  Log Message:
  -----------
  [lld-macho] Sibling N_SO symbols must have the empty string

We had been giving them a string index of zero, which actually corresponds to a
string with a single space due to {D89639}.

This was far from obvious in the old test because llvm-nm doesn't quote the
symbol names, making the empty string look identical to a string of a single
space. `dsymutil -s` quotes its strings, so I've changed the test accordingly.

Fixes llvm.org/PR48714. Thanks @clayborg for the tips!

Reviewed By: clayborg

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


  Commit: c7ad02009934ecaea4e2f152ff784ee0d36029a0
      https://github.com/llvm/llvm-project/commit/c7ad02009934ecaea4e2f152ff784ee0d36029a0
  Author: Christopher Di Bella <cjdb at google.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    A libcxx/test/std/concepts/concepts.callable/concept.equiv/equivalence_relation.pass.cpp
    A libcxx/test/std/concepts/concepts.callable/concept.equiv/equivalence_relation.subsumption.pass.cpp
    A libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.pass.cpp
    A libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.subsumption.pass.cpp
    A libcxx/test/std/concepts/concepts.callable/concept.relation/relation.pass.cpp
    A libcxx/test/std/concepts/concepts.callable/concept.relation/relation.subsumption.pass.cpp
    A libcxx/test/std/concepts/concepts.callable/concept.strictweakorder/strict_weak_order.pass.cpp
    A libcxx/test/std/concepts/concepts.callable/concept.strictweakorder/strict_weak_order.subsumption.pass.cpp

  Log Message:
  -----------
  [libcxx] adds remaining callable concepts

* `std::predicate`
* `std::relation`
* `std::equivalence_relation`
* `std::strict_weak_order`

Implements parts of:
    - P0898R3 Standard Library Concepts
    - P1754 Rename concepts to standard_case for C++20, while we still can

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


  Commit: 920c0f7e09e2a55a800a181fb9bfe296a8733c89
      https://github.com/llvm/llvm-project/commit/920c0f7e09e2a55a800a181fb9bfe296a8733c89
  Author: Christopher Di Bella <cjdb at google.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M libcxx/docs/Cxx2aStatusIssuesStatus.csv
    M libcxx/docs/Cxx2aStatusPaperStatus.csv
    M libcxx/docs/FeatureTestMacroTable.rst
    M libcxx/include/concepts
    M libcxx/include/version
    M libcxx/test/std/language.support/support.limits/support.limits.general/concepts.version.pass.cpp
    M libcxx/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp
    M libcxx/utils/generate_feature_test_macro_components.py

  Log Message:
  -----------
  [libcxx] adds __cpp_lib_concepts feature-test macro

Also adjusts C++20 status paper to indicate full concepts support.

Depends on D96477, D99817.

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


  Commit: 1894c6c59e37b47c284f2a5ebb92b73911e71e38
      https://github.com/llvm/llvm-project/commit/1894c6c59e37b47c284f2a5ebb92b73911e71e38
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    M llvm/test/Transforms/InstCombine/select-extractelement.ll

  Log Message:
  -----------
  [InstCombine] avoid infinite loop from partial undef vectors

This fixes the examples from
D99674 and
https://llvm.org/PR49878

The matchers succeed on partial undef/poison vector constants,
but the transform creates a full 'not' (-1) constant, so it
would undo a demanded vector elements change triggered by the
extractelement.

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


  Commit: 48fa06f70b07fc195a07bfb67ee42cfd307ca450
      https://github.com/llvm/llvm-project/commit/48fa06f70b07fc195a07bfb67ee42cfd307ca450
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M libcxx/docs/Contributing.rst

  Log Message:
  -----------
  [libc++] Update contributor documentation.

The document has the following updates:
- Rename 'feature test' to 'feature-test', the latter is the spelling
  used in the Standard.
- Add information how an ABI list can be downloaded from Buildkite.

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


  Commit: 24f67473dd1253f484e10fd5dfbed95489487b60
      https://github.com/llvm/llvm-project/commit/24f67473dd1253f484e10fd5dfbed95489487b60
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
    M llvm/test/Transforms/InstCombine/sub-from-sub.ll

  Log Message:
  -----------
  [InstCombine] foldAddWithConstant(): don't deal with non-immediate constants

All of the code that handles general constant here (other than the more
restrictive APInt-dealing code) expects that it is an immediate,
because otherwise we won't actually fold the constants, and increase
instruction count. And it isn't obvious why we'd be okay with
increasing the number of constant expressions,
those still will have to be run..

But after 2829094a8e252d04f13aabdf6f416c42a06af695
this could also cause endless combine loops.
So actually properly restrict this code to immediates.


  Commit: b3e9b07a7d1cb543dcd8652a49a3613e6c9d993a
      https://github.com/llvm/llvm-project/commit/b3e9b07a7d1cb543dcd8652a49a3613e6c9d993a
  Author: Dimitry Andric <dimitry at andric.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/unittests/Support/TypeTraitsTest.cpp

  Log Message:
  -----------
  Avoid testing for libc++ internal macros after D99834

As D99834 was meant specifically for FreeBSD, which still uses the older
non-trivial std::pair copy constructors, test for `__FreeBSD__` instead
of relying on a macro which is an internal detail of libc++.

Noted by Louis Dionne.


  Commit: 3acf49829c0064d5bcea5d8f6ca032559bf8e73a
      https://github.com/llvm/llvm-project/commit/3acf49829c0064d5bcea5d8f6ca032559bf8e73a
  Author: Aart Bik <ajcbik at google.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M mlir/lib/Dialect/Linalg/Transforms/SparseLowering.cpp
    M mlir/lib/Dialect/Linalg/Transforms/Sparsification.cpp
    M mlir/lib/ExecutionEngine/SparseUtils.cpp
    M mlir/test/Integration/Sparse/CPU/sparse_matvec.mlir
    M mlir/test/Integration/data/wide.mtx

  Log Message:
  -----------
  [mlir][sparse] support integral types i32,i16,i8 for *numerical* values

Some sparse matrices operate on integral values (in contrast with the common
f32 and f64 values). This CL expands the compiler and runtime support to deal
with several common type combinations.

Reviewed By: bixia

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


  Commit: 5fc0e98d9a06e0fdd8cbd8dbf374bc002497db7e
      https://github.com/llvm/llvm-project/commit/5fc0e98d9a06e0fdd8cbd8dbf374bc002497db7e
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp

  Log Message:
  -----------
  [LoopIdiomRecognize] Minor cleanups to the FFS idiom matching. NFC

-Make sure of the CreateShl/LShr/AShr methods that take a uint64_t
instead of creating a ConstantInt for 1 ourselves.
-Use Builder.getInt1 or ConstantInt::getBool instead of a conditional.
-Pull out repeated calls to getType.


  Commit: 67953311e2e370a9fcf77595d66d39c505565382
      https://github.com/llvm/llvm-project/commit/67953311e2e370a9fcf77595d66d39c505565382
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    A llvm/test/CodeGen/AArch64/pr49781.ll
    M llvm/test/CodeGen/RISCV/rvv/vadd-sdnode-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vadd-sdnode-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/vmulh-sdnode-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vsub-sdnode-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vsub-sdnode-rv64.ll

  Log Message:
  -----------
  [SelectionDAG] Teach SelectionDAG::FoldConstantArithmetic to handle SPLAT_VECTOR

This allows FoldConstantArithmetic to handle SPLAT_VECTOR in
addition to BUILD_VECTOR. This allows it to support scalable
vectors. I'm also allowing fixed length SPLAT_VECTOR which is
used by some targets, but I'm not familiar enough to write tests
for those targets.

I had to block this function from running on CONCAT_VECTORS to
avoid calling getNode for a CONCAT_VECTORS of 2 scalars.
This can happen because the 2 operand getNode calls this
function for any opcode. Previously we were protected because
CONCAT_VECTORs of BUILD_VECTOR is folded to a larger BUILD_VECTOR
before that call. But it's not always possible to fold a CONCAT_VECTORS
of SPLAT_VECTORs, and we don't even try.

This fixes PR49781 where DAG combine thought constant folding
should be possible, but FoldConstantArithmetic couldn't do it.

Reviewed By: david-arm

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


  Commit: df59850038d800e8e8b062a5fc2e3d4ed624b526
      https://github.com/llvm/llvm-project/commit/df59850038d800e8e8b062a5fc2e3d4ed624b526
  Author: Aaron En Ye Shi <enye.shi at gmail.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/test/Driver/rocm-detect.hip

  Log Message:
  -----------
  [HIP] Fix rocm-detect.hip test path

The ROCm installation directory may be another
directory, llvm/ inside the build directory.

Reviewed By: yaxunl

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


  Commit: f087d7544a4194066506a45eac0524265bfab08d
      https://github.com/llvm/llvm-project/commit/f087d7544a4194066506a45eac0524265bfab08d
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
    M llvm/test/CodeGen/RISCV/rvv/vslide1down-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vslide1up-rv32.ll

  Log Message:
  -----------
  [RISCV] Support vslide1up/down intrinsics for SEW=64 on RV32.

This can't use our normal strategy of splatting the scalar and using
a .vv operation instead of .vx.

Instead this patch bitcasts the vector to the equivalent SEW=32
vector and inserts the scalar parts using two vslide1up/down. We
do that unmasked and apply the mask separately at the end with
a vmerge.

For vslide1up there maybe some other options here like getting
i64 into element 0 and using vslideup.vi with this vector as
vd and the original source as vs1. Masking would still need to
be done afterwards.

That idea doesn't work for vslide1down. We need to slidedown and
then insert a single scalar at vl-1 which we could do with a
vslideup, but that assumes vl > 0 which I don't think we can assume.

The i32 double slide1down implemented here is the best I could come
up with and I just made vslide1up consistent.

Reviewed By: frasercrmck

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


  Commit: f49a4440d38a4123b01ded6493a02b4cbf038928
      https://github.com/llvm/llvm-project/commit/f49a4440d38a4123b01ded6493a02b4cbf038928
  Author: Jordan Rupprecht <rupprecht at google.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M lldb/source/Host/common/Editline.cpp
    M lldb/test/API/commands/expression/multiline-navigation/TestMultilineNavigation.py

  Log Message:
  -----------
  [lldb][Editline] Fix crash when navigating through empty command history.

An empty history entry can happen by entering the expression evaluator an immediately hitting enter:

```
$ lldb
(lldb) e
Enter expressions, then terminate with an empty line to evaluate:
  1:  <hit enter>
```

The next time the user enters the expression evaluator, if they hit the up arrow to load the previous expression, lldb crashes. This patch treats empty history sessions as a single expression of zero length, instead of an empty list of expressions.

Fixes http://llvm.org/PR49845.

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


  Commit: ffc65824f0ee20e1f8e884811062b92bd6707b11
      https://github.com/llvm/llvm-project/commit/ffc65824f0ee20e1f8e884811062b92bd6707b11
  Author: Vy Nguyen <vyng at google.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M lld/MachO/Driver.cpp

  Log Message:
  -----------
  [lld-macho][nfc] Minor refactoring + clang-tidy fixes

- use "empty()" instead of "size()"
- refactor the re-export code so it doesn't create a new vector every time.

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


  Commit: 028092eb613e5553ce0833878e7d36fcaf11fcb2
      https://github.com/llvm/llvm-project/commit/028092eb613e5553ce0833878e7d36fcaf11fcb2
  Author: Aaron Ballman <aaron at aaronballman.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/utils/TableGen/ClangAttrEmitter.cpp

  Log Message:
  -----------
  Correct the tablegen logic for MutualExclusions attribute checking.

Just because an attribute is a statement attribute doesn't mean it's
not also a declaration attribute. In Clang, there are not currently any
DeclOrStmtAttr attributes that require mutual exclusion checking, but
downstream clients discovered this issue.


  Commit: 5c8462b5daa2a17eadf5e9f6b976452369aa3a93
      https://github.com/llvm/llvm-project/commit/5c8462b5daa2a17eadf5e9f6b976452369aa3a93
  Author: Abhina Sreeskantharajan <Abhina.Sreeskantharajan at ibm.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Support/ToolOutputFile.cpp

  Log Message:
  -----------
  [Windows] Remove global OF_None flag for Windows in ToolOutputFiles

Since we have created a new OF_TextWithCRLF flag, we no longer need to worry about OF_Text flag turning on CRLF translation. I can remove this workaround I added to globally open all ToolOutputFiles as binary on Windows.

Reviewed By: rnk

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


  Commit: 90af134473331095adcf2c7e4a511ac35d9f2f4a
      https://github.com/llvm/llvm-project/commit/90af134473331095adcf2c7e4a511ac35d9f2f4a
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/include/llvm/CodeGen/MachineModuleInfo.h
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
    M llvm/lib/CodeGen/MachineModuleInfo.cpp

  Log Message:
  -----------
  Revert "[AsmPrinter] Delete dead takeDeletedSymbsForFunction()"

This reverts commit 9583a3f2625818b78c0cf6d473cdedb9f23ad82c.

This wasn't NFC as initially thought. Needed for D99707.


  Commit: 6415f424bc2a3bbb4f2fd7bb67863968ac3c19f6
      https://github.com/llvm/llvm-project/commit/6415f424bc2a3bbb4f2fd7bb67863968ac3c19f6
  Author: Jonas Hahnfeld <jonas.hahnfeld at cern.ch>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64FastISel.cpp
    A llvm/test/CodeGen/AArch64/fast-isel-fpimm.ll
    M llvm/test/CodeGen/AArch64/fpimm.ll
    M llvm/test/CodeGen/AArch64/literal_pools_float.ll

  Log Message:
  -----------
  [AArch64] Materialize FP constant in code for large code model

When using the large code model with FastISel (for example via
clang -O0 which adds the optnone attribute), FP constants could
still be materialized using adrp + ldr. Unconditionally enable
the existing path for MachO to materialize the constant in code.

For testing, restore literal_pools_float.ll to exercise the constant
pool and add two optnone-functions that return a float and a double,
respectively. Consolidate fpimm.ll and add a new fast-isel-fpimm.ll
to check the code paths taken with FastISel.

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


  Commit: 6e36859a84df8add520d5f48f15eea236e2b32e2
      https://github.com/llvm/llvm-project/commit/6e36859a84df8add520d5f48f15eea236e2b32e2
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/test/Analysis/BasicAA/gep-modulo.ll

  Log Message:
  -----------
  [BasicAA] Extend test coverage for GEP modulo logic.

Add a few additional test cases which combine multiplies with
powers-of-2, different wrapping flags.


  Commit: 98952851911624918c9bb7309dd8030a73f8ef76
      https://github.com/llvm/llvm-project/commit/98952851911624918c9bb7309dd8030a73f8ef76
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp

  Log Message:
  -----------
  [RISCV] Replace 'return ReplaceNode' with 'ReplaceNode; return;' NFC

ReplaceNode is a void function as is the function that we were
doing this in. While this is valid code, it was a bit confusing.


  Commit: 676a9ab5e406f3a54179b3dd7be1ccd141841d19
      https://github.com/llvm/llvm-project/commit/676a9ab5e406f3a54179b3dd7be1ccd141841d19
  Author: Paul Robinson <paul.robinson at sony.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/.gitignore
    M llvm/.gitignore

  Log Message:
  -----------
  Remove .gitignore entries not relevant in the monorepo.

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


  Commit: 39ee9fd8c1c2424f76260f62ac223e3aa1760612
      https://github.com/llvm/llvm-project/commit/39ee9fd8c1c2424f76260f62ac223e3aa1760612
  Author: Haruki Imai <imaihal at jp.ibm.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
    M mlir/test/Transforms/canonicalize.mlir

  Log Message:
  -----------
  [mlir] Fixed alignment attribute of alloc constant folding.

When allocLikeOp is updated in alloc constant folding,
alighnment attribute was ignored. This patch fixes it.

Signed-off-by: Haruki Imai <imaihal at jp.ibm.com>

Reviewed By: mehdi_amini

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


  Commit: 7d8513b7f2e996fbbb35e0ffce4fe1d4f695928b
      https://github.com/llvm/llvm-project/commit/7d8513b7f2e996fbbb35e0ffce4fe1d4f695928b
  Author: Saurabh Jha <saurabh.jhaa at gmail.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/lib/CodeGen/CGExprScalar.cpp

  Log Message:
  -----------
  [clang] Move int <-> float scalar conversion to a separate function

As prelude to this patch https://reviews.llvm.org/D99037, we want to
move the int-float conversion
into a separate function that can be reused by matrix cast

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


  Commit: ebf2dc33287ea414059d3b2f3568f6653ddd4b51
      https://github.com/llvm/llvm-project/commit/ebf2dc33287ea414059d3b2f3568f6653ddd4b51
  Author: Jennifer Yu <jennifer.yu at intel.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/lib/Sema/SemaOpenMP.cpp
    M clang/test/OpenMP/dispatch_ast_print.cpp

  Log Message:
  -----------
  Fix missing generate capture expression for novariants condition.


  Commit: db851dfb495822c3288d04e4809ecddb829d97be
      https://github.com/llvm/llvm-project/commit/db851dfb495822c3288d04e4809ecddb829d97be
  Author: Vy Nguyen <vyng at google.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M lld/MachO/Driver.cpp
    M lld/test/MachO/time-trace.s

  Log Message:
  -----------
  [lld-macho] Make time-trace* options more permissive.

If either `time-trace-granularity` or `time-trace-file` is specified, then don't make users specify `-time-trace`.
It seems silly that I have to type all three options, eg, `-time-trace -time-trace-file=- -time-trace-granularity=...`.

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


  Commit: a723310b419be870acf72aafd3bfabacbaace642
      https://github.com/llvm/llvm-project/commit/a723310b419be870acf72aafd3bfabacbaace642
  Author: Jinsong Ji <jji at us.ibm.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/test/Driver/nostdincxx.cpp

  Log Message:
  -----------
  [Driver][test] Test intended target only

6fe7de90b9e4e466a5c2baadafd5f72d3203651d changed GNU toolchain,
and added new RUN line to test expected behavior.

The change is for GNU toolchain only, so this will fail other toolchain,
eg: AIX.

Update the test with `-target` to test GNU tool chain only.

Reviewed By: MaskRay

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


  Commit: 2da6ce60a5e92e431ea121175f2bc20287cc8ef9
      https://github.com/llvm/llvm-project/commit/2da6ce60a5e92e431ea121175f2bc20287cc8ef9
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M libcxxabi/test/test_exception_address_alignment.pass.cpp

  Log Message:
  -----------
  [libc++abi] Adjust XFAIL for misaligned exception header on ARM

On ARM, the alignment has always been the right one, so this test never
fails.


  Commit: 56ea2e2fdd691136d5e6631fa0e447173694b82c
      https://github.com/llvm/llvm-project/commit/56ea2e2fdd691136d5e6631fa0e447173694b82c
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/test/CodeGen/RISCV/sadd_sat.ll
    M llvm/test/CodeGen/RISCV/sadd_sat_plus.ll
    M llvm/test/CodeGen/RISCV/ssub_sat.ll
    M llvm/test/CodeGen/RISCV/ssub_sat_plus.ll

  Log Message:
  -----------
  [RISCV] Add a special case to lowerSELECT for select of 2 constants with a SETLT condition.

If the constants have a difference of 1 we can convert one to
the other by adding or subtracting the condition.

We have a DAG combine for this, but it only runs before type
legalization. If the select is introduced later during type
legalization or op legalization we will miss it.

We don't need a specific condition, but some conditions are
harder to materialize than others on RISCV. I know that SETLT
will be a single instruction and it is what is used by the
motivating pattern from signed saturating add/sub.

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


  Commit: 79ac5bbb96c46e3c6c3568a441c13aa10c087b25
      https://github.com/llvm/llvm-project/commit/79ac5bbb96c46e3c6c3568a441c13aa10c087b25
  Author: Shafik Yaghmour <syaghmour at apple.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M lldb/docs/use/variable.rst
    M lldb/test/API/functionalities/data-formatter/data-formatter-advanced/TestDataFormatterAdv.py
    M lldb/test/API/functionalities/data-formatter/data-formatter-advanced/main.cpp

  Log Message:
  -----------
  [LLDB] Clarifying the documentation for variable formatting wrt to qualifiers and adding a test that demonstrates this

When looking up user specified formatters qualifiers are removed from types before matching,
I have added a clarifying example to the document and added an example to a relevant test to demonstrate this behavior.

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


  Commit: aca26133309ef197dc591b1fd6639ef2c4aaf6f2
      https://github.com/llvm/llvm-project/commit/aca26133309ef197dc591b1fd6639ef2c4aaf6f2
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/InstCombine/minmax-intrinsics.ll

  Log Message:
  -----------
  [InstCombine] add test for min/max intrinsic with not ops; NFC


  Commit: c0bbd0cc35b91c7244b15c3fed1e0dbcf9c0df55
      https://github.com/llvm/llvm-project/commit/c0bbd0cc35b91c7244b15c3fed1e0dbcf9c0df55
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
    M llvm/test/Transforms/InstCombine/minmax-intrinsics.ll

  Log Message:
  -----------
  [InstCombine] fold not ops around min/max intrinsics

This is another step towards parity with the existing
cmp+select folds (see D98152).


  Commit: 0056e7e15ac0c89cb6eab37d79900d174adb713e
      https://github.com/llvm/llvm-project/commit/0056e7e15ac0c89cb6eab37d79900d174adb713e
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/test/Analysis/BasicAA/gep-modulo.ll

  Log Message:
  -----------
  [BasicAA] Add another GEP modulo test with shl with odd op.


  Commit: d5d412f2aec1e432803fce451876e4449096acd1
      https://github.com/llvm/llvm-project/commit/d5d412f2aec1e432803fce451876e4449096acd1
  Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPU.h
    M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
    M llvm/lib/Target/AMDGPU/GCNRegBankReassign.cpp

  Log Message:
  -----------
  [AMDGPU] Split GCNRegBankReassign

Allow pass to work separately with SGPR, VGPR registers or both.
This is NFC now but will be needed to split RA for separate
SGPR and VGPR passes.

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


  Commit: 4658cd4c18ba73257a8642fd757c2124ad840204
      https://github.com/llvm/llvm-project/commit/4658cd4c18ba73257a8642fd757c2124ad840204
  Author: Tony Tye <Tony.Tye at amd.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/docs/AMDGPUUsage.rst
    M llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp
    M llvm/test/CodeGen/AMDGPU/callee-special-input-vgprs-packed.ll
    M llvm/test/CodeGen/AMDGPU/dag-divergence-atomic.ll
    M llvm/test/CodeGen/AMDGPU/expand-atomicrmw-syncscope.ll
    M llvm/test/CodeGen/AMDGPU/fp64-atomics-gfx90a.ll
    M llvm/test/CodeGen/AMDGPU/global-atomics-fp.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-fence.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-flat-system.ll
    M llvm/test/CodeGen/AMDGPU/memory-legalizer-global-system.ll

  Log Message:
  -----------
  [AMDGPU] Update gfx90a memory model support

Reviewed By: rampitec

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


  Commit: 37878de5036718481e13d5067a17d65eb85c3388
      https://github.com/llvm/llvm-project/commit/37878de5036718481e13d5067a17d65eb85c3388
  Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/test/MC/AMDGPU/gfx90a_asm_features.s
    M llvm/test/MC/AMDGPU/gfx90a_err.s
    M llvm/test/MC/AMDGPU/misaligned-vgpr-tuples-err.s
    M llvm/test/MC/Disassembler/AMDGPU/gfx90a_dasm_features.txt

  Log Message:
  -----------
  Disable use of SCC bit from asm

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


  Commit: d9065fe8ea643bd889821c0dc4c7dbec0469c28e
      https://github.com/llvm/llvm-project/commit/d9065fe8ea643bd889821c0dc4c7dbec0469c28e
  Author: Jez Ng <jezng at fb.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M lld/MachO/SyntheticSections.h
    M lld/MachO/Writer.cpp

  Log Message:
  -----------
  [lld-macho] Parallelize __LINKEDIT generation

Benchmarking chromium_framework on a 3.2 GHz 16-Core Intel Xeon W Mac Pro:

      N           Min           Max        Median           Avg        Stddev
  x  20          4.33          4.42          4.37          4.37   0.021026299
  +  20          4.12          4.23          4.18         4.175   0.035318103
  Difference at 95.0% confidence
    -0.195 +/- 0.0186025
    -4.46224% +/- 0.425686%
    (Student's t, pooled s = 0.0290644)

Reviewed By: #lld-macho, gkm

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


  Commit: 5f6b3d1833fdf20e18a3c8bf3ede7b5060130f73
      https://github.com/llvm/llvm-project/commit/5f6b3d1833fdf20e18a3c8bf3ede7b5060130f73
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td

  Log Message:
  -----------
  [RISCV] Use multiclass inheritance to simplify some of riscv_vector.td. NFCI

We don't need to instantiate single multiclasses inside of
other multiclasses. We can use inheritance and save writing 'defm ""'.

Reviewed By: khchen

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


  Commit: f5645ea65f0dfdef2ae9c74075cc4b44f05dcb82
      https://github.com/llvm/llvm-project/commit/f5645ea65f0dfdef2ae9c74075cc4b44f05dcb82
  Author: CongzheUalberta <congzhecao at gmail.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
    M llvm/test/Transforms/LoopInterchange/lcssa-preheader.ll
    A llvm/test/Transforms/LoopInterchange/outer-header-jump-to-inner-latch.ll

  Log Message:
  -----------
  [LoopInterchange] Fix transformation bugs in loop interchange

After loop interchange, the (old) outer loop header should not jump to
`LoopExit`. Note that the old outer loop becomes the new inner loop
after interchange. If we branched to `LoopExit` then after interchange
we would jump directly from the (new) inner loop header to `LoopExit`
without executing the rest of (new) outer loop.

This patch modifies adjustLoopBranches() such that the old outer
loop header (which becomes the new inner loop header) jumps to the
old inner loop latch which becomes the new outer loop latch after
interchange.

Reviewed By: bmahjour

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


  Commit: 2e9465ce2ef6fb7be13d25024f95118642097be1
      https://github.com/llvm/llvm-project/commit/2e9465ce2ef6fb7be13d25024f95118642097be1
  Author: Tony Tye <Tony.Tye at amd.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/docs/AMDGPUUsage.rst

  Log Message:
  -----------
  [NFC][AMDGPU] Correct indentation in AMDGPUUsage.rst

Correct indentation that results in rST syntax error.


  Commit: 593cb4655097552ac6d81ce18a2851ae0feb8d3c
      https://github.com/llvm/llvm-project/commit/593cb4655097552ac6d81ce18a2851ae0feb8d3c
  Author: Congzhe Cao <congzhe.cao at huawei.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
    M llvm/test/Transforms/LoopInterchange/lcssa-preheader.ll
    R llvm/test/Transforms/LoopInterchange/outer-header-jump-to-inner-latch.ll

  Log Message:
  -----------
  Revert "[LoopInterchange] Fix transformation bugs in loop interchange"

This reverts commit 6ec68bd815d00c1eec2a6b9766452554f0e6cb61.


  Commit: 74e77295e75412ddba74c16d0f0766dfb5b67e89
      https://github.com/llvm/llvm-project/commit/74e77295e75412ddba74c16d0f0766dfb5b67e89
  Author: Chen Zheng <czhengsz at cn.ibm.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
    M llvm/test/CodeGen/PowerPC/convert-ri-addi-to-ri.mir

  Log Message:
  -----------
  [PowerPC] fixup killed flags for ri + addi to ri transformation

Fixup killed flags if DefMI and MI are not in the same basic blocks.

Reviewed By: nemanjai

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


  Commit: d5fee599c5206ce81272a072fe389109761de593
      https://github.com/llvm/llvm-project/commit/d5fee599c5206ce81272a072fe389109761de593
  Author: hsmahesha <mahesha.comp at gmail.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    A llvm/test/CodeGen/AMDGPU/ds-alignment.ll

  Log Message:
  -----------
  [AMDGPU] Add some exhaustive ds read/write alignment tests

PS: Submitting on behalf of Jay.

Reviewed By: rampitec

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


  Commit: ac64995ceb4016fe89305f7a24a79c94bdfd249d
      https://github.com/llvm/llvm-project/commit/ac64995ceb4016fe89305f7a24a79c94bdfd249d
  Author: hsmahesha <mahesha.comp at gmail.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/DSInstructions.td
    M llvm/test/CodeGen/AMDGPU/GlobalISel/lds-misaligned-bug.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/load-unaligned.ll
    M llvm/test/CodeGen/AMDGPU/ds-alignment.ll
    M llvm/test/CodeGen/AMDGPU/ds_read2.ll
    M llvm/test/CodeGen/AMDGPU/ds_write2.ll
    M llvm/test/CodeGen/AMDGPU/lds-misaligned-bug.ll

  Log Message:
  -----------
  [AMDGPU] Only use ds_read/write_b128 for alignment >= 16

PS: Submitting on behalf of Jay.

Reviewed By: rampitec

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


  Commit: 65b1103798df7bc84137766d813315b4cc54df3e
      https://github.com/llvm/llvm-project/commit/65b1103798df7bc84137766d813315b4cc54df3e
  Author: Serge Pavlov <sepavloff at gmail.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/lib/Target/RISCV/RISCVInstrInfo.td

  Log Message:
  -----------
  [RISCV] DAG nodes and pseudo instructions for CSR access

New custom DAG nodes were added to represent operations on CSR. These
nodes are lowered to corresponding pseudo instruction. Using the pseudo
instructions allows to specify different scheduling information for
operations on different system registers. It also make possible to
specify dependencies of instructions on specific system registers.

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


  Commit: 8ac5e440615dd3dc9fd2eb88c0bad32fdc5f678c
      https://github.com/llvm/llvm-project/commit/8ac5e440615dd3dc9fd2eb88c0bad32fdc5f678c
  Author: Fangrui Song <i at maskray.me>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/lib/Driver/Driver.cpp
    M clang/test/Driver/program-path-priority.c

  Log Message:
  -----------
  [Driver] Drop $DEFAULT_TRIPLE-$name as a fallback program name

D13340 introduced this behavior which is not needed even for mips.
This was raised on https://lists.llvm.org/pipermail/cfe-dev/2020-May/065437.html
but no action was taken.

This was raised again in https://lists.llvm.org/pipermail/cfe-dev/2021-April/067974.html
"The LLVM host/target TRIPLE padding drama on Debian"
as it caused confusion. This patch drops the behavior.

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


  Commit: 0918f44e2670ed9beece4b37c33ff803de5199bb
      https://github.com/llvm/llvm-project/commit/0918f44e2670ed9beece4b37c33ff803de5199bb
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/docs/CodeReview.rst
    M llvm/docs/DeveloperPolicy.rst

  Log Message:
  -----------
  [docs] Document our norms around reverts

This has come up a few times recently, and I was surprised to notice that we don't have anything in the docs.

This patch deliberately sticks to stuff that is uncontroversial in the community. Everything herein is thought to be widely agreed to by a large majority of the community.  A few things were noted and removed in review which failed this standard, if you spot anything else, please point it out.

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


  Commit: 73cbc7f60ed90ad207b54b55aaf0efa0e5c38c47
      https://github.com/llvm/llvm-project/commit/73cbc7f60ed90ad207b54b55aaf0efa0e5c38c47
  Author: Dan Liew <dliew at apple.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M clang/cmake/caches/Apple-stage2.cmake

  Log Message:
  -----------
  Include `llvm-config` and `not` in AppleClang toolchains.

The motivation here is so that we can configure and run compiler-rt
tests from a standalone build against AppleClang.

rdar://75975846

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


  Commit: eb7f5eaf3500fd0502a8ee56cc227432430c382b
      https://github.com/llvm/llvm-project/commit/eb7f5eaf3500fd0502a8ee56cc227432430c382b
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Support/MlirOptMain.h

  Log Message:
  -----------
  Change the default value for `preloadDialectsInContext` for MlirOptMain

This option has been deprecated for 6 months, change the default setting for now before
future removal.

While clients can set the option to true for now, they should start
updating their passes to define the right `dependentDialects` in
preparation of the removal of this option. See the FAQ for more info:
https://mlir.llvm.org/getting_started/Faq/

Reviewed By: rriddle, jpienaar

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


  Commit: 2a2720a2dec4ad4fdc7ae58939448e51824a12c4
      https://github.com/llvm/llvm-project/commit/2a2720a2dec4ad4fdc7ae58939448e51824a12c4
  Author: Hongtao Yu <hoy at fb.com>
  Date:   2021-04-07 (Wed, 07 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    A llvm/test/Transforms/SampleProfile/pseudo-probe-selectionDAG.ll

  Log Message:
  -----------
  [CSSPGO] Move pseudo probes to the beginning of a block to unblock SelectionDAG combine.

Pseudo probes, when scattered in a block, can be chained dependencies of other regular DAG nodes and block DAG combine optimizations. To fix this, scattered probes in a block are grouped and placed at the beginning of the block. This shouldn't affect the profile quality.

Test Plan:

Reviewed By: wenlei, wmi

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


  Commit: 648544f998cd0811670a625f4f2964125cf833b3
      https://github.com/llvm/llvm-project/commit/648544f998cd0811670a625f4f2964125cf833b3
  Author: Juneyoung Lee <aqjune at gmail.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/IR/Constants.cpp
    M llvm/unittests/IR/ConstantsTest.cpp

  Log Message:
  -----------
  [Constant] ConstantStruct/Array should not lower poison to undef

This is a (late) follow-up patch of 8871a4b4cab8a56fd6ff12fd024002c3c79128b3 and
c95f39891a282ebf36199c73b705d4a2c78a46ce to make ConstantStruct::get/ConstantArray::getImpl
correctly return PoisonValue if all elements are poison.
This was found while discussing about the elements of a vector-typed UndefValue (D99853)


  Commit: fe16aa7d65512161bd7ea3b85f6aa726cc36ae12
      https://github.com/llvm/llvm-project/commit/fe16aa7d65512161bd7ea3b85f6aa726cc36ae12
  Author: Juneyoung Lee <aqjune at gmail.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/unittests/IR/ConstantsTest.cpp

  Log Message:
  -----------
  [Constant] Remove unused variable


  Commit: b8cd6681156a533dd6d4b3f0f5a1acf1116bc347
      https://github.com/llvm/llvm-project/commit/b8cd6681156a533dd6d4b3f0f5a1acf1116bc347
  Author: Hsiangkai Wang <kai.wang at sifive.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    A llvm/test/CodeGen/RISCV/rvv/addi-scalable-offset.mir

  Log Message:
  -----------
  [NFC][RISCV] Add test for scalable offset under large stack size.

This test case shows that we access wrong stack slots when the frame
object has scalable offset under large stack size.

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


  Commit: ba72bdef3250ce2ef602d7a07af6a5a6c5255fde
      https://github.com/llvm/llvm-project/commit/ba72bdef3250ce2ef602d7a07af6a5a6c5255fde
  Author: Hsiangkai Wang <kai.wang at sifive.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
    M llvm/test/CodeGen/RISCV/rvv/addi-scalable-offset.mir

  Log Message:
  -----------
  [RISCV] Add scalable offset under very large stack size.

If the stack size is larger than 12 bits, we have to use a scratch
register to store the stack size. Before we introduce the scalable stack
offset, we could simplify

%0 = ADDI %stack.0, 0

=>

%scratch = ... # sequence of instructions to move the offset into
%%scratch
%0 = ADD %fp, %scratch

However, if the offset contains scalable part, we need to consider it.

%0 = ADDI %stack.0, 0

=>

%scratch = ... # sequence of instructions to move the offset into
%%scratch
%scratch = ADD %fp, %scratch
%scalable_offset = ... # sequence of instructions for vscaled-offset.
%0 = ADD/SUB %scratch, %scalable_offset

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


  Commit: 0c36da722aa55535d35d1423c70fc04ab8889090
      https://github.com/llvm/llvm-project/commit/0c36da722aa55535d35d1423c70fc04ab8889090
  Author: Esme-Yi <esme.yi at ibm.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
    M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
    M llvm/lib/CodeGen/CommandFlags.cpp
    A llvm/test/DebugInfo/XCOFF/dbx-inlinedstrings.ll

  Log Message:
  -----------
  [Debug-Info] Use inlined strings in .dwinfo section by default for DBX.

Summary: Set the default DwarfInlinedStrings as inlined strings for DBX, due to DBX does not support .dwstr section for now.

Reviewed By: dblaikie

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


  Commit: 0a1c6637a1e89ca757e69225f6ead27bf151a16b
      https://github.com/llvm/llvm-project/commit/0a1c6637a1e89ca757e69225f6ead27bf151a16b
  Author: Serguei Katkov <serguei.katkov at azul.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/RegAllocGreedy.cpp

  Log Message:
  -----------
  [GreedyRA ORE] Compute ORE stats if extra analysis is enabled

To save compile time, avoid computation of stats if ORE will not emit it.
The motivation is to add more stats and compute it only if it will dumped.

Reviewers: reames, MatzeB, anemet, thegameg
Reviewed By: reames
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D100010


  Commit: df2578779778906438d7cb8f84ead414ae9b1a04
      https://github.com/llvm/llvm-project/commit/df2578779778906438d7cb8f84ead414ae9b1a04
  Author: Serguei Katkov <serguei.katkov at azul.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/RegAllocGreedy.cpp

  Log Message:
  -----------
  [GreedyRA ORE] Extract stats in RAGreedyStats struct. NFC.

Combine all collected stats into separate struct RAGreedyStats
with add and report methods.

The motivation is to extend the number of statistics to capture and instead of
adding new parameters, just combine all of them into one structure.
Additionally I plan to use report from different places in future to report data
for function as well.

Reviewers: reames, MatzeB, anemet, thegameg
Reviewed By: thegameg
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D100012


  Commit: 6b64c662c79524a2ec5f5b1bc10ce4c2a1e3ff37
      https://github.com/llvm/llvm-project/commit/6b64c662c79524a2ec5f5b1bc10ce4c2a1e3ff37
  Author: Serguei Katkov <serguei.katkov at azul.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/RegAllocGreedy.cpp

  Log Message:
  -----------
  [GreedyRA ORE] Extract computeNumberOfSplillsReloads to use in different places. NFC.

Extract one basic block handling to introduce stat computation for method scope.

Reviewers: reames, MatzeB, anemet, thegameg
Reviewed By: reames, thegameg
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D100013


  Commit: edb18ea5a9132a8e359ce0c0b103286d15244b8a
      https://github.com/llvm/llvm-project/commit/edb18ea5a9132a8e359ce0c0b103286d15244b8a
  Author: LemonBoy <thatlemon at gmail.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/MC/MCParser/AsmLexer.cpp
    M llvm/test/MC/AsmParser/directive_values.s

  Log Message:
  -----------
  [AsmParser] Recognize more escaped characters between single quotes

The GNU AS manual states the following about single-character constants enclosed within single quotes:

>  Some backslash escapes apply to characters, \b, \f, \n, \r, \t, and \" with the same meaning as for strings, plus \' for a single quote.

Add two more characters to the switch handling this case to match GAS behaviour, plus a test to make sure nothing regresses.

Reviewed By: MaskRay

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


  Commit: 20105b6b4874a85813f7a4a3d8ad2a0f023dda14
      https://github.com/llvm/llvm-project/commit/20105b6b4874a85813f7a4a3d8ad2a0f023dda14
  Author: serge-sans-paille <sguelton at redhat.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M clang/lib/Basic/SourceManager.cpp

  Log Message:
  -----------
  [clang] Speedup line offset mapping computation

Clang spends a decent amount of time in the LineOffsetMapping::get(...)
function. This function used to be vectorized (through SSE2) then the
optimization got dropped because the sequential version was on-par performance
wise.

This provides an optimization of the sequential version that works on a word at
a time, using (documented) bithacks to provide a portable vectorization.

When preprocessing the sqlite amalgamation, this yields a sweet 3% speedup.

This is a recommit of 6951b72334bbe4c189c71751edc1e361d7b5632c with endianness
and unsigned long vs uint64_t issues fixed (hopefully).

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


  Commit: b614ada0e80fe1af00294e8460f987dc6a7e4d5b
      https://github.com/llvm/llvm-project/commit/b614ada0e80fe1af00294e8460f987dc6a7e4d5b
  Author: Tobias Gysi <gysit at google.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M mlir/docs/Rationale/Rationale.md
    M mlir/include/mlir/Dialect/StandardOps/IR/Ops.td
    M mlir/include/mlir/Dialect/Vector/VectorOps.td
    M mlir/include/mlir/IR/BuiltinTypes.td
    M mlir/include/mlir/IR/OpBase.td
    M mlir/include/mlir/Interfaces/DataLayoutInterfaces.h
    M mlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
    M mlir/lib/Dialect/Vector/CMakeLists.txt
    M mlir/lib/Dialect/Vector/VectorOps.cpp
    M mlir/lib/Dialect/Vector/VectorTransforms.cpp
    M mlir/lib/IR/BuiltinAttributes.cpp
    M mlir/lib/IR/BuiltinTypes.cpp
    M mlir/lib/Interfaces/DataLayoutInterfaces.cpp
    M mlir/lib/Parser/TypeParser.cpp
    M mlir/test/Conversion/StandardToLLVM/standard-to-llvm.mlir
    M mlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
    M mlir/test/Dialect/Vector/ops.mlir
    M mlir/test/IR/invalid-ops.mlir
    M mlir/test/IR/invalid.mlir
    A mlir/test/Integration/Dialect/Vector/CPU/test-index-vectors.mlir

  Log Message:
  -----------
  [mlir] add support for index type in vectors.

The patch enables the use of index type in vectors. It is a prerequisite to support vectorization for indexed Linalg operations. This refactoring became possible due to the newly introduced data layout infrastructure. The data layout of a module defines the bitwidth of the index type needed to verify bitcasts and similar vector operations.

Reviewed By: nicolasvasilache

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


  Commit: 04419628e011d32a1b3dd8efd981ed9e978bf43d
      https://github.com/llvm/llvm-project/commit/04419628e011d32a1b3dd8efd981ed9e978bf43d
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/AMDGPU/amdgpu.private-memory.ll
    M llvm/test/CodeGen/AMDGPU/private-memory-r600.ll

  Log Message:
  -----------
  [AMDGPU, test] Fix use of undef FileCheck var

Test CodeGen/AMDGPU/amdgpu.private-memory.ll and
CodeGen/AMDGPU/private-memory-r600.ll have a block of CHECK directives
whose prefix is inconsistent: R600-CHECK Vs R600. This leads to a
R600-NOT directive using an undefined CHAN variable due to R600-CHECK
directives never being considered by FileCheck. Fixing the prefix leads
to the testcase failing. As per https://reviews.llvm.org/D99865#2675235
this commit removes the directives instead since it is not possible to
write a reliable check.

Reviewed By: arsenm

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


  Commit: d9773c1b4eb14c5f38d23323270ef67b4c528844
      https://github.com/llvm/llvm-project/commit/d9773c1b4eb14c5f38d23323270ef67b4c528844
  Author: Jason Molenda <jason at molenda.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M lldb/test/API/macosx/lc-note/firmware-corefile/Makefile
    M lldb/test/API/macosx/lc-note/firmware-corefile/TestFirmwareCorefiles.py
    R lldb/test/API/macosx/lc-note/firmware-corefile/bout.mk
    M lldb/test/API/macosx/lc-note/firmware-corefile/main.c
    A lldb/test/API/macosx/lc-note/firmware-corefile/operating_system.py

  Log Message:
  -----------
  Reorg firmware corefile tests; add test for OS plugin loading

A little cleanup to how these firmware corefile tests are done; add
a test that loads a dSYM that loads an OS plugin, and confirm that
the OS plugin's threads are created.


  Commit: 8fcb114d002bf7cd61309af80b26af68389944d0
      https://github.com/llvm/llvm-project/commit/8fcb114d002bf7cd61309af80b26af68389944d0
  Author: Sven van Haastregt <sven.vanhaastregt at arm.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M clang/lib/Sema/OpenCLBuiltins.td

  Log Message:
  -----------
  [OpenCL] Fix mipmap read_image return types

The return type did not match the function name.


  Commit: a5693445cac05238559f3d957918b22b8ea02310
      https://github.com/llvm/llvm-project/commit/a5693445cac05238559f3d957918b22b8ea02310
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.h
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
    A llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vreductions-mask.ll
    A llvm/test/CodeGen/RISCV/rvv/vreductions-mask.ll

  Log Message:
  -----------
  [RISCV] Support OR/XOR/AND reductions on vector masks

This patch adds RVV codegen support for OR/XOR/AND reductions for both
scalable- and fixed-length vector types. There are a few possible
codegen strategies for each -- vmfirst.m, vmsbf.m, and vmsif.m could be
used to some extent -- but the vpopc.m instruction was chosen since it
produces the scalar result in one instruction, after which scalar
instructions can finish off the computation.

The reductions are lowered identically for both scalable- and
fixed-length vectors, although some alternate strategies may be more
optimal on fixed-length vectors since it's cheaper to get the length of
those types.

Other reduction types were not deemed to be relevant for mask vectors.

Reviewed By: craig.topper

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


  Commit: 1a4d3d0bca2beda5bdfb3261547a97af70cffb47
      https://github.com/llvm/llvm-project/commit/1a4d3d0bca2beda5bdfb3261547a97af70cffb47
  Author: David Green <david.green at arm.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    A llvm/test/Transforms/LoopVectorize/ARM/mve-selectandorcost.ll

  Log Message:
  -----------
  [LV] Add a logical and/or select cost test. NFC


  Commit: 8675ef100f8cbf59f2e90f4836fb92db83b6062e
      https://github.com/llvm/llvm-project/commit/8675ef100f8cbf59f2e90f4836fb92db83b6062e
  Author: David Green <david.green at arm.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/test/Transforms/LoopVectorize/ARM/mve-selectandorcost.ll

  Log Message:
  -----------
  [LV] Logical and/or select costs

D99674 stopped the folding of certain select operations into and/or, due
to incorrect folding in the presence of poison. D97360 added some costs
to attempt to account for the change, but only worked at the getUserCost
level, not the getCmpSelInstrCost that the vectorizer will use directly.
This adds similar logic into the vectorizer to handle these logical
and/or selects, treating them like and/or directly.

This fixes 60% performance regressions from code like the attached test
case.

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


  Commit: e81b3401177a67481605447ea5250d8345cb4341
      https://github.com/llvm/llvm-project/commit/e81b3401177a67481605447ea5250d8345cb4341
  Author: Andrzej Warzynski <andrzej.warzynski at arm.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M flang/include/flang/Frontend/FrontendActions.h
    M flang/include/flang/Frontend/FrontendOptions.h
    M flang/lib/Frontend/CompilerInvocation.cpp
    M flang/lib/Frontend/FrontendActions.cpp
    M flang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
    M flang/test/Driver/driver-help.f90
    A flang/test/Driver/dump-parse-tree-no-sema.f90
    M flang/test/Parser/omp-allocate-unparse.f90
    M flang/test/Parser/omp-atomic-unparse.f90
    M flang/tools/f18/f18.cpp

  Log Message:
  -----------
  [flang][driver] Add debug options not requiring semantic checks

This patch adds two debugging options in the new Flang driver
(flang-new):
  *fdebug-unparse-no-sema
  *fdebug-dump-parse-tree-no-sema
Each of these options combines two options from the "throwaway" driver
(left: f18, right: flang-new):
  * `-fdebug-uparse -fdebug-no-semantics` --> `-fdebug-unparse-no-sema`
  * `-fdebug-dump-parse-tree -fdebug-no-semantics` -->
    `-fdebug-dump-parse-tree-no-sema`

There are no plans to implement `-fdebug-no-semantics` in the new
driver.  Such option would be too powerful. Also, it would only make
sense when combined with specific frontend actions (`-fdebug-unparse`
and `-fdebug-dump-parse-tree`). Instead, this patch adds 2 specialised
options listed above. Each of these is implemented through a dedicated
FrontendAction (also added).

The new frontend actions are implemented in terms of a new abstract base
action: `PrescanAndSemaAction`. This new base class was required so that
we can have finer control over what steps within the frontend are
executed:
  * `PrescanAction`: run the _prescanner_
  * `PrescanAndSemaAction`: run the _prescanner_ and the _parser_ (new
     in this patch)
  * `PrescanAndSemaAction`: run the _prescanner_, _parser_ and run the
    _semantic checks_

This patch introduces `PrescanAndParseAction::BeginSourceFileAction`.
Apart from the semantic checks removed at the end, it is similar to
`PrescanAndSemaAction::BeginSourceFileAction`.

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


  Commit: a0e8738d452794c9fb956676e7112ae915fe9302
      https://github.com/llvm/llvm-project/commit/a0e8738d452794c9fb956676e7112ae915fe9302
  Author: Serguei Katkov <serguei.katkov at azul.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/RegAllocGreedy.cpp
    M llvm/test/CodeGen/AArch64/arm64-spill-remarks.ll

  Log Message:
  -----------
  [GreedyRA ORE] Add function level spill/reloads stats

Reviewers: reames, MatzeB, anemet, thegameg
Reviewed By: reames, thegameg
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D100014


  Commit: 6e8601ff4ae1154e6f7963c70453b4818d7453e0
      https://github.com/llvm/llvm-project/commit/6e8601ff4ae1154e6f7963c70453b4818d7453e0
  Author: Anastasia Stulova <anastasia.stulova at arm.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M clang/docs/OpenCLSupport.rst

  Log Message:
  -----------
  [OpenCL][Docs] Fix typo in section label


  Commit: 4b273b19826515e47837c0e5c1e5abf625615080
      https://github.com/llvm/llvm-project/commit/4b273b19826515e47837c0e5c1e5abf625615080
  Author: Andrzej Warzynski <andrzej.warzynski at arm.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    A flang/test/Driver/flarge-sizes.f90
    R flang/test/Driver/flarge_sizes.f90
    A flang/test/Driver/intrinsic-module-path.f90
    R flang/test/Driver/intrinsic_module_path.f90
    A flang/test/Driver/std2018-wrong.f90
    R flang/test/Driver/std2018_wrong.f90
    A flang/test/Driver/werror-parse.f
    A flang/test/Driver/werror-scan.f
    A flang/test/Driver/werror-sema.f90
    A flang/test/Driver/werror-wrong.f90
    R flang/test/Driver/werror_parse.f
    R flang/test/Driver/werror_scan.f
    R flang/test/Driver/werror_sema.f90
    R flang/test/Driver/werror_wrong.f90

  Log Message:
  -----------
  [flang][nfc] Rename some test files

Update test names as per Flang's coding style guide [1]:
```
File names should use dashes, not underscores.
```

[1] https://github.com/llvm/llvm-project/blob/main/flang/docs/C%2B%2Bstyle.md#files


  Commit: 2a1f87167cc01261e1164772ba58418fea58326b
      https://github.com/llvm/llvm-project/commit/2a1f87167cc01261e1164772ba58418fea58326b
  Author: Mikael Holmen <mikael.holmen at ericsson.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Target/NVPTX/NVPTXLowerArgs.cpp

  Log Message:
  -----------
  [NVPTX] Fix compiler warning in NDEBUG build [NFC]

Without the fix we get

../lib/Target/NVPTX/NVPTXLowerArgs.cpp:236:24: error: lambda capture 'Arg' is not used [-Werror,-Wunused-lambda-capture]
  auto IsALoadChain = [Arg](Value *Start) {
                       ^~~
1 error generated.


  Commit: b601c6719226fb83c43dae62a581e5ee08bfb169
      https://github.com/llvm/llvm-project/commit/b601c6719226fb83c43dae62a581e5ee08bfb169
  Author: Michał Górny <mgorny at moritz.systems>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
    M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
    M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
    A lldb/test/API/functionalities/gdb_remote_client/TestMultiprocess.py

  Log Message:
  -----------
  [lldb] [client] Support for multiprocess extension

Add a minimal support for the multiprocess extension in gdb-remote
client.  It accepts PIDs as part of thread-ids, and rejects PIDs that
do not match the current inferior.

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


  Commit: aa165eac322d9f377b364864af66de71fc69f613
      https://github.com/llvm/llvm-project/commit/aa165eac322d9f377b364864af66de71fc69f613
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/test/Analysis/CostModel/X86/load_store.ll

  Log Message:
  -----------
  [NFC][X86][CostModel] Add some load/store tests w/ non-power-of-two elt cnt vectors

For example the cost to load <48 x i16> should likely be 3,
because that's just 3x load i256.


  Commit: 140757bfaaa00110a92d2247a910c847e6e3bcc8
      https://github.com/llvm/llvm-project/commit/140757bfaaa00110a92d2247a910c847e6e3bcc8
  Author: Stephen Tozer <Stephen.Tozer at Sony.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/include/llvm/IR/IntrinsicInst.h
    M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
    A llvm/test/Transforms/LoopStrengthReduce/dbg-preserve-2.ll

  Log Message:
  -----------
  [DebugInfo] Prevent invalid debug info being produced during LoopStrengthReduce

During LoopStrengthReduce, some of the SSA values that are used by debug values
may be lost and/or salvaged. After LSR we attempt to recover any undef debug
values, including any that were salvaged but then lost their values afterwards,
by replacing the lost values with any live equal values (plus a possible
constant offset) that have been gathered prior to running LSR. When we do this
we restore the debug value's original DIExpression, to undo any salvaging (as we
have gone back to using the original debug value).

This process can currently produce invalid debug info if the number of operands
has changed by salvaging during LSR. Replacing old values during the
applyEqualValues step does not change the number of location operands, which
means that when we restore the old DIExpression we may have a mismatch between
the number of operands used by the debug value and the number of operands
referenced by the DIExpression. This patch fixes this by restoring the full
original location metadata at the start of the applyEqualValues step, so that
there is no mismatch in operand count between the debug value and its
DIExpression.

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


  Commit: 94a6fe43de4583038e137f2fcbe634c174af5662
      https://github.com/llvm/llvm-project/commit/94a6fe43de4583038e137f2fcbe634c174af5662
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp

  Log Message:
  -----------
  [AMDGPU] SIFoldOperands: refactor tryFoldCndMask with early-outs. NFC.


  Commit: 004f29c0bb3cad623bfd147f73bf6f8ab293ed53
      https://github.com/llvm/llvm-project/commit/004f29c0bb3cad623bfd147f73bf6f8ab293ed53
  Author: Lei Zhang <antiagainst at google.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp

  Log Message:
  -----------
  [mlir][spirv] Timely fail type conversion

Per the TypeConverter API contract, returning `llvm:None` means
other conversion rules should be tried. But we only have one
rule per input type. So there is no need to try others and we can
just directly fail, which should return `nullptr`. This avoids
unnecessary checks.

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


  Commit: 5299843c31468ab73d63242eaa79bedfc885b877
      https://github.com/llvm/llvm-project/commit/5299843c31468ab73d63242eaa79bedfc885b877
  Author: Lei Zhang <antiagainst at google.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Conversion/Passes.td
    M mlir/include/mlir/Dialect/SPIRV/Transforms/SPIRVConversion.h
    M mlir/lib/Conversion/StandardToSPIRV/StandardToSPIRVPass.cpp
    M mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp
    M mlir/test/Conversion/StandardToSPIRV/std-types-to-spirv.mlir

  Log Message:
  -----------
  [mlir][spirv] Add control for non-32-bit scalar type emulation

Non-32-bit scalar types require special hardware support that may not
exist on all GPUs. This is reflected in SPIR-V as that non-32-bit scalar
types require special capabilities or extensions.

Previously when there is a non-32-bit type and no native support, we
unconditionally emulate it with 32-bit ones. This isn't good given that
it can have implications over ABI and data layout consistency.

This commit introduces an option to control whether to use 32-bit
types to emulate.

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


  Commit: 1206313f82f819381055dc730294ef50b3af63c9
      https://github.com/llvm/llvm-project/commit/1206313f82f819381055dc730294ef50b3af63c9
  Author: David Sherwood <david.sherwood at arm.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    A llvm/test/CodeGen/AArch64/sve-fptrunc-store.ll

  Log Message:
  -----------
  [CodeGen][AArch64] Fix isel crash for truncating FP stores

When attempting to truncate a FP vector and store the result out
to memory we crashed because we had no pattern for truncating FP
stores. In fact, we don't support these types of stores and the
correct fix is to stop marking these truncating stores as legal.

Tests have been added here:

  CodeGen/AArch64/sve-fptrunc-store.ll

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


  Commit: 3b9a15d910a8c748b1444333a4a3905a996528bc
      https://github.com/llvm/llvm-project/commit/3b9a15d910a8c748b1444333a4a3905a996528bc
  Author: Paul C. Anagnostopoulos <paul at windfall.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/docs/TableGen/ProgRef.rst
    M llvm/include/llvm/TableGen/Record.h
    M llvm/lib/TableGen/Record.cpp
    M llvm/lib/TableGen/TGParser.cpp
    M llvm/lib/TableGen/TGParser.h
    M llvm/test/TableGen/assert.td

  Log Message:
  -----------
  [TableGen] Add support for the 'assert' statement in multiclasses


  Commit: 14580ce2fdd1898d130b20d9eb21bc4281868e7c
      https://github.com/llvm/llvm-project/commit/14580ce2fdd1898d130b20d9eb21bc4281868e7c
  Author: Paul C. Anagnostopoulos <paul at windfall.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/TableGen/Record.cpp
    M llvm/test/TableGen/ListSlices.td

  Log Message:
  -----------
  [TableGen] Make behavior of list slice suffix consistent across all values

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


  Commit: 6fccfd7cbdca0c1184cdb77f92329534ffde544c
      https://github.com/llvm/llvm-project/commit/6fccfd7cbdca0c1184cdb77f92329534ffde544c
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/InstCombine/icmp-add.ll

  Log Message:
  -----------
  [InstCombine] add icmp with no-wrap add tests; NFC

Goes with D100095


  Commit: c10cc4ea2729b687757b5932cb568ee6225f6f33
      https://github.com/llvm/llvm-project/commit/c10cc4ea2729b687757b5932cb568ee6225f6f33
  Author: Sebastian Neubauer <sebastian.neubauer at amd.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
    M llvm/test/CodeGen/AMDGPU/pei-scavenge-vgpr-spill.mir

  Log Message:
  -----------
  [AMDGPU] Fix computing live registers in prolog

ScratchExecCopy needs to be marked as live, we cannot use that register
while EXEC is stored in there.

Marking SGPRForFPSaveRestoreCopy and SGPRForBPSaveRestoreCopy as
available is unnecessary, they should not be live at that point anway.

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


  Commit: 3344cd3a14778e3a514c99c24f9dd98b9d577894
      https://github.com/llvm/llvm-project/commit/3344cd3a14778e3a514c99c24f9dd98b9d577894
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp

  Log Message:
  -----------
  [AMDGPU] SIFoldOperands: make tryFoldCndMask a member function. NFC.


  Commit: b785e03612d76145c58cb31b6fd6911a5e41e8e3
      https://github.com/llvm/llvm-project/commit/b785e03612d76145c58cb31b6fd6911a5e41e8e3
  Author: Joseph Tremoulet <jotrem at microsoft.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Support/Unix/Path.inc

  Log Message:
  -----------
  Support: mapped_file_region:  Pass MAP_NORESERVE to mmap

This allows mapping larger files, delaying OOM failures until too many
pages of them are accessed.  This is makes the behavior of the
mapped_file_region in this regard consistent between its "Unix" and
"Windows" implementations.

Guard the code witih #if defined(MAP_NORESERVE), consistent with other
uses of MAP_NORESERVE in llvm-project, because some FreeBSD versions do
not provide this flag.

Reviewed By: clayborg

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


  Commit: 9f0d8bac144c8eb1ca4aff823b2e2d5a0f990072
      https://github.com/llvm/llvm-project/commit/9f0d8bac144c8eb1ca4aff823b2e2d5a0f990072
  Author: Valeriy Savchenko <vsavchenko at apple.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp
    M clang/test/Analysis/dead-stores.c

  Log Message:
  -----------
  [analyzer] Fix dead store checker false positive

It is common to zero-initialize not only scalar variables,
but also structs.  This is also defensive programming and
we shouldn't complain about that.

rdar://34122265

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


  Commit: e4de3cdf3d66590ac7ac3eb468c3027aaa11a71b
      https://github.com/llvm/llvm-project/commit/e4de3cdf3d66590ac7ac3eb468c3027aaa11a71b
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

  Log Message:
  -----------
  [LV] Pass VPWidenPHIRecipe to widenPHIInstruction (NFC).

Instead of passing the start value and the defined value to
widenPHIInstruction, pass the VPWidenPHIRecipe directly, which can be
used to get both (and more in future patches).


  Commit: c28f79a0e3352a972026f6dc896d13f81835b468
      https://github.com/llvm/llvm-project/commit/c28f79a0e3352a972026f6dc896d13f81835b468
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
    M llvm/test/CodeGen/AMDGPU/fold-cndmask-wave32.mir

  Log Message:
  -----------
  [AMDGPU] SIFoldOperands: try harder to fold cndmask instructions

Look through copies to find more cases where the two values being
selected are identical. The motivation for this is just to be able to
remove the weird special case where tryFoldCndMask was called from
foldInstOperand, part way through folding a move-immediate into its
users, without regressing any lit tests.


  Commit: 2724b57ecdbba92435f258d0ec610780f6d60d84
      https://github.com/llvm/llvm-project/commit/2724b57ecdbba92435f258d0ec610780f6d60d84
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp

  Log Message:
  -----------
  [AMDGPU] SIFoldOperands: remove an unneeded make_early_inc_range. NFC.


  Commit: a250e91d1034a53562c86451642327bb5cbc4c0b
      https://github.com/llvm/llvm-project/commit/a250e91d1034a53562c86451642327bb5cbc4c0b
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp

  Log Message:
  -----------
  [AMDGPU] SIFoldOperands: make use of emplace_back. NFC.


  Commit: 9229465bad8504190bdfb92be829cb6c1157fea5
      https://github.com/llvm/llvm-project/commit/9229465bad8504190bdfb92be829cb6c1157fea5
  Author: serge-sans-paille <sguelton at redhat.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M clang/lib/Basic/SourceManager.cpp

  Log Message:
  -----------
  [NFC] Fix warning introduced in 20105b6b4874a85813f7a4a3d8ad2a0f023dda14


  Commit: 1e511bb1be718657a5584ccb792723d9ddac481f
      https://github.com/llvm/llvm-project/commit/1e511bb1be718657a5584ccb792723d9ddac481f
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M lldb/test/API/tools/lldb-vscode/launch/TestVSCode_launch.py

  Log Message:
  -----------
  [lldb] Re-skip TestVSCode_launch

The test is flaky (sleeps didn't help).


  Commit: 2ecf928153fc56dcb6bb0bd910584eac86bc23bd
      https://github.com/llvm/llvm-project/commit/2ecf928153fc56dcb6bb0bd910584eac86bc23bd
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
    M lldb/unittests/SymbolFile/DWARF/DWARFUnitTest.cpp

  Log Message:
  -----------
  [lldb/DWARF] Fix a crash parsing invalid dwarf (pr49678)

If the debug info is missing the terminating null die, we would crash
when trying to access the nonexisting children/siblings. This was
discovered because the test case for D98619 accidentaly produced such
input.


  Commit: 466fab5c9410abb79f1a70c5075147e9a768124e
      https://github.com/llvm/llvm-project/commit/466fab5c9410abb79f1a70c5075147e9a768124e
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M compiler-rt/test/lsan/TestCases/malloc_zero.c
    M compiler-rt/test/lsan/TestCases/realloc_too_big.c

  Log Message:
  -----------
  [lsan] Mark 2 new lsan tests unsupported on arm-linux

These tests were added in:
1daa48f005bd477ba8711ecdf91a1f1515f01383
59e422c90bf4796fc73237e838d8954b4e2099b1

malloc_zero.c and realloc_too_big.c fail when only
leak sanitizer is enabled.
http://lab.llvm.org:8011/#/builders/59/builds/1635
(also in an armv8 32 bit build)

(I would XFAIL them but the same test is run with
address and leak sanitizer enabled and that one does
pass)


  Commit: 2cb8c10342ee5d040725abb1166feb92a64c7df6
      https://github.com/llvm/llvm-project/commit/2cb8c10342ee5d040725abb1166feb92a64c7df6
  Author: Dávid Bolvanský <david.bolvansky at gmail.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/test/CodeGen/aarch64-neon-ldst-one.c
    M clang/test/CodeGen/aarch64-neon-scalar-x-indexed-elem.c
    M clang/test/CodeGen/aarch64-poly128.c
    M clang/test/CodeGen/aarch64-poly64.c
    M clang/test/CodeGenCXX/dllexport-ctor-closure.cpp
    M clang/test/CodeGenCXX/dllexport.cpp

  Log Message:
  -----------
  Revert "Reduce the number of attributes attached to each function"

This reverts commit 053dc95839b3b8a36db46f8c419e36e632e989cd. It causes perf regressions - see discussion in D97116.


  Commit: a1a372dfb526d916edda40d85ebd0d96537b8391
      https://github.com/llvm/llvm-project/commit/a1a372dfb526d916edda40d85ebd0d96537b8391
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp

  Log Message:
  -----------
  [AMDGPU] SIFoldOperands: remove an unneeded isReg check. NFC.


  Commit: e184eeaa3ba124722684dcaece92e712f2484d9b
      https://github.com/llvm/llvm-project/commit/e184eeaa3ba124722684dcaece92e712f2484d9b
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/AMDGPU/fold-cndmask-wave32.mir
    M llvm/test/CodeGen/AMDGPU/fold-cndmask.mir
    M llvm/test/CodeGen/AMDGPU/fold-operands-order.mir
    M llvm/test/CodeGen/AMDGPU/fold-readlane.mir

  Log Message:
  -----------
  [AMDGPU] Add some implicit uses to tests. NFC.

This is just to stop a future patch from optimizing away the things that
we actually want to check for.


  Commit: e10493eb5012a2c313471489646bde9595ea06c0
      https://github.com/llvm/llvm-project/commit/e10493eb5012a2c313471489646bde9595ea06c0
  Author: Stephen Tozer <Stephen.Tozer at Sony.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    A llvm/test/CodeGen/X86/dbg-list-dependencies.ll

  Log Message:
  -----------
  [DebugInfo] Correctly track SDNode dependencies for list debug values

During SelectionDAG, we must track the SDNodes that each SDDbgValue depends on
to compute its value. These are ultimately derived from the location operands to
the SDDbgValue, but were stored in a separate vector prior to this patch. This
resulted in cases where one of the lists was updated incorrectly, resulting in
crashes during compilation. This patch fixes the issue by directly recomputing
the dependency list from the SDDbgOperands in getDependencies().

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


  Commit: 2690d4d45a63ecee224a0dce1a5fd557b140df51
      https://github.com/llvm/llvm-project/commit/2690d4d45a63ecee224a0dce1a5fd557b140df51
  Author: Arjun P <arjunpitchanathan at gmail.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M mlir/lib/Analysis/AffineStructures.cpp
    M mlir/lib/Analysis/LinearTransform.cpp
    M mlir/unittests/Analysis/AffineStructuresTest.cpp

  Log Message:
  -----------
  [MLIR] Support symbols in emptiness checks for FlatAffineConstraints

Reviewed By: ftynse

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


  Commit: 050a7a27ca844a912e46cdfeed7a472847ad0bc9
      https://github.com/llvm/llvm-project/commit/050a7a27ca844a912e46cdfeed7a472847ad0bc9
  Author: Jez Ng <jezng at fb.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M lld/MachO/Config.h
    M lld/MachO/Driver.cpp
    M lld/MachO/LTO.cpp
    M lld/MachO/Options.td
    A lld/test/MachO/thinlto-jobs.ll

  Log Message:
  -----------
  [lld-macho] Support --thinlto-jobs

The test is loosely based off LLD-ELF's `thinlto.ll`. However, I
found that test questionable because the the -save_temps behavior it
checks for is identical regardless of whether we are running in single-
or multi-threaded mode. I tried writing a test based on `--time-trace`
but couldn't get it to run deterministically... so I've opted to just
skip checking that behavior for now.

Reviewed By: #lld-macho, gkm

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


  Commit: 3f6753efe1990a928ed120bd907940a9fb3e2fc3
      https://github.com/llvm/llvm-project/commit/3f6753efe1990a928ed120bd907940a9fb3e2fc3
  Author: Jez Ng <jezng at fb.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M lld/test/MachO/abs-symbols.s

  Log Message:
  -----------
  [lld-macho][nfc] Extend abs-symbol.s to test for local absolute symbols

Addresses an old TODO.

Reviewed By: #lld-macho, oontvoo

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


  Commit: f08a2fc09e7547c2cfeccc13f5968aada98fb4b7
      https://github.com/llvm/llvm-project/commit/f08a2fc09e7547c2cfeccc13f5968aada98fb4b7
  Author: Andrew Savonichev <andrew.savonichev at gmail.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-0-single-add.s
    A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-1-add-seq.s
    A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-10-fma.s
    A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-11-fma-mix.s
    A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-2-skewed-alu.s
    A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-3-mul.s
    A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-4-sdiv.s
    A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-5-mul-sdiv.s
    A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-6-mul.s
    A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-7-cmp.s
    A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-8-ldr.s
    A llvm/test/tools/llvm-mca/AArch64/Cortex/IPC/A55-9-fabs.s

  Log Message:
  -----------
  [MCA] Add tests for IPC on Cortex-A55

The tests compare IPC statistics that MCA provides with IPC values
measured on Cortex-A55 hardware. For hardware tests, each snippet is
run in a loop unrolled by 1000, and IPC is measured by linux-perf.

Several tests do not match the hardware: the skewed ALU is not
supported, LDR seem to be missing a forwarding path.

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


  Commit: bcb8ef2d5a8ba4cea44bb39a856ba3ef88c8c2f7
      https://github.com/llvm/llvm-project/commit/bcb8ef2d5a8ba4cea44bb39a856ba3ef88c8c2f7
  Author: Yuanfang Chen <yuanfang.chen at sony.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/utils/abtest.py

  Log Message:
  -----------
  abtest.py: support bisection based on a response file

Also makes LINK_TEST customizable from commandline with `--test` option.


  Commit: a345419ee03095c8cdfbe1c2728467c4da8fa0a4
      https://github.com/llvm/llvm-project/commit/a345419ee03095c8cdfbe1c2728467c4da8fa0a4
  Author: Michał Górny <mgorny at moritz.systems>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    A lldb/include/lldb/Host/linux/Host.h
    M lldb/source/Host/linux/Host.cpp
    M lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp
    M lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.h
    M lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD.h
    M lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.cpp
    M lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_arm64.h
    M lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_x86_64.cpp
    M lldb/source/Plugins/Process/FreeBSD/NativeRegisterContextFreeBSD_x86_64.h
    M lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
    M lldb/source/Plugins/Process/Linux/NativeProcessLinux.h
    M lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp
    M lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h
    M lldb/test/API/functionalities/gdb_remote_client/TestMultiprocess.py
    A lldb/test/Shell/Subprocess/Inputs/fork.cpp
    A lldb/test/Shell/Subprocess/clone-follow-parent-wp.test
    A lldb/test/Shell/Subprocess/clone-follow-parent.test
    A lldb/test/Shell/Subprocess/fork-follow-parent-wp.test
    A lldb/test/Shell/Subprocess/fork-follow-parent.test
    A lldb/test/Shell/Subprocess/vfork-follow-parent-wp.test
    A lldb/test/Shell/Subprocess/vfork-follow-parent.test

  Log Message:
  -----------
  [lldb] [Process] Watch for fork/vfork notifications

Watch for fork(2)/vfork(2) (also fork/vfork-style clone(2) on Linux)
notifications and explicitly detach the forked child process, and add
initial tests for these cases.  The code covers FreeBSD, Linux
and NetBSD process plugins.  There is no new user-visible functionality
provided -- this change lays foundations over subsequent work on fork
support.

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


  Commit: 1b589172bd19b83e8137185ed11f50bba06e8766
      https://github.com/llvm/llvm-project/commit/1b589172bd19b83e8137185ed11f50bba06e8766
  Author: Stephen Tozer <Stephen.Tozer at Sony.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
    R llvm/test/CodeGen/X86/dbg-list-dependencies.ll

  Log Message:
  -----------
  Revert "[DebugInfo] Correctly track SDNode dependencies for list debug values"

Reverted due to failure on the sanitizer-x86_64-linux-fast bot.

This reverts commit e10493eb5012a2c313471489646bde9595ea06c0.


  Commit: 4b958dd6bccab386be432cac99332b867ab9ee22
      https://github.com/llvm/llvm-project/commit/4b958dd6bccab386be432cac99332b867ab9ee22
  Author: Valeriy Savchenko <vsavchenko at apple.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M clang/lib/StaticAnalyzer/Core/SValBuilder.cpp
    A clang/test/Analysis/PR47511.cpp

  Log Message:
  -----------
  [analyzer] Fix crash on spaceship operator (PR47511)

rdar://68954187

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


  Commit: 663ac91ed1d6156e848e5f5f00cd7e7dd6cf867f
      https://github.com/llvm/llvm-project/commit/663ac91ed1d6156e848e5f5f00cd7e7dd6cf867f
  Author: Valeriy Savchenko <vsavchenko at apple.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M clang/lib/StaticAnalyzer/Checkers/InnerPointerChecker.cpp
    M clang/test/Analysis/inner-pointer.cpp

  Log Message:
  -----------
  [analyzer] Fix false positives in inner pointer checker (PR49628)

This patch supports std::data and std::addressof functions.

rdar://73463300

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


  Commit: 151752ab2082b9b4c2f1c33f2de01120060532c6
      https://github.com/llvm/llvm-project/commit/151752ab2082b9b4c2f1c33f2de01120060532c6
  Author: Lei Zhang <antiagainst at google.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M mlir/test/Dialect/Linalg/tile-and-fuse-tensors.mlir

  Log Message:
  -----------
  [mlir][linalg] Fix loop upper bounds in conv fusion test

Reviewed By: mravishankar

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


  Commit: b68545acf9771b6b205647b8028d9e042ede8838
      https://github.com/llvm/llvm-project/commit/b68545acf9771b6b205647b8028d9e042ede8838
  Author: Sushma Unnibhavi <sushmaunnibhavi425 at gmail.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M lldb/docs/use/tutorial.rst

  Log Message:
  -----------
  [lldb] Improve the documentation (#42017)

Added punctuation and changed "So for instance" to "For instance".

Fixes https://llvm.org/PR42017

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


  Commit: 3f919ff25013d417ea050019154d28b2d7492f6b
      https://github.com/llvm/llvm-project/commit/3f919ff25013d417ea050019154d28b2d7492f6b
  Author: Paul C. Anagnostopoulos <paul at windfall.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/docs/TableGen/ProgRef.rst
    M llvm/include/llvm/TableGen/Record.h
    M llvm/lib/TableGen/Record.cpp
    M llvm/lib/TableGen/TGParser.cpp
    M llvm/lib/TableGen/TGParser.h
    M llvm/test/TableGen/assert.td

  Log Message:
  -----------
  Revert "[TableGen] Add support for the 'assert' statement in multiclasses"

This reverts commit 3b9a15d910a8c748b1444333a4a3905a996528bc.


  Commit: d01bff8cbdc98fb8751f7bf10af19b47ae5c445d
      https://github.com/llvm/llvm-project/commit/d01bff8cbdc98fb8751f7bf10af19b47ae5c445d
  Author: Michał Górny <mgorny at moritz.systems>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M lldb/test/Shell/Subprocess/clone-follow-parent-wp.test
    M lldb/test/Shell/Subprocess/clone-follow-parent.test

  Log Message:
  -----------
  [lldb] [test] Skip clone() tests on Linux/aarch64


  Commit: c23b92acd0654bd63942fd70d39c7955354ba3f6
      https://github.com/llvm/llvm-project/commit/c23b92acd0654bd63942fd70d39c7955354ba3f6
  Author: Jez Ng <jezng at fb.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M lld/MachO/Config.h
    M lld/MachO/Driver.cpp
    M lld/MachO/Options.td
    M lld/MachO/SyntheticSections.cpp
    A lld/test/MachO/add-ast-path.s

  Log Message:
  -----------
  [lld-macho] Support -add_ast_path

Swift builds seem to use it. All it requires is emitting the
corresponding paths as STABS.

Fixes llvm.org/PR49385.

Reviewed By: clayborg

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


  Commit: c2e76a9a6dcc09434d47ba9217fa02d997c2401d
      https://github.com/llvm/llvm-project/commit/c2e76a9a6dcc09434d47ba9217fa02d997c2401d
  Author: Jez Ng <jezng at fb.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M lld/MachO/Driver.cpp

  Log Message:
  -----------
  [lld-macho][nfc] Use varargs form of hasArg()


  Commit: 5f0ac1ef78880f233dea2070ab55894c6bd2690c
      https://github.com/llvm/llvm-project/commit/5f0ac1ef78880f233dea2070ab55894c6bd2690c
  Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Analysis/CallGraph.cpp
    R llvm/test/Analysis/CallGraph/ignore-llvm-used.ll
    A llvm/test/Analysis/CallGraph/llvm-used.ll

  Log Message:
  -----------
  Set IgnoreLLVMUsed to false in CallGraph::addToCallGraph()

clang++ uses llvm.compiler.used in certain cases to preserve
symbol which is fully inlined. D96087 has resulted in undefined
symbols in such cases. Set it to false by default to preserve
old behavior but keep the option for specific uses where we
want to ignore these (e.g. to detect a potential indirect call
to a function).

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


  Commit: 02ef9963e1ad1e6ded539c830861a074b879dc70
      https://github.com/llvm/llvm-project/commit/02ef9963e1ad1e6ded539c830861a074b879dc70
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/BuiltinsRISCV.def
    M clang/lib/Basic/Targets/RISCV.cpp
    M clang/lib/Basic/Targets/RISCV.h
    M clang/lib/Sema/SemaChecking.cpp
    A clang/test/CodeGen/RISCV/rvb-intrinsics/riscv32-zbb-error.c

  Log Message:
  -----------
  [RISCV] Prevent __builtin_riscv_orc_b_64 from being compiled RV32 target.

The backend can't handle this and will throw a fatal error from
type legalization. It's easy enough to fix that for this intrinsic
by just splitting the IR intrinsic since it works on individual bytes.

There will be other intrinsics in the future that would be harder
to support through splitting, for example grev, gorc, and shfl. Those
would require a compare and a select be inserted to check the MSB of
their control input.

This patch adds support for preventing this in the frontend with
a nice diagnostic.

Reviewed By: frasercrmck

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


  Commit: c52dbdbc33b998e43edbc21b6c150bda5f5516a2
      https://github.com/llvm/llvm-project/commit/c52dbdbc33b998e43edbc21b6c150bda5f5516a2
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/InstCombine/minmax-intrinsics.ll

  Log Message:
  -----------
  [InstCombine] add tests for min/max with negated operand; NFC


  Commit: 5094e1279eb2e168bf6818b368bf6ff4835de2bc
      https://github.com/llvm/llvm-project/commit/5094e1279eb2e168bf6818b368bf6ff4835de2bc
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/test/Transforms/InstCombine/minmax-intrinsics.ll

  Log Message:
  -----------
  [InstCombine] fold min/max intrinsic with negated operand to abs

The smax case shows up in https://llvm.org/PR49885 .
The others seem unlikely, but we might as well try
for uniformity (although that could mean an extra
instruction to create "nabs").

smax -- https://alive2.llvm.org/ce/z/8yYaGy
smin -- https://alive2.llvm.org/ce/z/0_7zc_
umax -- https://alive2.llvm.org/ce/z/EcsZWs
umin -- https://alive2.llvm.org/ce/z/Xw6WvB


  Commit: 461b554999811ca76cb252a0ed8e14f0b8b86e1a
      https://github.com/llvm/llvm-project/commit/461b554999811ca76cb252a0ed8e14f0b8b86e1a
  Author: Levy Hsu <admin at levyhsu.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoB.td
    M llvm/test/MC/RISCV/rv32b-aliases-valid.s
    M llvm/test/MC/RISCV/rv64b-aliases-valid.s

  Log Message:
  -----------
  [RISCV] Add InstAlias for Zbb Zbp and Zbs extension

Add InstAlias that allows the last operand to be an imm for following instructions:

1. Zbb or Zbp:
    - ror
    - rorw (RV64 Only)

2. Zbs
    - best
    - bclr
    - binv
    - bext

Reviewed By: craig.topper, jrtc27

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


  Commit: ce2db9005d701ffbd786f395ff8065ca9fdadea9
      https://github.com/llvm/llvm-project/commit/ce2db9005d701ffbd786f395ff8065ca9fdadea9
  Author: Congzhe Cao <congzhe.cao at huawei.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
    M llvm/test/Transforms/LoopInterchange/lcssa-preheader.ll
    A llvm/test/Transforms/LoopInterchange/outer-header-jump-to-inner-latch.ll

  Log Message:
  -----------
  [LoopInterchange] Fix transformation bugs in loop interchange

After loop interchange, the (old) outer loop header should not jump to
the `LoopExit`. Note that the old outer loop becomes the new inner loop
after interchange. If we branched to `LoopExit` then after interchange
we would jump directly from the (new) inner loop header to `LoopExit`
without executing the rest of outer loop.

This patch modifies adjustLoopBranches() such that the old outer
loop header (which becomes the new inner loop header) jumps to the
old inner loop latch which becomes the new outer loop latch after
interchange.

Reviewed By: bmahjour

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


  Commit: 04e9cd09c888fdb14a40289808859c63985a476b
      https://github.com/llvm/llvm-project/commit/04e9cd09c888fdb14a40289808859c63985a476b
  Author: Wouter van Oortmerssen <aardappel at gmail.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td
    M llvm/test/CodeGen/WebAssembly/load-store-pic.ll

  Log Message:
  -----------
  [WebAssembly] Fix for PIC external symbol ISEL

wasm64 was missing DAG ISEL patterns for external symbol based global.get, but simply adding these analogous to the existing 32-bit versions doesn't work.
This is because we are conflating the 32-bit global index with the pointer represented by the external symbol, which for wasm32 happened to work.
The simplest fix is to pretend we have a 64-bit global index. This sounds incorrect, but is immaterial since once this index is stored as a MachineOperand it becomes 64-bit anyway (and has been all along). As such, the EmitInstrWithCustomInserter based implementation I experimented with become a no-op and no further changes in the C++ code are required.

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


  Commit: c3614358452e5050b5b191fd3df3fad8b2664221
      https://github.com/llvm/llvm-project/commit/c3614358452e5050b5b191fd3df3fad8b2664221
  Author: Hanhan Wang <hanchung at google.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/SPIRV/Transforms/SPIRVConversion.h
    M mlir/lib/Conversion/StandardToSPIRV/StandardToSPIRV.cpp
    M mlir/lib/Dialect/SPIRV/Transforms/SPIRVConversion.cpp
    M mlir/test/Conversion/StandardToSPIRV/std-ops-to-spirv.mlir
    M mlir/test/Conversion/StandardToSPIRV/std-types-to-spirv.mlir

  Log Message:
  -----------
  [mlir][StandardToSPIRV] Handle i1 case for lowering memref.load/store op

This patch unconditionally converts i1 types to i8 types on memrefs. If the
extensions or capabilities are not met, they will be converted to i32. Hence the
logic in IntLoadPattern and IntStorePattern are also updated.

Also added the implementation of SPIRVTypeConverter::getOptions().

Reviewed By: antiagainst

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


  Commit: 3a4c0354b6eb5484b9b0cff6f6a7df982b49414e
      https://github.com/llvm/llvm-project/commit/3a4c0354b6eb5484b9b0cff6f6a7df982b49414e
  Author: Arnamoy Bhattacharyya <arnamoy.bhattacharyya at huawei.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/lib/Semantics/check-omp-structure.h
    M flang/test/Semantics/omp-do05.f90
    M flang/test/Semantics/omp-nested01.f90
    M flang/test/Semantics/omp-reduction07.f90

  Log Message:
  -----------
  [flang][OpenMP] Add functionality to check "close nesting" of regions, which can be used for Semantic checks.  Also adding more test cases.

Reviewed By: kiranchandramohan

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


  Commit: d5085617986e8ceabe7af02eb9c50f5350b3f980
      https://github.com/llvm/llvm-project/commit/d5085617986e8ceabe7af02eb9c50f5350b3f980
  Author: Xiangling Liao <Xiangling.Liao at ibm.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M clang/lib/CodeGen/CGDeclCXX.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    M clang/lib/CodeGen/CodeGenModule.h
    M clang/lib/CodeGen/ItaniumCXXABI.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    M clang/test/CodeGen/aix-init-priority-attribute.cpp

  Log Message:
  -----------
  [AIX] Support init priority attribute

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


  Commit: 189310a140fa1c33f8f4838560f567bab9e99245
      https://github.com/llvm/llvm-project/commit/189310a140fa1c33f8f4838560f567bab9e99245
  Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M clang/docs/ClangCommandLineReference.rst
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/test/CodeGen/AMDGPU/fp64-atomics-gfx90a.ll
    M llvm/test/CodeGen/AMDGPU/global-atomics-fp.ll

  Log Message:
  -----------
  [AMDGPU] Allow -amdgpu-unsafe-fp-atomics to ignore denorm mode

Fixes: SWDEV-274276

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


  Commit: 59a2f67011ba84a0a72fc97af1ee2bebb2832c16
      https://github.com/llvm/llvm-project/commit/59a2f67011ba84a0a72fc97af1ee2bebb2832c16
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LoopRotation.cpp
    M llvm/test/CodeGen/AMDGPU/opt-pipeline.ll
    M llvm/test/Other/opt-O2-pipeline.ll
    M llvm/test/Other/opt-O3-pipeline-enable-matrix.ll
    M llvm/test/Other/opt-O3-pipeline.ll
    M llvm/test/Other/opt-Os-pipeline.ll
    M llvm/test/Other/pass-pipelines.ll

  Log Message:
  -----------
  [LoopRotate] Don't split loop pass manager

After D99249 we use three different loop pass managers for LICM,
LoopRotate and LICM+LoopUnswitch. This happens because LazyBFI
and LazyBPI are not preserved by LoopRotate (note that D74640
is no longer needed). Avoid this by marking them as preserved.

My understanding of D86156 is that it is okay to simply preserve
them (which LoopUnswitch already does for the same reason) and
rely on callbacks to deal with deleted blocks.

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


  Commit: dd453a1389b6a7e6d9214b449d3c54981b1a89b6
      https://github.com/llvm/llvm-project/commit/dd453a1389b6a7e6d9214b449d3c54981b1a89b6
  Author: Jason Molenda <jason at molenda.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M lldb/include/lldb/Target/Process.h
    M lldb/source/Target/LanguageRuntime.cpp
    M lldb/source/Target/Process.cpp
    M lldb/source/Target/TargetProperties.td

  Log Message:
  -----------
  Add setting to disable LanguageRuntime UnwindPlans

When debugging LanguageRuntime unwindplans, it can be
helpful to disable their use and see the normal
stack walk.  Add a setting for this.

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


  Commit: 627dab3dbfc9f0c38363c5c2b6d8ce1b22395ae5
      https://github.com/llvm/llvm-project/commit/627dab3dbfc9f0c38363c5c2b6d8ce1b22395ae5
  Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/GCNRegBankReassign.cpp
    M llvm/test/CodeGen/AMDGPU/regbank-reassign.mir

  Log Message:
  -----------
  [AMDGPU] Check for all meta instrs in GCNRegBankReassign

It used to work correctly even with a KILL, but there is
no reason to consider meta instructions since they do not
create real HW uses.

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


  Commit: 4fae63c612a7b6c4a777224f53edddb9c9c0b810
      https://github.com/llvm/llvm-project/commit/4fae63c612a7b6c4a777224f53edddb9c9c0b810
  Author: Konstantin Zhuravlyov <kzhuravl_dev at outlook.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/docs/AMDGPUUsage.rst
    M llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
    A llvm/test/CodeGen/AMDGPU/tid-code-object-v2-backwards-compatibility.ll

  Log Message:
  -----------
  AMDGPU: Add gfx90c support to code object v2 for backwards compatibility

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


  Commit: 5ca168b0321136930fc4f1b6ba858996963a24c2
      https://github.com/llvm/llvm-project/commit/5ca168b0321136930fc4f1b6ba858996963a24c2
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/unittests/FileCheck/FileCheckTest.cpp

  Log Message:
  -----------
  [FileCheck, test] Rename checkWildcardRegexCharMatchFailure

Proposed edit https://reviews.llvm.org/D97845#inline-922769 in D97845
suggests the checkWildcardRegexCharMatchFailure function name is
misleading because it is not clear it checks for a match failure on each
character in the string parameter. This commit renames it to an
hopefully clearer name.

Reviewed By: jdenny

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


  Commit: f66e05a720f74409790bdede308380909f2ecd86
      https://github.com/llvm/llvm-project/commit/f66e05a720f74409790bdede308380909f2ecd86
  Author: Dan Liew <dliew at apple.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M clang/cmake/caches/Apple-stage2.cmake

  Log Message:
  -----------
  Include `count` in AppleClang toolchains.

The motivation here is so we can run the compiler-rt tests
from a standalone build against AppleClang.

In particular the `Posix/halt_on_error-torture.cpp` and
`Posix/halt_on_error_suppress_equal_pcs.cpp` ASan test cases currently
require this binary for the tests to pass.

rdar://76366784

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


  Commit: c5d1ccbcdfb11c29c89a2789ac1e89cf4b270be7
      https://github.com/llvm/llvm-project/commit/c5d1ccbcdfb11c29c89a2789ac1e89cf4b270be7
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/InstructionPrecedenceTracking.h
    M llvm/lib/Analysis/InstructionPrecedenceTracking.cpp
    M llvm/lib/Transforms/Scalar/GVN.cpp
    A llvm/test/Transforms/GVN/simplify-icf-cache-invalidation.ll

  Log Message:
  -----------
  [GVN] Properly invalidate ICF cache when we simplify a value

This fixes a "Cached first special instruction is wrong!" assert.

The assert fires because replacing a value with another can cause an
instruction to no longer be "special" to ICF. In this case,
devirtualization happened, turning an indirect call to a
call to a willreturn function which is no longer special.

Reviewed By: nikic, rnk

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


  Commit: 35393c865c2cb1afbf1315a9d48ac41994cd1344
      https://github.com/llvm/llvm-project/commit/35393c865c2cb1afbf1315a9d48ac41994cd1344
  Author: Philip Reames <listmail at philipreames.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
    M llvm/test/Analysis/TypeBasedAliasAnalysis/functionattrs.ll
    M llvm/test/CodeGen/AMDGPU/inline-attr.ll
    M llvm/test/Transforms/FunctionAttrs/nofree.ll
    M llvm/test/Transforms/FunctionAttrs/nosync.ll
    M llvm/test/Transforms/FunctionAttrs/operand-bundles-scc.ll
    M llvm/test/Transforms/FunctionAttrs/read-write-scc.ll
    M llvm/test/Transforms/InferFunctionAttrs/norecurse_debug.ll

  Log Message:
  -----------
  [funcattrs] Infer nosync from instruction walk

Pretty straightforward use of existing infrastructure and port of the attributor inference rules for nosync.

A couple points of interest:
* I deliberately switched from "monotonic or better" to "unordered or better". This is simply me being conservative and is better in line with the rest of the optimizer. We treat monotonic conservatively pretty much everywhere.
* The operand bundle test change is suspicious. It looks like we might have missed something here, but if so, it's an issue with the existing nofree inference as well. I'm going to take a closer look at that separately.
* I needed to keep the previous inference from readnone. This surprised me, but made sense once I realized readonly inference goes to lengths to reason about local vs non-local memory and that writes to local memory are okay. This is fine for the purpose of nosync, but would e.g. prevent us from inferring nofree from readnone - which is slightly surprising.

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


  Commit: ab124bbe2a7c59cf23da5728dc239aba6f1efabe
      https://github.com/llvm/llvm-project/commit/ab124bbe2a7c59cf23da5728dc239aba6f1efabe
  Author: Alexey Bataev <a.bataev at outlook.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    A llvm/test/Transforms/SLPVectorizer/X86/several_store_chains.ll

  Log Message:
  -----------
  [SLP]Fix PR49898: Infinite loop in SLP vectorizer.

We should not re-try attempt of finding of the consecutive store chain
if it was tried before.

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


  Commit: e761b6b4c58d4f7ae1073d925d7cb321d68ee93a
      https://github.com/llvm/llvm-project/commit/e761b6b4c58d4f7ae1073d925d7cb321d68ee93a
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M lldb/test/Shell/Subprocess/vfork-follow-parent-wp.test

  Log Message:
  -----------
  [lldb] (Temporarily) disable vfork-follow-parent-wp.test on Darwin

The test is failing on GreenDragon. Pinged Michał in D98822.


  Commit: ac347a8a0fb40d351789209aba834e4e70b3614f
      https://github.com/llvm/llvm-project/commit/ac347a8a0fb40d351789209aba834e4e70b3614f
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td

  Log Message:
  -----------
  [RISCV] Remove empty string after 'defm' at top level of vector .td files. NFC

This doesn't do anything so it's just wasted characters. I have
other plans for the ones in multiclasses.


  Commit: 872931e5d8572aadd3827c6e746ff2043f083d2e
      https://github.com/llvm/llvm-project/commit/872931e5d8572aadd3827c6e746ff2043f083d2e
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td

  Log Message:
  -----------
  [RISCV] Use multiclass inheritance where possible for the VPat* multiclasses in RISVInstrInfoVPseudos. NFCI

Instead of instantiating multiclasses inside multiclasses, just
inherit from them.

We can do the same for the VPseudo* multiclasses, but that may
interfere with the scheduler class work.


  Commit: a7b51d8a4fc86459733d1e390e51236877ba02f4
      https://github.com/llvm/llvm-project/commit/a7b51d8a4fc86459733d1e390e51236877ba02f4
  Author: Leonard Chan <leonardchan at google.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M compiler-rt/lib/hwasan/hwasan_new_delete.cpp

  Log Message:
  -----------
  [compiler-rt][hwasan] Add C++17 new/delete operators with alignment

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


  Commit: 2f181086b5cbbe83c4492aa44484a77ed06ec812
      https://github.com/llvm/llvm-project/commit/2f181086b5cbbe83c4492aa44484a77ed06ec812
  Author: Nikita Kniazev <kniazev.nikita at gmail.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M clang/docs/LibASTMatchersReference.html
    M clang/include/clang/ASTMatchers/ASTMatchers.h
    M clang/lib/ASTMatchers/ASTMatchersInternal.cpp
    M clang/lib/ASTMatchers/Dynamic/Registry.cpp
    M clang/unittests/ASTMatchers/ASTMatchersNarrowingTest.cpp
    M clang/unittests/ASTMatchers/ASTMatchersTraversalTest.cpp
    M clang/unittests/ASTMatchers/Dynamic/RegistryTest.cpp

  Log Message:
  -----------
  [ASTMatchers] Add `cxxBaseSpecifier` matcher (non-top-level)

Required for capturing base specifier in matchers:
  `cxxRecordDecl(hasDirectBase(cxxBaseSpecifier().bind("base")))`

Reviewed By: steveire, aaron.ballman

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


  Commit: 38b106f6815716db4757a813d28ba4649d083c14
      https://github.com/llvm/llvm-project/commit/38b106f6815716db4757a813d28ba4649d083c14
  Author: Mehdi Amini <joker.eph at gmail.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M mlir/lib/Target/LLVMIR/ModuleTranslation.cpp

  Log Message:
  -----------
  Improve error message when tring to export to LLVM IR with a dialect missing the interface

Dialects can be translated to LLVM IR when they have the
LLVMTranslationDialectInterface interface registered. In case the
interface isn't explicitly registered, even the LLVM dialect can't be
exported to LLVM IR. This make the error message more explicit on this.

Reviewed By: ftynse

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


  Commit: 429088b9e214b2f39f6063a6b3639560fc7db47b
      https://github.com/llvm/llvm-project/commit/429088b9e214b2f39f6063a6b3639560fc7db47b
  Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Support/FileSystem.h
    M llvm/lib/Support/FileOutputBuffer.cpp
    M llvm/unittests/Support/Path.cpp

  Log Message:
  -----------
  Support: Extract fs::resize_file_before_mapping_readwrite from FileOutputBuffer

Add a variant of `fs::resize_file` for use immediately before opening a
file with `mapped_file_region::readwrite`. On Windows, `_chsize`
(`ftruncate`) is slow, but `CreateFileMapping` (`mmap`) automatically
extends the file so the call to `fs::resize_file` can be skipped.

This optimization was added to `FileOutputBuffer` in
da9bc2e56d5a5c6332a9def1a0065eb399182b93; this commit just extracts the
logic out and adds a unit test.

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


  Commit: 022ccedde8877e877b45e49641544b5e4fff0b42
      https://github.com/llvm/llvm-project/commit/022ccedde8877e877b45e49641544b5e4fff0b42
  Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Support/Signposts.h
    M llvm/lib/Support/Signposts.cpp

  Log Message:
  -----------
  Support: Use std::unique_ptr for SignpostEmitter::Impl, NFC

Replace some manual memory management with std::unique_ptr.

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


  Commit: bf12b711f9ec322fd7fabb6919d975665df32b29
      https://github.com/llvm/llvm-project/commit/bf12b711f9ec322fd7fabb6919d975665df32b29
  Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Support/Signposts.cpp

  Log Message:
  -----------
  Support: Drop the no-op initializer for SignpostEmitterImpl::Signposts, NFC

This is a DenseMap, which has its own initializer; we don't need to explicitly
call the default constructor here.

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


  Commit: 9be43874343b0aa2221497830d0356eb4b7eecfa
      https://github.com/llvm/llvm-project/commit/9be43874343b0aa2221497830d0356eb4b7eecfa
  Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Support/Signposts.cpp

  Log Message:
  -----------
  Support: Avoid unnecessary std::function for SignpostEmitterImpl::SignpostLog

The destructor for SignPostEmitterImpl::SignpostLog is known statically. Avoid
the unnecessary vtable indirection through std::function in the std::unique_ptr
by turning LogDeleter into a struct. No real functionality change here.

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


  Commit: 078072285d3fbdaa94f9a91140eb5c1223b548af
      https://github.com/llvm/llvm-project/commit/078072285d3fbdaa94f9a91140eb5c1223b548af
  Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Support/Signposts.h
    M llvm/lib/Support/Signposts.cpp

  Log Message:
  -----------
  Revert "Support: Use std::unique_ptr for SignpostEmitter::Impl, NFC"

This reverts commit 022ccedde8877e877b45e49641544b5e4fff0b42. Looks like
some hosts need a definition of SignpostEmitterImpl to put it in a
unique_ptr:
https://lab.llvm.org/buildbot/#/builders/92/builds/7733


  Commit: e7ed5c920db3f537a85d962c1c918a1bb6de99fd
      https://github.com/llvm/llvm-project/commit/e7ed5c920db3f537a85d962c1c918a1bb6de99fd
  Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Support/Signposts.h
    M llvm/lib/Support/Signposts.cpp

  Log Message:
  -----------
  Revert "Revert "Support: Use std::unique_ptr for SignpostEmitter::Impl, NFC""

This reverts commit 078072285d3fbdaa94f9a91140eb5c1223b548af, reapplying
022ccedde8877e877b45e49641544b5e4fff0b42.

I figured out why this was failing in other environments: it's not a
problem with std::unique_ptr, but that SignpostEmitterImpl only has a
forward declaration. Adding an empty definition should do the trick.

Original commit message:

    Replace some manual memory management with std::unique_ptr.

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


  Commit: e35afbe535f96086141f57a5ce7d679429b4405f
      https://github.com/llvm/llvm-project/commit/e35afbe535f96086141f57a5ce7d679429b4405f
  Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Support/Signposts.h
    M llvm/lib/Support/Signposts.cpp

  Log Message:
  -----------
  Revert "Revert "Revert "Support: Use std::unique_ptr for SignpostEmitter::Impl, NFC"""

This reverts commit e7ed5c920db3f537a85d962c1c918a1bb6de99fd again, due
to more buildbot failures:
https://lab.llvm.org/buildbot/#/builders/131/builds/8191


  Commit: 6dc432510f29bc7e4cf7b0dfbffdd19443295cc8
      https://github.com/llvm/llvm-project/commit/6dc432510f29bc7e4cf7b0dfbffdd19443295cc8
  Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Support/Signposts.h
    M llvm/lib/Support/Signposts.cpp

  Log Message:
  -----------
  Support: Use std::unique_ptr for SignpostEmitter::Impl, NFC, 3rd attempt

This reverts commit e35afbe535f96086141f57a5ce7d679429b4405f, reapplying
022ccedde8877e877b45e49641544b5e4fff0b42 and
e7ed5c920db3f537a85d962c1c918a1bb6de99fd.

- The first attempt missed defining `SignpostEmitterImpl`.
- The second attempt missed defining `llvm::SignpostEmitterImpl`.

Not sure how I failed to test both versions locally before; I thought
I'd turned the feature off via rerunning `cmake` but it must have been
stuck in place. This time I confirmed via `clang -E` that I was testing
both build configurations.

Original commit message:

    Replace some manual memory management with std::unique_ptr.

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


  Commit: 12ffc260678dd2a4ce0fbfba562bfd1af9fe8efe
      https://github.com/llvm/llvm-project/commit/12ffc260678dd2a4ce0fbfba562bfd1af9fe8efe
  Author: Weiwei Li <weiwei.li1 at huawei.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVImageOps.td
    M mlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp
    M mlir/test/Dialect/SPIRV/IR/image-ops.mlir
    M mlir/test/Target/SPIRV/image-ops.mlir

  Log Message:
  -----------
  [mlir][spirv] Define spv.ImageDrefGather operation

This patch doesn't support the optional operands of ImageDrefGather. The support of optional operands will be implemented later.

co-authered-by: Alan Liu <alanliu.yf at gmail.com>

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


  Commit: 8294019633b527f3c5d529e9ae2bac1d5af66361
      https://github.com/llvm/llvm-project/commit/8294019633b527f3c5d529e9ae2bac1d5af66361
  Author: David Blaikie <dblaikie at gmail.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Target/NVPTX/NVPTXLowerArgs.cpp

  Log Message:
  -----------
  Use default ref capture to avoid unused capture warning on assert-used variable


  Commit: eb8a28e2cf033f2bfbfe33a0bd0d9e75a12e2679
      https://github.com/llvm/llvm-project/commit/eb8a28e2cf033f2bfbfe33a0bd0d9e75a12e2679
  Author: David Blaikie <dblaikie at gmail.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M clang/lib/CodeGen/CGDebugInfo.cpp
    M clang/test/CodeGenCXX/debug-info-template.cpp

  Log Message:
  -----------
  DebugInfo: Include inline namespaces in template specialization parameter names

This ensures these types have distinct names if they are distinct types
(eg: if one is an instantiation with a type in one inline namespace, and
another from a type with the same simple name, but in a different inline
namespace).


  Commit: 4a84b03eced28cf08636e45700d3c8594378f329
      https://github.com/llvm/llvm-project/commit/4a84b03eced28cf08636e45700d3c8594378f329
  Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/include/llvm/ADT/StringMapEntry.h

  Log Message:
  -----------
  ADT: Sink the guts of StringMapEntry::Create into StringMapEntryBase

Sink the interesting parts of StringMapEntry::Create into a new function
StringMapEntryBase::allocateWithKey that's only templated on the
allocator, taking the entry size and alignment as parameters.

As dblaikie pointed out in the review, it'd be interesting as a
follow-up to make this more generic and maybe sink at least some of it
into a source file; I haven't done that yet myself, but I left behind an
encouraging comment.

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


  Commit: ceeb5b0f87a3f564026603c70d970eb7c1b6872e
      https://github.com/llvm/llvm-project/commit/ceeb5b0f87a3f564026603c70d970eb7c1b6872e
  Author: Rob Suderman <rob.suderman at gmail.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/IR/LinalgNamedStructuredOpsSpec.tc
    M mlir/include/mlir/Dialect/StandardOps/EDSC/Intrinsics.h
    M mlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
    M mlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
    M mlir/test/Dialect/Linalg/generalize-named-ops.mlir
    M mlir/test/Dialect/Linalg/named-ops.mlir

  Log Message:
  -----------
  [mlir][tosa] Add tosa.max_pool2d lowering to linalg int max pooling additions

Lowerings tosa.max_pool2d to linalg equivalent operations. Includes
adding max pooling operations for linalg, with corresponding tests.

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


  Commit: f47a4c071376c32d970bb26fbfca5a2fb08c164e
      https://github.com/llvm/llvm-project/commit/f47a4c071376c32d970bb26fbfca5a2fb08c164e
  Author: Alex Orlov <aorlov at accesssoftek.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M lld/test/COFF/Inputs/pdb-type-server-invalid-path.yaml
    M lld/test/COFF/Inputs/pdb-type-server-missing-2.yaml
    M lld/test/COFF/Inputs/pdb-type-server-valid-signature.yaml
    M lld/test/COFF/pdb-type-server-invalid-signature.yaml
    M lld/test/COFF/pdb-type-server-missing.yaml
    M lld/test/COFF/pdb-type-server-native-errors.yaml
    M llvm/lib/DebugInfo/CodeView/Formatters.cpp
    M llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp
    M llvm/test/DebugInfo/PDB/DIA/pdbdump-flags.test
    M llvm/test/DebugInfo/PDB/Native/pdb-native-summary.test
    M llvm/test/DebugInfo/PDB/pdbdump-headers.test
    M llvm/test/DebugInfo/PDB/pdbdump-readwrite.test
    M llvm/test/DebugInfo/PDB/pdbdump-yaml.test
    M llvm/test/ObjectYAML/CodeView/sections.yaml
    M llvm/test/tools/llvm-pdbutil/explain-pdb-stream.test
    M llvm/test/tools/llvm-pdbutil/stripped.test

  Log Message:
  -----------
  [lld] Fixed CodeView GuidAdapter::format to handle GUID bytes in the right order.

This fixes https://bugs.llvm.org/show_bug.cgi?id=41712 bug.

Reviewed By: aganea

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


  Commit: 49c79e3b56448dbcd34aaf61e3678f7d6f5fcf80
      https://github.com/llvm/llvm-project/commit/49c79e3b56448dbcd34aaf61e3678f7d6f5fcf80
  Author: Jim Lin <tclin914 at gmail.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoA.td

  Log Message:
  -----------
  [RISCV][NFC] Add explicit type i64 to RV64 only patterns.

Add explicit type i64 to RV64 only patterns to stop emitting unneeded i32 patterns.

It can reduce the isel table size.

Reviewed By: craig.topper

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


  Commit: ca55f0511698e5b64538e02eff9f6b2280282b15
      https://github.com/llvm/llvm-project/commit/ca55f0511698e5b64538e02eff9f6b2280282b15
  Author: Yang Fan <nullptr.cpp at gmail.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M clang/lib/Basic/SourceManager.cpp

  Log Message:
  -----------
  [clang][SourceManager] Fix -Wparentheses warning (NFC)

GCC warning:
```
/llvm-project/clang/lib/Basic/SourceManager.cpp: In instantiation of ‘constexpr T likelyhasbetween(T, unsigned char, unsigned char) [with T = long unsigned int]’:
/llvm-project/clang/lib/Basic/SourceManager.cpp:1292:52:   required from here
/llvm-project/clang/lib/Basic/SourceManager.cpp:1264:48: warning: suggest parentheses around ‘+’ in operand of ‘&’ [-Wparentheses]
 1264 |           (x & ~static_cast<T>(0) / 255 * 127) +
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
 1265 |               (~static_cast<T>(0) / 255 * (127 - (m - 1)))) &
      |               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```


  Commit: d2e15a83a664ba6cdfa9d17e81ecc9115b2c5046
      https://github.com/llvm/llvm-project/commit/d2e15a83a664ba6cdfa9d17e81ecc9115b2c5046
  Author: Serguei Katkov <serguei.katkov at azul.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp

  Log Message:
  -----------
  [RS4GC] Cleanup meetBDVState. NFC.

meetBDVState looks pretty difficult to read and follow.
This is purely NFC but doing several things:

1) Combine meet and meetBDVState
2) Move the function to be a member of BDVState
3) Make BDVState be a mutable object
4) Convert switch to sequence of ifs
5) Adds comments.

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


  Commit: 79cade52ed9406bd59936f51dc19f6f20f1fe352
      https://github.com/llvm/llvm-project/commit/79cade52ed9406bd59936f51dc19f6f20f1fe352
  Author: Esme-Yi <esme.yi at ibm.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/test/DebugInfo/XCOFF/dbx-inlinedstrings.ll

  Log Message:
  -----------
  [debug-info][NFC] Set -mtriple to avoid the test failure under other targets.


  Commit: 4c89bcadf6cae8320a1925eb9cbeb8c8c1f5f58b
      https://github.com/llvm/llvm-project/commit/4c89bcadf6cae8320a1925eb9cbeb8c8c1f5f58b
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LICM.cpp
    A llvm/test/Transforms/LICM/invariant.group.ll

  Log Message:
  -----------
  [LICM] Hoist loads with invariant.group metadata

Previously loading the vtable used in calling a virtual method in a loop
was not hoisted out of the loop. This fixes that.

canSinkOrHoistInst() itself doesn't check that the load operands are
loop invariant, callers also check that separately.

Reviewed By: rnk

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


  Commit: 097d77d611d1e1b3972be661fdc3caaa4d1824b4
      https://github.com/llvm/llvm-project/commit/097d77d611d1e1b3972be661fdc3caaa4d1824b4
  Author: zoecarver <z.zoelec2 at gmail.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M libcxx/include/memory
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.assign/unique_ptr_Y.pass.cpp
    M libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.const/unique_ptr.pass.cpp

  Log Message:
  -----------
  [libcxx] Allow shared_ptr's unique_ptr converting constructor to support array types.

Refs: https://bugs.llvm.org/show_bug.cgi?id=32147

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


  Commit: f4eb681dc37ae84e08579bf96cd2a6f58c44f260
      https://github.com/llvm/llvm-project/commit/f4eb681dc37ae84e08579bf96cd2a6f58c44f260
  Author: MaheshRavishankar <ravishankarm at google.com>
  Date:   2021-04-08 (Thu, 08 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/Linalg/Passes.td
    M mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
    M mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp
    M mlir/test/Dialect/Linalg/canonicalize.mlir
    M mlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir
    M mlir/test/Dialect/Linalg/reshape_fusion.mlir

  Log Message:
  -----------
  [mlir][Linalg] Drop unit-trip loops of reductions only if other reduction loops exists.

Recent change enable dropping unit-trip loops of "reduction" iterator
type as well. This is fine as long as there is one other "reduction"
iterator in the operation. Without this the initialized value (value
of `out`) is not read which leads to a correctness issue.

Also fix a bug in the `fill` -> `tensor_reshape` folding. The `out`
operand of the `fill` needs to be reshaped to get the `out` operand of
the generated `fill` operation.

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


  Commit: f6e3b4fe582f0598ad3b594ad915431dfb87bf66
      https://github.com/llvm/llvm-project/commit/f6e3b4fe582f0598ad3b594ad915431dfb87bf66
  Author: Serguei Katkov <serguei.katkov at azul.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/RegAllocGreedy.cpp

  Log Message:
  -----------
  [GreedyRA ORE] Re-factor computeNumberOfSplillsReloads.

Replace if-else to if-continue usage.
This simplifies further extension of the collected stats.


  Commit: 65d09bcb078d48edc5e10c6e4842966833cd15ef
      https://github.com/llvm/llvm-project/commit/65d09bcb078d48edc5e10c6e4842966833cd15ef
  Author: Max Kazantsev <mkazantsev at azul.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/GVN/PRE/pre-loop-load.ll

  Log Message:
  -----------
  [Test] Add two more tests on PRE with guards


  Commit: 6169f1537c87be3d6caeb94ccd6d68a7be6e2502
      https://github.com/llvm/llvm-project/commit/6169f1537c87be3d6caeb94ccd6d68a7be6e2502
  Author: Jim Lin <jim at andestech.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCV.td
    M llvm/test/MC/RISCV/rvv/zvamo.s

  Log Message:
  -----------
  [RISCV][NFC] Fix formatting


  Commit: 4b54345e4770df8d26a9e41fe90fda490d32123f
      https://github.com/llvm/llvm-project/commit/4b54345e4770df8d26a9e41fe90fda490d32123f
  Author: Chen Zheng <czhengsz at cn.ibm.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    A llvm/test/CodeGen/PowerPC/vsx-shuffle-le-multiple-uses.ll

  Log Message:
  -----------
  [NFC][PowerPC] add test cases for reverse memory op transformation


  Commit: 8bc08c55179f81d79e54d1033355faf0471ef081
      https://github.com/llvm/llvm-project/commit/8bc08c55179f81d79e54d1033355faf0471ef081
  Author: Alexander Belyaev <pifon at google.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/test/Feature/OperandBundles/function-attrs.ll

  Log Message:
  -----------
  [lldb] Update UUID after https://reviews.llvm.org/D99978.


  Commit: 39ae25fb8c648b0e710ba2d2d46e7a5b7fafff19
      https://github.com/llvm/llvm-project/commit/39ae25fb8c648b0e710ba2d2d46e7a5b7fafff19
  Author: Alexander Belyaev <pifon at google.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M lldb/test/Shell/ObjectFile/PDB/object.test

  Log Message:
  -----------
  [lldb] Update object.test after 'nosync' inference was enabled.

https://reviews.llvm.org/D99769


  Commit: 623475248a9df38fe9c84316d8fdf6a23b7bf744
      https://github.com/llvm/llvm-project/commit/623475248a9df38fe9c84316d8fdf6a23b7bf744
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/LoopVectorize/pr34681.ll

  Log Message:
  -----------
  [test, LoopVectorize] Fix use of var defined in CHECK-NOT

LLVM test Transforms/LoopVectorize/pr34681.ll tries to check for the
absence of a sequence of instructions with several CHECK-NOT with one of
those directives using a variable defined in another. However CHECK-NOT
are checked independently so that is using a variable defined in a
pattern that should not occur in the input.

This commit only checks for the absence of icmp ne 1 which rules out the
presence of the whole sequence and does not involve an undefined
variable.

Reviewed By: fhahn

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


  Commit: 7eaa2810c4413667872befd4f0045639f7f50f9c
      https://github.com/llvm/llvm-project/commit/7eaa2810c4413667872befd4f0045639f7f50f9c
  Author: Jim Lin <jim at andestech.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfo.td
    M llvm/lib/Target/RISCV/RISCVInstrInfoB.td

  Log Message:
  -----------
  [RISCV][NFC] Replace explicit type i64 with riscv customized SDTypeProfile.

New SDTypeProfile can be reused for other word operation patterns without explicit i64 type in the future.

Reviewed By: craig.topper

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


  Commit: 538254e8e0e09e89776f21bd39c23be1f5868fa1
      https://github.com/llvm/llvm-project/commit/538254e8e0e09e89776f21bd39c23be1f5868fa1
  Author: Frederik Gossen <frgossen at google.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M mlir/lib/Dialect/Shape/IR/Shape.cpp
    M mlir/test/Dialect/Shape/canonicalize.mlir

  Log Message:
  -----------
  [MLIR] Do not yield values from an assuming op that are never used

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


  Commit: 275f3a2540fef429aaf8cebd2aa413bb9e7a6daa
      https://github.com/llvm/llvm-project/commit/275f3a2540fef429aaf8cebd2aa413bb9e7a6daa
  Author: Max Kazantsev <mkazantsev at azul.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Transforms/Scalar/GVN.h
    M llvm/lib/Transforms/Scalar/GVN.cpp

  Log Message:
  -----------
  [GVN][NFC] Factor out load elimination logic via PRE for reuse


  Commit: 36138db116a8eb05b801fa02ee52ab1436c5a3ac
      https://github.com/llvm/llvm-project/commit/36138db116a8eb05b801fa02ee52ab1436c5a3ac
  Author: Sebastian Neubauer <sebastian.neubauer at amd.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
    M llvm/lib/Target/AMDGPU/FLATInstructions.td
    M llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
    M llvm/lib/Target/AMDGPU/SIDefines.h
    M llvm/lib/Target/AMDGPU/SIInstrFormats.td
    M llvm/lib/Target/AMDGPU/SIInstrInfo.h

  Log Message:
  -----------
  [AMDGPU] IsFlatScratch/Global -> FlatScratch/Global

Remove 'Is' from IsFlatScratch/Global. NFC

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


  Commit: ba217b465532f9251cbd11c2863312e4044aebbb
      https://github.com/llvm/llvm-project/commit/ba217b465532f9251cbd11c2863312e4044aebbb
  Author: Sebastian Neubauer <sebastian.neubauer at amd.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/RegisterScavenging.cpp

  Log Message:
  -----------
  [RegisterScavenging] Add asserts for better errors

These cases were failing before, but with cryptic asserts.
Add asserts in the RegScavenger that fail earlier with better
messages. NFC

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


  Commit: baf17e2cc97e9832f0fe3c097a8ac8f682d7d7b2
      https://github.com/llvm/llvm-project/commit/baf17e2cc97e9832f0fe3c097a8ac8f682d7d7b2
  Author: Max Kazantsev <mkazantsev at azul.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/GVN.cpp

  Log Message:
  -----------
  [NFC] Move statictic increment out of helper


  Commit: 735eac7c0bffd1c6ef0b92987bf72ff36cac9d11
      https://github.com/llvm/llvm-project/commit/735eac7c0bffd1c6ef0b92987bf72ff36cac9d11
  Author: Benjamin Kramer <benny.kra at googlemail.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/test/Feature/OperandBundles/function-attrs.ll

  Log Message:
  -----------
  [FunctionAttrs] Force old pm in test so it doens't behave differently depending on the configuration setting for this flag


  Commit: 79d12ded535b14e9af242944a588da7cea1202c7
      https://github.com/llvm/llvm-project/commit/79d12ded535b14e9af242944a588da7cea1202c7
  Author: Frederik Gossen <frgossen at google.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M mlir/lib/Dialect/Shape/IR/Shape.cpp
    M mlir/test/Dialect/Shape/canonicalize.mlir

  Log Message:
  -----------
  [MLIR][Shape] Canonicalize `assuming_all` when all operands are `cstr_eq` ops

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


  Commit: 3ae0a405fc94d1b7a0ced15742031e8d71b32d93
      https://github.com/llvm/llvm-project/commit/3ae0a405fc94d1b7a0ced15742031e8d71b32d93
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/horizontal-sum.ll

  Log Message:
  -----------
  [X86] combineHorizOpWithShuffle - peek through one use bitcasts when decoding shuffles.

Checking for one use, peek through bitcasts of the horizop args to allows us to merge shuffles of different widths through the horizop.


  Commit: d066079728b90793dbff3ca0e0cf339b5f4362bd
      https://github.com/llvm/llvm-project/commit/d066079728b90793dbff3ca0e0cf339b5f4362bd
  Author: dfukalov <daniil.fukalov at amd.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/AliasAnalysis.h
    M llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h
    M llvm/include/llvm/Analysis/MemorySSA.h
    M llvm/lib/Analysis/AliasAnalysis.cpp
    M llvm/lib/Analysis/AliasAnalysisEvaluator.cpp
    M llvm/lib/Analysis/AliasSetTracker.cpp
    M llvm/lib/Analysis/BasicAliasAnalysis.cpp
    M llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp
    M llvm/lib/Analysis/CFLSteensAliasAnalysis.cpp
    M llvm/lib/Analysis/DependenceAnalysis.cpp
    M llvm/lib/Analysis/GlobalsModRef.cpp
    M llvm/lib/Analysis/Lint.cpp
    M llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
    M llvm/lib/Analysis/MemorySSA.cpp
    M llvm/lib/Analysis/ObjCARCAliasAnalysis.cpp
    M llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp
    M llvm/lib/Analysis/ScopedNoAliasAA.cpp
    M llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp
    M llvm/lib/CodeGen/DFAPacketizer.cpp
    M llvm/lib/CodeGen/ImplicitNullChecks.cpp
    M llvm/lib/CodeGen/MachineInstr.cpp
    M llvm/lib/CodeGen/MachinePipeliner.cpp
    M llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp
    M llvm/lib/Target/Hexagon/HexagonStoreWidening.cpp
    M llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
    M llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp
    M llvm/lib/Transforms/Coroutines/CoroElide.cpp
    M llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp
    M llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp
    M llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
    M llvm/lib/Transforms/Utils/FlattenCFG.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/unittests/Analysis/AliasAnalysisTest.cpp
    M llvm/unittests/Analysis/MemorySSATest.cpp

  Log Message:
  -----------
  [NFC][AA] Prepare to convert AliasResult to class with PartialAlias offset.

Main reason is preparation to transform AliasResult to class that contains
offset for PartialAlias case.

Reviewed By: asbirlea

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


  Commit: 74d33052ddd2cfd06fd37159e0f3266b4be2301d
      https://github.com/llvm/llvm-project/commit/74d33052ddd2cfd06fd37159e0f3266b4be2301d
  Author: Frederik Gossen <frgossen at google.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
    M mlir/lib/Dialect/Shape/IR/Shape.cpp

  Log Message:
  -----------
  [MLIR][Shape] Add convenience builder for `shape.assuming_all`

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


  Commit: c1a88e007b04d510fc6d3207ff5b2d80556d8f12
      https://github.com/llvm/llvm-project/commit/c1a88e007b04d510fc6d3207ff5b2d80556d8f12
  Author: dfukalov <daniil.fukalov at amd.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/AliasAnalysis.h
    M llvm/include/llvm/Analysis/AliasSetTracker.h
    M llvm/include/llvm/Analysis/MemorySSA.h
    M llvm/lib/Analysis/AliasAnalysis.cpp
    M llvm/lib/Analysis/BasicAliasAnalysis.cpp
    M llvm/lib/Analysis/MemorySSA.cpp
    M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
    M llvm/unittests/Analysis/AliasAnalysisTest.cpp
    M llvm/unittests/Analysis/MemorySSATest.cpp

  Log Message:
  -----------
  [AA][NFC] Convert AliasResult to class containing offset for PartialAlias case.

Add an ability to store `Offset` between partially aliased location. Use this
storage within returned `ResultAlias` instead of caching it in `AAQueryInfo`.

Reviewed By: asbirlea

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


  Commit: cc7add52986bddf9d56aff63e0de5661b9d2dc2b
      https://github.com/llvm/llvm-project/commit/cc7add52986bddf9d56aff63e0de5661b9d2dc2b
  Author: Sebastian Neubauer <sebastian.neubauer at amd.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPU.td
    M llvm/lib/Target/AMDGPU/AMDGPUGISel.td
    M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
    M llvm/lib/Target/AMDGPU/FLATInstructions.td
    M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
    M llvm/lib/Target/AMDGPU/SIISelLowering.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
    M llvm/lib/Target/AMDGPU/SIInstrInfo.h
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp

  Log Message:
  -----------
  [AMDGPU] Use SIInstrFlags for flat variants. NFC

Use SIInstrFlags to differentiate between the different
variants of flat instructions (flat, global and scratch).
This should make it easier to bundle the immediate offset logic in a
single place and implement restrictions and bug workarounds.

Fixed version of D99587, which does not rely on the address space.

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


  Commit: 99b46a6c5ba70f49effe1e16516bd08a8440c73d
      https://github.com/llvm/llvm-project/commit/99b46a6c5ba70f49effe1e16516bd08a8440c73d
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/X86/setcc-logic.ll

  Log Message:
  -----------
  [X86] Add PR44136 test coverage


  Commit: af67deb005cae4e87109d8ad534446b300351483
      https://github.com/llvm/llvm-project/commit/af67deb005cae4e87109d8ad534446b300351483
  Author: Sven van Haastregt <sven.vanhaastregt at arm.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M clang/lib/Sema/SemaLookup.cpp

  Log Message:
  -----------
  [OpenCL] Simplify InsertOCLBuiltinDeclarationsFromTable

 - Use a range-based for loop.  This will help a later patch to skip
   prototypes that use an unavailable return type or argument type.

 - Replace a dyn_cast with a cast, as we are only dealing with
   FunctionProtoType Types here.


  Commit: 494ba60bb71e234141205db0d3615e9da923e58e
      https://github.com/llvm/llvm-project/commit/494ba60bb71e234141205db0d3615e9da923e58e
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/PowerPC/ppc64-i128-abi.ll

  Log Message:
  -----------
  [PowerPC, test] Fix use of undef FileCheck var

Commit 6646033e6e759657b6122fde64844fd28a2c9635 removed the definition
of variable RESULT used in two CHECK-NOT directives in LLVM test
CodeGen/PowerPC/ppc64-i128-abi.ll. This commit replaces the uses by the
regex that was used to define that variable.

Reviewed By: nemanjai

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


  Commit: 3b4936ba290594cda4e53169958fe11c83119657
      https://github.com/llvm/llvm-project/commit/3b4936ba290594cda4e53169958fe11c83119657
  Author: Adam Czachorowski <adamcz at google.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    A clang-tools-extra/clangd/test/check-lines.test
    M clang-tools-extra/clangd/tool/Check.cpp
    M clang-tools-extra/clangd/tool/ClangdMain.cpp

  Log Message:
  -----------
  [clangd] Add --check-lines to restrict --check to specific lines

This will allow us to add code completion, which is too expensive at
every token, to --check too.

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


  Commit: bb69173ae5d125b5d5238d0b34d8cdc02db4ba69
      https://github.com/llvm/llvm-project/commit/bb69173ae5d125b5d5238d0b34d8cdc02db4ba69
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/PowerPC/ppc-shrink-wrapping.ll

  Log Message:
  -----------
  [PowerPC, test] Fix use of undef FileCheck var

Commit 6ad3d05b681b36f6ecc98523257d154053e4116d disables the definition
of CSR that a follow-up CHECK-NOT directive depends on. This commit
replaces the undefined CSR variable use by the regex used to define it.

Reviewed By: nemanjai

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


  Commit: 0494b6b6769f9ceda7e019a30e83a472d23afff5
      https://github.com/llvm/llvm-project/commit/0494b6b6769f9ceda7e019a30e83a472d23afff5
  Author: Thomas Preud'homme <thomasp at graphcore.ai>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/PowerPC/ctrloops-softfloat.ll

  Log Message:
  -----------
  [PowerPC, test] Fix use of undef FileCheck var

LLVM test CodeGen/PowerPC/ctrloops-softfloat.ll tries to check for the
absence of sequences of instructions with several CHECK-NOT with one of
those directives using a variable defined in another. However CHECK-NOT
are checked independently so that is using a variable defined in a
pattern that should not occur in the input.

This commit changes occurence of the variable for the regex used in its
definition, thereby making each CHECK-NOT independent.

Reviewed By: nemanjai

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


  Commit: 92498264269c86fd0f5645d184d9f7e1c0c3acdf
      https://github.com/llvm/llvm-project/commit/92498264269c86fd0f5645d184d9f7e1c0c3acdf
  Author: Nathan Sidwell <nathan at acm.org>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M clang/lib/Parse/ParseDeclCXX.cpp

  Log Message:
  -----------
  [clang] Tiny format fix

Misindented close brace.

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


  Commit: 5b23e38d9c7ba5e0e11d3b7c841904974060ceab
      https://github.com/llvm/llvm-project/commit/5b23e38d9c7ba5e0e11d3b7c841904974060ceab
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/X86/setcc-logic.ll

  Log Message:
  -----------
  [X86] Adjust PR44136 tests to add cmpne coverage as well

Alive2: https://alive2.llvm.org/ce/z/pLngT-


  Commit: a4ced03d3425f8808b09e3586659fdb5b9c4605d
      https://github.com/llvm/llvm-project/commit/a4ced03d3425f8808b09e3586659fdb5b9c4605d
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
    M llvm/test/CodeGen/AMDGPU/GlobalISel/cvt_f32_ubyte.ll
    M llvm/test/CodeGen/AMDGPU/flat-scratch-fold-fi.mir
    M llvm/test/CodeGen/AMDGPU/fold-cndmask-wave32.mir
    M llvm/test/CodeGen/AMDGPU/fold-cndmask.mir
    M llvm/test/CodeGen/AMDGPU/fold-imm-f16-f32.mir
    M llvm/test/CodeGen/AMDGPU/fold-operands-order.mir
    M llvm/test/CodeGen/AMDGPU/fold-readlane.mir
    M llvm/test/CodeGen/AMDGPU/huge-number-operand-folds.mir
    M llvm/test/CodeGen/AMDGPU/promote-constOffset-to-imm.ll
    M llvm/test/CodeGen/AMDGPU/udiv64.ll
    M llvm/test/CodeGen/AMDGPU/urem64.ll

  Log Message:
  -----------
  [AMDGPU] SIFoldOperands: eagerly delete dead copies

This is cheap to implement, means less work for future passes like
MachineDCE, and slightly improves the folding in some cases.

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


  Commit: acf3279a037ff9c8591f551e92b8e7a8c27b61a4
      https://github.com/llvm/llvm-project/commit/acf3279a037ff9c8591f551e92b8e7a8c27b61a4
  Author: Momchil Velikov <momchil.velikov at arm.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Analysis/LazyValueInfo.cpp
    A llvm/test/Transforms/JumpThreading/nonnull-gep-out-of-bounds.ll

  Log Message:
  -----------
  For non-null pointer checks, do not descend through out-of-bounds GEPs

In LazyValueInfoImpl::isNonNullAtEndOfBlock we populate a set of
pointers, known to be non-null at the end of a block (e.g. because we
did a load through them). We then infer that any pointer, based on an
element of this set is non-null as well ("based" here meaning a
non-null pointer is the underlying object). This is incorrect, even if
the base pointer was non-null, the value of a GEP, that lacks the
inbounds` attribute, may be null.

This issue appeared as miscompilation of the following test case:

int puts(const char *);

typedef struct iter {
  int *val;
} iter_t;

static long distance(iter_t first, iter_t last) {
  long r = 0;
  for (; first.val != last.val; first.val++)
    ++r;
  return r;
}

int main() {
  int arr[2] = {0};
  iter_t i, j;
  i.val = arr;
  j.val = arr + 1;
  if (distance(i, j) >= 2)
    puts("failed");
  else
    puts("passed");
}

This fixes PR49662.

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


  Commit: 25942d7c49ed37a6fa9b291423bb0a22ae77e32d
      https://github.com/llvm/llvm-project/commit/25942d7c49ed37a6fa9b291423bb0a22ae77e32d
  Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M clang/lib/CodeGen/CGBuiltin.cpp
    M clang/lib/Sema/SemaChecking.cpp
    M clang/test/CodeGenCXX/builtin-amdgcn-atomic-inc-dec.cpp
    M clang/test/SemaOpenCL/builtins-amdgcn-error.cl

  Log Message:
  -----------
  [AMDGPU] Allow relaxed/consume memory order for atomic inc/dec

Reviewed by: Jon Chesterfield

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


  Commit: 175b8819f2eacb1dbf5a8ed361052b6b376e9405
      https://github.com/llvm/llvm-project/commit/175b8819f2eacb1dbf5a8ed361052b6b376e9405
  Author: Paul C. Anagnostopoulos <paul at windfall.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/docs/CommandGuide/clang-tblgen.rst
    M llvm/docs/CommandGuide/lldb-tblgen.rst
    M llvm/docs/CommandGuide/llvm-tblgen.rst
    M llvm/docs/CommandGuide/mlir-tblgen.rst
    M llvm/docs/CommandGuide/tblgen.rst

  Log Message:
  -----------
  [TableGen] [docs] Change title of tblgen.rst to fix man page filename


  Commit: b9b708eef8cb7bcb073361283cd573beb04992a9
      https://github.com/llvm/llvm-project/commit/b9b708eef8cb7bcb073361283cd573beb04992a9
  Author: Kadir Cetinkaya <kadircet at google.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M clang-tools-extra/clangd/ConfigCompile.cpp
    M clang-tools-extra/clangd/unittests/ConfigCompileTests.cpp

  Log Message:
  -----------
  [clangd] Log a message when gRPC support is off, but remote-index is configured

Before this change clangd would emit a diagnostic whenever remote-index
was configured but binary didn't have grpc support.

This can be annoying when projects are configuring remote-index through their
configs but developers have a clangd binary without the support.

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


  Commit: 68d62fe06859f0b3b681a01288ba0ee890227083
      https://github.com/llvm/llvm-project/commit/68d62fe06859f0b3b681a01288ba0ee890227083
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/X86/and-with-overflow.ll
    M llvm/test/CodeGen/X86/or-with-overflow.ll
    M llvm/test/CodeGen/X86/xor-with-overflow.ll

  Log Message:
  -----------
  [X86] Add zeroext attributes to i8/i16 and/or/xor overflow tests

Matches original c/c++ test cases


  Commit: 5d7cb79416adee00cf52be12ee42692dd19d4acb
      https://github.com/llvm/llvm-project/commit/5d7cb79416adee00cf52be12ee42692dd19d4acb
  Author: Soumi Manna <soumi.manna at intel.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M clang/lib/CodeGen/TargetInfo.cpp

  Log Message:
  -----------
  RISCVABIInfo::classifyArgumentType: Fix static analyzer warnings with uninitialized variables warnings - NFCI

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


  Commit: 1667fbe65082a1daf757d090bd57450b4e595db4
      https://github.com/llvm/llvm-project/commit/1667fbe65082a1daf757d090bd57450b4e595db4
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/InstCombine/minmax-intrinsics.ll

  Log Message:
  -----------
  [InstCombine] add test with multiple uses of min/max negated operand; NFC


  Commit: 84cdccc9dc68ce11b8eb9a0cbb4333b7f3cb1c1e
      https://github.com/llvm/llvm-project/commit/84cdccc9dc68ce11b8eb9a0cbb4333b7f3cb1c1e
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    M llvm/test/Transforms/InstCombine/minmax-intrinsics.ll

  Log Message:
  -----------
  [InstCombine] try to eliminate an instruction in min/max -> abs fold

As suggested in the review thread for 5094e12 and seen in the
motivating example from https://llvm.org/PR49885, it's not
clear if we have a way to create the optimal code without
this heuristic.


  Commit: f9264ac0fdb7b58d1eb088ea91af0fee48816033
      https://github.com/llvm/llvm-project/commit/f9264ac0fdb7b58d1eb088ea91af0fee48816033
  Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M clang/lib/Sema/SemaChecking.cpp

  Log Message:
  -----------
  [HIP] Workaround ICE compiling SemaChecking.cpp with gcc 5

Change-Id: I6c6213bc6b90365bfb78636ce7fb0700a58807cf


  Commit: f3d7536b24f1d65c09de4899a51d9fdda83c3b1d
      https://github.com/llvm/llvm-project/commit/f3d7536b24f1d65c09de4899a51d9fdda83c3b1d
  Author: jasonliu <jasonliu.development at gmail.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M libcxx/include/cmath
    M libcxx/include/stdlib.h

  Log Message:
  -----------
  [libc++] Fix abs and div overload issue for compilers on AIX

Summary:
AIX system's stdlib.h provide different overload of abs and div
depending on compiler versions.

For example, std::div(long, long) and std::abs(long) are not available
from OS's stdlib.h when building with clang, but they are available
when building with xlclang compiler.

Therefore, we need to provide those extra overloads in libc++'s stdlib.h
when OS's stdlib.h does not.

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


  Commit: 245036950a7a63f77aa1f06f46dfe2fbb2cafc0f
      https://github.com/llvm/llvm-project/commit/245036950a7a63f77aa1f06f46dfe2fbb2cafc0f
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/setcc-logic.ll

  Log Message:
  -----------
  [X86][BMI] Fold cmpeq/ne(or(X,Y),X) --> cmpeq/ne(and(~X,Y),0) (PR44136)

I've initially just enabled this for BMI which has the ANDN instruction for i32/i64 - the i16/i8 cases give an idea of what'd we get when we enable it in all cases (I'll do this as a later commit).

Additionally, the i16/i8 cases could be freely promoted to i32 (as the args are already zeroext) and we could then make use of ANDN + the free cmp0 there as well - this has come up in PR48768 and PR49028 so I'm going to look at this soon.

https://alive2.llvm.org/ce/z/QVWHP_
https://alive2.llvm.org/ce/z/pLngT-

Vector cases do not appear to benefit from this as we end up with having to generate the zero vector as well - this is one of the reasons I didn't try to tie this into hasAndNot/hasAndNotCompare.

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


  Commit: e413b86a2c0c0225f562d16da1aa50aa9a5cb7aa
      https://github.com/llvm/llvm-project/commit/e413b86a2c0c0225f562d16da1aa50aa9a5cb7aa
  Author: Frederik Gossen <frgossen at google.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M mlir/lib/Dialect/Shape/IR/Shape.cpp
    M mlir/test/Dialect/Shape/canonicalize.mlir

  Log Message:
  -----------
  [MLIR][Shape] Combine `cstr_eq` only if they share shape operands

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


  Commit: b7578f9d5a465ae1c061ccfbe3cf2a5265785f87
      https://github.com/llvm/llvm-project/commit/b7578f9d5a465ae1c061ccfbe3cf2a5265785f87
  Author: Paul Robinson <paul.robinson at sony.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/unittests/Support/ProgramTest.cpp

  Log Message:
  -----------
  [RGT] Tweak test so assertion is always executed

Any given Windows system will have only one "system" encoding for
UTF-16 (BE or LE), so the assert for the other one would always
show up as rotten.  Use a common assertion for both paths to avoid
this.


  Commit: d8bc4de3cfe045cf393f6928e359a6f05deffd55
      https://github.com/llvm/llvm-project/commit/d8bc4de3cfe045cf393f6928e359a6f05deffd55
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/avx512-cmp.ll
    M llvm/test/CodeGen/X86/pr27202.ll
    M llvm/test/CodeGen/X86/ragreedy-hoist-spill.ll
    M llvm/test/CodeGen/X86/setcc-logic.ll
    M llvm/test/CodeGen/X86/switch-or.ll

  Log Message:
  -----------
  [X86] Fold cmpeq/ne(or(X,Y),X) --> cmpeq/ne(and(~X,Y),0) on non-BMI targets (PR44136)

Followup to D100177, enable the fold for non-BMI targets as well.


  Commit: 18192228602c6a8093fb0eefa863ab854dd03e59
      https://github.com/llvm/llvm-project/commit/18192228602c6a8093fb0eefa863ab854dd03e59
  Author: Matheus Izvekov <mizvekov at gmail.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M clang/test/CXX/class/class.init/class.copy.elision/p3.cpp
    R clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p7-1y.cpp
    A clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p7-cxx14.cpp
    M clang/test/CXX/drs/dr3xx.cpp
    R clang/test/CXX/expr/expr.prim/expr.prim.lambda/p4-1y.cpp
    A clang/test/CXX/expr/expr.prim/expr.prim.lambda/p4-cxx14.cpp
    A clang/test/CXX/special/class.copy/p3-cxx11.cpp
    R clang/test/CXX/special/class.copy/p33-0x.cpp
    M clang/test/CXX/temp/temp.decls/temp.mem/p5.cpp
    A clang/test/CodeGen/nrvo-tracking.cpp
    M clang/test/SemaCXX/P1155.cpp
    M clang/test/SemaCXX/constant-expression-cxx11.cpp
    A clang/test/SemaCXX/constant-expression-cxx14.cpp
    R clang/test/SemaCXX/constant-expression-cxx1y.cpp
    M clang/test/SemaCXX/conversion-function.cpp
    M clang/test/SemaCXX/coroutine-rvo.cpp
    M clang/test/SemaCXX/coroutines.cpp
    R clang/test/SemaCXX/cxx1y-deduced-return-type.cpp
    A clang/test/SemaCXX/deduced-return-type-cxx14.cpp
    M clang/test/SemaCXX/return-stack-addr.cpp
    M clang/test/SemaCXX/warn-return-std-move.cpp

  Log Message:
  -----------
  [clang] tests: cleanup, update and add some new ones

This reworks a small set of tests, as preparatory work for implementing
P2266.
* Run for more standard versions, including c++2b.
* Normalize file names and run commands.
* Adds some extra tests.

New Coroutine tests taken from Aaron Puchert's D68845.

Signed-off-by: Matheus Izvekov <mizvekov at gmail.com>

Reviewed By: thakis

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


  Commit: aeff03d2df541d417ba216cec9f35c3eace39573
      https://github.com/llvm/llvm-project/commit/aeff03d2df541d417ba216cec9f35c3eace39573
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/InstCombine/2010-11-23-Distributed.ll

  Log Message:
  -----------
  [InstCombine] Regenerate 2010-11-23-Distributed.ll tests


  Commit: 9da35814e5fb71d8610ed7888d1f05703bfa8b54
      https://github.com/llvm/llvm-project/commit/9da35814e5fb71d8610ed7888d1f05703bfa8b54
  Author: Eric Schweitz <eschweitz at nvidia.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M flang/include/flang/Lower/Bridge.h
    M flang/include/flang/Lower/Mangler.h
    M flang/include/flang/Optimizer/CodeGen/CodeGen.h
    M flang/lib/Lower/Mangler.cpp

  Log Message:
  -----------
  [Flang] Changes to mangling code

Call static functions using the class name (fir::NameUniquer).
Add function for mangling derivedTypes.

All the name mangling functions that are ultimately called are
tested in unittests/Optimizer/InternalNamesTest.cpp.

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


  Commit: f2dfacea3e3ffe296383b581708b1169926be627
      https://github.com/llvm/llvm-project/commit/f2dfacea3e3ffe296383b581708b1169926be627
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    A llvm/test/Transforms/PhaseOrdering/expect.ll

  Log Message:
  -----------
  [PhaseOrdering] add test for llvm.expect; NFC


  Commit: 6ce76ff7eb7640e53b65f0473848ce7d08165c98
      https://github.com/llvm/llvm-project/commit/6ce76ff7eb7640e53b65f0473848ce7d08165c98
  Author: Adrian Prantl <aprantl at apple.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/include/llvm/IR/DebugInfoMetadata.h
    M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
    M llvm/test/Transforms/Coroutines/coro-async.ll
    M llvm/test/Transforms/Coroutines/coro-debug.ll

  Log Message:
  -----------
  Update the linkage name of coro-split functions in the debug info.

This patch updates the linkage name in the DISubprogram of coro-split
functions, which is particularly important for Swift, where the
funclets have a special name mangling. This patch does not affect C++
coroutines, since the DW_AT_specification is expected to hold the
(original) linkage name. I believe this is mostly due to limitations
in AsmPrinter, so we might be able to relax this restriction in the
future.

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


  Commit: 206343f319da2ac7a6dfab7f35559edadc06d77d
      https://github.com/llvm/llvm-project/commit/206343f319da2ac7a6dfab7f35559edadc06d77d
  Author: Paul Robinson <paul.robinson at sony.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/unittests/Support/ThreadPool.cpp

  Log Message:
  -----------
  [RGT] Disable some tests on Windows at compile-time, not runtime

These show up as un-executed on non-Windows hosts.

Found by the Rotten Green Tests project.


  Commit: 16fe741c69429235210c03c46420f8fa6aece4a1
      https://github.com/llvm/llvm-project/commit/16fe741c69429235210c03c46420f8fa6aece4a1
  Author: Stefan Pintilie <stefanp at oc4686768078.ibm.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
    M llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.h
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.h
    M llvm/lib/Target/PowerPC/P9InstrResources.td
    M llvm/lib/Target/PowerPC/PPCInstr64Bit.td
    M llvm/lib/Target/PowerPC/PPCInstrFormats.td
    M llvm/lib/Target/PowerPC/PPCInstrInfo.td
    M llvm/test/MC/Disassembler/PowerPC/ppc64-encoding-ISA31.txt
    M llvm/test/MC/PowerPC/ppc64-encoding-ISA31.s

  Log Message:
  -----------
  [PowerPC] Add ROP Protection Instructions for PowerPC

There are four new PowerPC instructions that are introduced in
Power 10. They are hashst, hashchk, hashstp, hashchkp.

These instructions will be used for ROP Protection.
This patch adds the four instructions.

Reviewed By: nemanjai, amyk, #powerpc

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


  Commit: 40e75cafc0fef365b5580a9c09595ac475db0c19
      https://github.com/llvm/llvm-project/commit/40e75cafc0fef365b5580a9c09595ac475db0c19
  Author: Amara Emerson <amara at apple.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/select-vector-shift.mir

  Log Message:
  -----------
  [AArch64][GlobalISel] Fix incorrect codegen for <16 x s8> G_ASHR.

Fixes PR49904


  Commit: 107189a26eef0e6aef19b1bad4a3349d6207ac32
      https://github.com/llvm/llvm-project/commit/107189a26eef0e6aef19b1bad4a3349d6207ac32
  Author: Alex Richardson <Alexander.Richardson at cl.cam.ac.uk>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/TableGen/TGParser.cpp
    M llvm/test/TableGen/template-args.td

  Log Message:
  -----------
  [TableGen] Report an error message on a missing comma

I recently forgot a comma in a defm argument list and tablegen just
failed with exit code 1 without printing an error message. I believe
this issue was introduced in a9fc44c5573208859c2550382755098d750fc47d.

This change prints the following instead:
.../clang/include/clang/Driver/Options.td:569:3: error: Expected comma before next argument

Reviewed By: Paul-C-Anagnostopoulos

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


  Commit: ed0bf875a93e184c234510717b22fb4c8367ed82
      https://github.com/llvm/llvm-project/commit/ed0bf875a93e184c234510717b22fb4c8367ed82
  Author: Alex Richardson <Alexander.Richardson at cl.cam.ac.uk>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M compiler-rt/lib/builtins/aarch64/fp_mode.c
    M compiler-rt/lib/builtins/arm/fp_mode.c
    M compiler-rt/lib/builtins/fp_add_impl.inc
    M compiler-rt/lib/builtins/fp_mode.c
    M compiler-rt/lib/builtins/fp_mode.h
    M compiler-rt/lib/builtins/i386/fp_mode.c

  Log Message:
  -----------
  [builtins] Avoid enum name conflicts with fenv.h

After a follow-up change (D98332) this header can be included the same time
as fenv.h when running the tests. To avoid enum members conflicting with
the macros/enums defined in the host fenv.h, prefix them with CRT_.

Reviewed By: peter.smith

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


  Commit: dc4abca7662b74467c2b6bceb7e8b046ae04b8a0
      https://github.com/llvm/llvm-project/commit/dc4abca7662b74467c2b6bceb7e8b046ae04b8a0
  Author: Alex Richardson <Alexander.Richardson at cl.cam.ac.uk>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/Attr.td
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/Sema/SemaDecl.cpp
    M clang/lib/Sema/SemaDeclAttr.cpp
    A clang/test/CodeGen/alloc-size-fnptr.c
    M clang/test/CodeGen/alloc-size.c
    M clang/test/Misc/pragma-attribute-supported-attributes-list.test
    M clang/test/Sema/alloc-size.c

  Log Message:
  -----------
  Handle alloc_size attribute on function pointers

I have been trying to statically find and analyze all calls to heap
allocation functions to determine how many of them use sizes known at
compile time vs only at runtime. While doing so I saw that quite a few
projects use replaceable function pointers for heap allocation and noticed
that clang was not able to annotate functions pointers with alloc_size.
I have changed the Sema checks to allow alloc_size on all function pointers
and typedefs for function pointers now and added checks that these
attributes are propagated to the LLVM IR correctly.

With this patch we can also compute __builtin_object_size() for calls to
allocation function pointers with the alloc_size attribute.

Reviewed By: aaron.ballman, erik.pilkington
Differential Revision: https://reviews.llvm.org/D55212


  Commit: f30c429da63a0f7506770b926229486e74fda3b3
      https://github.com/llvm/llvm-project/commit/f30c429da63a0f7506770b926229486e74fda3b3
  Author: Thomas Lively <tlively at google.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
    M llvm/test/CodeGen/WebAssembly/simd-build-vector.ll
    A llvm/test/CodeGen/WebAssembly/simd-concat.ll

  Log Message:
  -----------
  [WebAssembly] Add shuffles as an option for lowering BUILD_VECTOR

When lowering a BUILD_VECTOR SDNode, we choose among various possible vector
creation instructions in an attempt to minimize the total number of instructions
used. We previously considered using swizzles, consts, and splats, and this
patch adds shuffles as well. A common pattern that now lowers to shuffles is
when two 64-bit vectors are concatenated. Previously, concatenations generally
lowered to sequences of extract_lane and replace_lane instructions when they
could have been a single shuffle.

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


  Commit: b166441bbe7f33e80e70c49feb18285b52ecec3d
      https://github.com/llvm/llvm-project/commit/b166441bbe7f33e80e70c49feb18285b52ecec3d
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_block_file/is_block_file.pass.cpp
    M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_char_file/is_character_file.pass.cpp
    M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_directory/is_directory.pass.cpp
    M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_empty/is_empty.pass.cpp
    M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_fifo/is_fifo.pass.cpp
    M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_other/is_other.pass.cpp
    M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_regular_file/is_regular_file.pass.cpp
    M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_socket/is_socket.pass.cpp
    M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.is_symlink/is_symlink.pass.cpp

  Log Message:
  -----------
  [libcxx] [test] Use GetWindowsInaccessibleDir() instead of dirs with perms::none in fs.op.is_*

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


  Commit: 1f1f8e239bb32fc19990b652e0d0becff312f4aa
      https://github.com/llvm/llvm-project/commit/1f1f8e239bb32fc19990b652e0d0becff312f4aa
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M libcxx/test/std/input.output/filesystems/class.directory_entry/directory_entry.mods/assign.pass.cpp
    M libcxx/test/std/input.output/filesystems/class.rec.dir.itr/rec.dir.itr.members/ctor.pass.cpp
    M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.temp_dir_path/temp_directory_path.pass.cpp

  Log Message:
  -----------
  [libcxx] [test] Use GetWindowsInaccessibleDir() in a couple more tests

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


  Commit: 1e5f68d80a42ad0e377f6a3197034995bd7a2e16
      https://github.com/llvm/llvm-project/commit/1e5f68d80a42ad0e377f6a3197034995bd7a2e16
  Author: Martin Storsjö <martin at martin.st>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M libcxx/test/std/input.output/filesystems/fs.op.funcs/fs.op.rename/rename.pass.cpp

  Log Message:
  -----------
  [libcxx] [test] Add more tests for renaming directories in fs.op.rename

This was requested during the review of D98640.

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


  Commit: 365053d2a55b5e045354f3c3d0d0cc7f5810f457
      https://github.com/llvm/llvm-project/commit/365053d2a55b5e045354f3c3d0d0cc7f5810f457
  Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Support/Path.cpp
    M llvm/lib/Support/Unix/Path.inc
    M llvm/lib/Support/Windows/Path.inc

  Log Message:
  -----------
  Support: Remove code duplication for mapped_file_region accessors, NFC


  Commit: 1a43fd27691c6ae5c3d725ca7c6f4fd19357f4b8
      https://github.com/llvm/llvm-project/commit/1a43fd27691c6ae5c3d725ca7c6f4fd19357f4b8
  Author: cchen <chichunchen844 at gmail.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M clang/include/clang-c/Index.h
    M clang/include/clang/AST/OpenMPClause.h
    M clang/include/clang/AST/RecursiveASTVisitor.h
    M clang/include/clang/AST/StmtOpenMP.h
    M clang/include/clang/Basic/StmtNodes.td
    M clang/include/clang/Sema/Sema.h
    M clang/include/clang/Serialization/ASTBitCodes.h
    M clang/lib/AST/OpenMPClause.cpp
    M clang/lib/AST/StmtOpenMP.cpp
    M clang/lib/AST/StmtPrinter.cpp
    M clang/lib/AST/StmtProfile.cpp
    M clang/lib/CodeGen/CGStmt.cpp
    M clang/lib/CodeGen/CGStmtOpenMP.cpp
    M clang/lib/Parse/ParseOpenMP.cpp
    M clang/lib/Sema/SemaExceptionSpec.cpp
    M clang/lib/Sema/SemaOpenMP.cpp
    M clang/lib/Sema/TreeTransform.h
    M clang/lib/Serialization/ASTReader.cpp
    M clang/lib/Serialization/ASTReaderStmt.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterStmt.cpp
    M clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
    A clang/test/OpenMP/masked_ast_print.cpp
    A clang/test/OpenMP/masked_messages.cpp
    M clang/tools/libclang/CIndex.cpp
    M clang/tools/libclang/CXCursor.cpp
    M flang/lib/Semantics/check-omp-structure.cpp
    M llvm/include/llvm/Frontend/OpenMP/OMP.td

  Log Message:
  -----------
  [OpenMP51] Initial support for masked directive and filter clause

Adds basic parsing/sema/serialization support for the #pragma omp masked
directive.

Reviewed By: ABataev

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


  Commit: d9c9c0b2db0dc4ddf407edcafba0a5a806850ddc
      https://github.com/llvm/llvm-project/commit/d9c9c0b2db0dc4ddf407edcafba0a5a806850ddc
  Author: Shafik Yaghmour <syaghmour at apple.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M lldb/include/lldb/DataFormatters/FormattersHelpers.h

  Log Message:
  -----------
  [LLDB][NFC] Add clarifying comments for AddCXXSummary and AddCXXSynthetic

Adding comments to AddCXXSynthetic and AddCXXSummary to better explain what they are doing.


  Commit: 5bca7cdafb897f2e8d50dd117bac7e7a663397ce
      https://github.com/llvm/llvm-project/commit/5bca7cdafb897f2e8d50dd117bac7e7a663397ce
  Author: Stefan Pintilie <stefanp at ca.ibm.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCInstrPrefix.td
    A llvm/test/CodeGen/PowerPC/ppc64-xxsplti32dx-pattern-check.ll

  Log Message:
  -----------
  Add correct types to the xxsplti32dx pattern.

Regiser types for xxsplti32dx for two td file patterns was incorrect.
Fixed the two types and added a test case that was reduced from a larger
failing test.

Reviewed By: nemanjai, #powerpc

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


  Commit: 034fe0e03d9eb3c4690012fbe095486f049670ca
      https://github.com/llvm/llvm-project/commit/034fe0e03d9eb3c4690012fbe095486f049670ca
  Author: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/AMDGPU/llvm.amdgcn.udot2.ll

  Log Message:
  -----------
  [AMDGPU] Added udot2 op_sel test. NFC.


  Commit: b12539225930dd2738a79ac9eec455e63413ab91
      https://github.com/llvm/llvm-project/commit/b12539225930dd2738a79ac9eec455e63413ab91
  Author: Louis Dionne <ldionne.2 at gmail.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M libcxx/include/__memory/allocator_traits.h
    M libcxx/include/memory

  Log Message:
  -----------
  [libc++] NFC: Move unused include of <limits> to allocator_traits.h

The include should have been moved when I split allocator_traits.h out
of memory.


  Commit: f6bff8d15778e642ff888075a75480c5201866c2
      https://github.com/llvm/llvm-project/commit/f6bff8d15778e642ff888075a75480c5201866c2
  Author: Alina Sbirlea <asbirlea at google.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Analysis/MemorySSAUpdater.cpp

  Log Message:
  -----------
  [MSSA] Rename uses in IDF regardless of new def position in basic block.

When inserting a new def and renaming of uses is asked, always compute
IDF and do the renaming for the blocks with Phis in that IDF.
Resolves PR49859.

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


  Commit: d19a42eba98fe853dd52f7dc89d8cd2727c7fc1c
      https://github.com/llvm/llvm-project/commit/d19a42eba98fe853dd52f7dc89d8cd2727c7fc1c
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp

  Log Message:
  -----------
  [AMDGPU] SIFoldOperands: eagerly erase dead REG_SEQUENCEs

This is fairly cheap to implement and means less work for future
passes like MachineDCE.

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


  Commit: 5a0117b2d0eaedffeeb393bd9915f11cccfe241b
      https://github.com/llvm/llvm-project/commit/5a0117b2d0eaedffeeb393bd9915f11cccfe241b
  Author: Jay Foad <jay.foad at amd.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
    M llvm/test/CodeGen/AMDGPU/srem64.ll
    M llvm/test/CodeGen/AMDGPU/udiv64.ll
    M llvm/test/CodeGen/AMDGPU/urem64.ll

  Log Message:
  -----------
  [AMDGPU] Remove MachineDCE after SIFoldOperands

Remove the MachineDCE pass after the first SIFoldOperands pass now
that SIFoldOperands deletes its own dead instructions.

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


  Commit: 3d816537df2c99cdb151a86249da58f4529ec17d
      https://github.com/llvm/llvm-project/commit/3d816537df2c99cdb151a86249da58f4529ec17d
  Author: cchen <chichunchen844 at gmail.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M clang/docs/OpenMPSupport.rst

  Log Message:
  -----------
  [OpenMP51][DOCS] Claimed masked construct and report current patch, NFC.


  Commit: ca0e250ec6e0f76e83358df5adc1ab061eed52f2
      https://github.com/llvm/llvm-project/commit/ca0e250ec6e0f76e83358df5adc1ab061eed52f2
  Author: Nicolas Vasilache <nicolas.vasilache at gmail.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Dialect/SCF/SCFOps.td

  Log Message:
  -----------
  [mlir] NFC - Add help functions to scf.ForOp

This revision adds 2 helperr functions that help tie OpOperands and
BlockArguments in scf.ForOp without having to use the internal implementation
details.


  Commit: 1a2756b777b6041a8337d704eff59e970227d929
      https://github.com/llvm/llvm-project/commit/1a2756b777b6041a8337d704eff59e970227d929
  Author: Mitch Phillips <31459023+hctim at users.noreply.github.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp
    M llvm/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.cpp
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCInstPrinter.h
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp
    M llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.h
    M llvm/lib/Target/PowerPC/P9InstrResources.td
    M llvm/lib/Target/PowerPC/PPCInstr64Bit.td
    M llvm/lib/Target/PowerPC/PPCInstrFormats.td
    M llvm/lib/Target/PowerPC/PPCInstrInfo.td
    M llvm/test/MC/Disassembler/PowerPC/ppc64-encoding-ISA31.txt
    M llvm/test/MC/PowerPC/ppc64-encoding-ISA31.s

  Log Message:
  -----------
  Revert "[PowerPC] Add ROP Protection Instructions for PowerPC"

This reverts commit 16fe741c69429235210c03c46420f8fa6aece4a1.

Reason: Broke the UBSan buildbots. More information available in the
phabricator review: https://reviews.llvm.org/D99375


  Commit: 50979defc9555d66dc2427e1dac68fd62c45e524
      https://github.com/llvm/llvm-project/commit/50979defc9555d66dc2427e1dac68fd62c45e524
  Author: Kostya Kortchinsky <kostyak at google.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/local_cache.h

  Log Message:
  -----------
  [scudo][standalone] Use BatchClassId in drain rather than 0

D99763 fixed `SizeClassAllocatorLocalCache::drain` but with the
assumption that `BatchClassId` is 0 - which is currently true. I would
rather not make the assumption so that if we ever change the ID of
the batch class, the loop would still work. Since `BatchClassId` is
used more often in `local_cache.h`, introduce a constant so that we
don't have to specify `SizeClassMap::` every time.

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


  Commit: 7df30e77d499e2416e74d67baa6b121f5d47d2a0
      https://github.com/llvm/llvm-project/commit/7df30e77d499e2416e74d67baa6b121f5d47d2a0
  Author: Mitch Phillips <31459023+hctim at users.noreply.github.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M compiler-rt/lib/asan/asan_new_delete.cpp
    A compiler-rt/test/asan/TestCases/replaceable_new_delete.cpp

  Log Message:
  -----------
  [ASan] Allow new/delete replacement by making interceptors weak

ASan declares these functions as strongly-defined, which results in
'duplicate symbol' errors when trying to replace them in user code when
linking the runtimes statically.

Reviewed By: eugenis

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


  Commit: 99d6e31e0bd02d484c213a7446fd707c62dec45b
      https://github.com/llvm/llvm-project/commit/99d6e31e0bd02d484c213a7446fd707c62dec45b
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    A llvm/test/Transforms/SROA/std-clamp.ll

  Log Message:
  -----------
  [NFC][SROA] Add C++'s `std::clamp()` testcase from PR47271/PR49909


  Commit: 077bff39d46364035a5dcfa32fc69910ad0975d0
      https://github.com/llvm/llvm-project/commit/077bff39d46364035a5dcfa32fc69910ad0975d0
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M llvm/lib/Analysis/Loads.cpp
    M llvm/test/Transforms/SROA/std-clamp.ll

  Log Message:
  -----------
  [Analysis] isDereferenceableAndAlignedPointer(): recurse into select's hands

By doing this within the method itself,
we support traversing multiple levels of selects (TODO: PHI's),
fixing the SROA `std::clamp()` testcase.

Fixes https://bugs.llvm.org/show_bug.cgi?id=47271
Mostly fixes https://bugs.llvm.org/show_bug.cgi?id=49909


  Commit: b6f22fa5feb606abdae2641036682b0734d0d34a
      https://github.com/llvm/llvm-project/commit/b6f22fa5feb606abdae2641036682b0734d0d34a
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M flang/lib/Semantics/check-declarations.cpp
    A flang/test/Semantics/bind-c01.f90

  Log Message:
  -----------
  [flang] Check for conflicting BIND(C) names

Check for two or more symbols that define a data object or entry point
with the same interoperable BIND(C) name.

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


  Commit: 49c3565b9ba738d0305ab97c2771fa37f2023726
      https://github.com/llvm/llvm-project/commit/49c3565b9ba738d0305ab97c2771fa37f2023726
  Author: Jessica Paquette <jpaquette at apple.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64Combine.td
    M llvm/lib/Target/AArch64/GISel/AArch64GlobalISelUtils.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64GlobalISelUtils.h
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
    A llvm/test/CodeGen/AArch64/GlobalISel/postlegalizer-lowering-swap-compare-operands.mir

  Log Message:
  -----------
  [AArch64][GlobalISel] Swap compare operands when it may be profitable

This adds support for swapping comparison operands when it may introduce new
folding opportunities.

This is roughly the same as the code added to AArch64ISelLowering in
162435e7b5e026b9f988c730bb6527683f6aa853.

For an example of a testcase which exercises this, see
llvm/test/CodeGen/AArch64/swap-compare-operands.ll

(Godbolt for that testcase: https://godbolt.org/z/43WEMb)

The idea behind this is that sometimes, we may be able to fold away, say, a
shift or extend in a compare by swapping its operands.

e.g. in the case of this compare:

```
lsl x8, x0, #1
cmp x8, x1
cset w0, lt
```

The following is equivalent:

```
cmp x1, x0, lsl #1
cset w0, gt
```

Most of the code here is just a reimplementation of what already exists in
AArch64ISelLowering.

(See `getCmpOperandFoldingProfit` and `getAArch64Cmp` for the equivalent code.)

Note that most of the AND code in the testcase doesn't actually fold. It seems
like we're missing selection support for that sort of fold right now, since SDAG
happily folds these away (e.g testSwapCmpWithShiftedZeroExtend8_32 in the
original .ll testcase)

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


  Commit: 3d4730a73fd1db6e28edeb9dac16e8e081529e3a
      https://github.com/llvm/llvm-project/commit/3d4730a73fd1db6e28edeb9dac16e8e081529e3a
  Author: Mitch Phillips <31459023+hctim at users.noreply.github.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFoldOperands.cpp

  Log Message:
  -----------
  Revert "[AMDGPU] SIFoldOperands: eagerly erase dead REG_SEQUENCEs"

This reverts commit d19a42eba98fe853dd52f7dc89d8cd2727c7fc1c.

Reason: Broke the ASan buildbots. See the original phabricator review
for more details: https://reviews.llvm.org/D100188


  Commit: 092f288d3644f58c931336080c443bba98e51ae9
      https://github.com/llvm/llvm-project/commit/092f288d3644f58c931336080c443bba98e51ae9
  Author: Mitch Phillips <31459023+hctim at users.noreply.github.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
    M llvm/test/CodeGen/AMDGPU/srem64.ll
    M llvm/test/CodeGen/AMDGPU/udiv64.ll
    M llvm/test/CodeGen/AMDGPU/urem64.ll

  Log Message:
  -----------
  Revert "[AMDGPU] Remove MachineDCE after SIFoldOperands"

This reverts commit 5a0117b2d0eaedffeeb393bd9915f11cccfe241b.

Reason: Dependent change d19a42eba98fe853dd52f7dc89d8cd2727c7fc1c broke
the ASan buildbots.


  Commit: 5091671c9ba2ca42ecede7b05347084b7c2dd974
      https://github.com/llvm/llvm-project/commit/5091671c9ba2ca42ecede7b05347084b7c2dd974
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M flang/include/flang/Semantics/tools.h
    M flang/include/flang/Semantics/type.h
    M flang/lib/Semantics/expression.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/lib/Semantics/scope.cpp
    M flang/lib/Semantics/tools.cpp
    M flang/lib/Semantics/type.cpp

  Log Message:
  -----------
  [flang] Enforce a limit on recursive PDT instantiations

For pernicious test cases with explicit non-constant actual
type parameter expressions in components, e.g.:

  type :: t(k)
    integer, kind :: k
    type(t(k+1)), pointer :: p
  end type

we should detect the infinite recursion and complain rather
than looping until the stack overflows.

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


  Commit: 88cb786ec261c9d947b3116c00ecd30e6570f64c
      https://github.com/llvm/llvm-project/commit/88cb786ec261c9d947b3116c00ecd30e6570f64c
  Author: Jez Ng <jezng at fb.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M lld/MachO/Arch/ARM64.cpp
    M lld/MachO/Arch/X86_64.cpp
    M lld/MachO/Relocations.cpp
    M lld/MachO/Relocations.h

  Log Message:
  -----------
  [lld-macho][nfc] Remove DYSYM8 reloc attribute

It's likely redundant, per discussion with @gkm. The BYTE8
attribute covers the bit width requirement already.

Reviewed By: #lld-macho, gkm

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


  Commit: e11140451b5f8b4d0a34297ba8aac77ded4dbc2a
      https://github.com/llvm/llvm-project/commit/e11140451b5f8b4d0a34297ba8aac77ded4dbc2a
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M flang/runtime/CMakeLists.txt
    A flang/runtime/random.cpp
    A flang/runtime/random.h
    M flang/unittests/RuntimeGTest/CMakeLists.txt
    A flang/unittests/RuntimeGTest/Random.cpp

  Log Message:
  -----------
  [flang] RANDOM_NUMBER, RANDOM_SEED, RANDOM_INIT in runtime

Add APIs, initial non-coarray implementations, and unit
tests for the intrinsic subroutines for pseudo-random
number generation.

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


  Commit: 0db6488a7704a322ae05f20ef3466bed3eb1bb98
      https://github.com/llvm/llvm-project/commit/0db6488a7704a322ae05f20ef3466bed3eb1bb98
  Author: Duncan P. N. Exon Smith <dexonsmith at apple.com>
  Date:   2021-04-09 (Fri, 09 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Support/FileSystem.h
    M llvm/lib/Support/FileOutputBuffer.cpp
    M llvm/lib/Support/Unix/Path.inc
    M llvm/lib/Support/Windows/Path.inc
    M llvm/unittests/Support/Path.cpp

  Log Message:
  -----------
  Support: Add move semantics to mapped_file_region

Update llvm::sys::fs::mapped_file_region to have a move constructor and
a move assignment operator, allowing it to be used as an Optional. Also,
update FileOutputBuffer's OnDiskBuffer to take advantage of this,
avoiding an extra allocation from the unique_ptr.

A nice follow-up would be to make the mapped_file_region constructor
private and replace its use with a factory function, such as
mapped_file_region::create(), that returns an Expected (or ErrorOr). I
don't plan on doing that immediately, but I might swing back later.

No functionality change, besides the saved allocation in OnDiskBuffer.

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


  Commit: 4f173c0c42d02b14ab388a826ef0d463a07d7953
      https://github.com/llvm/llvm-project/commit/4f173c0c42d02b14ab388a826ef0d463a07d7953
  Author: Ben Shi <powerman1st at 163.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticFrontendKinds.td
    M clang/lib/Basic/Targets/AVR.cpp
    M clang/lib/CodeGen/TargetInfo.cpp
    M clang/test/CodeGen/address-space-avr.c
    A clang/test/CodeGen/avr-flash.c

  Log Message:
  -----------
  [clang][AVR] Support variable decorator '__flash'

Reviewed By: Anastasia

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


  Commit: 8f4b7e94a2b4465b7dac889da286cbd26309457b
      https://github.com/llvm/llvm-project/commit/8f4b7e94a2b4465b7dac889da286cbd26309457b
  Author: dfukalov <daniil.fukalov at amd.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/TargetTransformInfo.h
    M llvm/include/llvm/Analysis/TargetTransformInfoImpl.h
    M llvm/include/llvm/CodeGen/BasicTTIImpl.h
    M llvm/lib/Analysis/TargetTransformInfo.cpp
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
    M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h
    M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
    M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
    M llvm/lib/Target/ARM/ARMTargetTransformInfo.h
    M llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h
    M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
    M llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
    M llvm/lib/Target/X86/X86TargetTransformInfo.cpp
    M llvm/lib/Target/X86/X86TargetTransformInfo.h
    R llvm/test/Analysis/CostModel/AMDGPU/br.ll
    A llvm/test/Analysis/CostModel/AMDGPU/control-flow.ll
    M llvm/test/CodeGen/AMDGPU/unroll.ll
    M llvm/test/Transforms/LoopUnroll/AMDGPU/unroll-cost-addrspacecast.ll

  Log Message:
  -----------
  [AMDGPU][CostModel] Refine cost model for control-flow instructions.

Added cost estimation for switch instruction, updated costs of branches, fixed
phi cost.
Had to increase `-amdgpu-unroll-threshold-if` default value since conditional
branch cost (size) was corrected to higher value.
Test renamed to "control-flow.ll".

Removed redundant code in `X86TTIImpl::getCFInstrCost()` and
`PPCTTIImpl::getCFInstrCost()`.

Reviewed By: rampitec

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


  Commit: 6270b3a1eafaba4279e021418c5a2c5a35abc002
      https://github.com/llvm/llvm-project/commit/6270b3a1eafaba4279e021418c5a2c5a35abc002
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M clang/lib/CodeGen/CGCall.cpp
    M clang/test/CodeGen/attr-nomerge.cpp
    M clang/test/CodeGenCXX/this-nonnull.cpp
    M clang/test/CodeGenCoroutines/coro-symmetric-transfer-01.cpp
    M clang/test/CodeGenObjCXX/objc-struct-cxx-abi.mm
    M clang/test/OpenMP/irbuilder_for_iterator.cpp
    M clang/test/OpenMP/irbuilder_for_rangefor.cpp
    M clang/test/utils/update_cc_test_checks/Inputs/basic-cplusplus.cpp.expected

  Log Message:
  -----------
  Temporairly revert "[CGCall] Annotate `this` argument with alignment"

As per @jyknight, "It seems like there's a bug with vtable thunks getting the wrong information."
See https://reviews.llvm.org/D99790#2680857, https://godbolt.org/z/MxhYMe1q7

This reverts commit 0aa0458f1429372038ca6a4edc7e94c96cd9a753.


  Commit: 471ae42c04e425776c81bab66ce2c094d48c6a11
      https://github.com/llvm/llvm-project/commit/471ae42c04e425776c81bab66ce2c094d48c6a11
  Author: Hsiangkai Wang <kai.wang at sifive.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vleff.c
    M clang/utils/TableGen/RISCVVEmitter.cpp

  Log Message:
  -----------
  [RISCV][Clang] Add RVV vleff intrinsic functions.

Reviewed By: craig.topper, liaolucy, jrtc27, khchen

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


  Commit: 71ab6c98a0d1b5590ed12f955dea6dfc714e9490
      https://github.com/llvm/llvm-project/commit/71ab6c98a0d1b5590ed12f955dea6dfc714e9490
  Author: Saurabh Jha <saurabh.jhaa at gmail.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M clang/include/clang/AST/OperationKinds.def
    M clang/include/clang/AST/Stmt.h
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/include/clang/Sema/Sema.h
    M clang/lib/AST/Expr.cpp
    M clang/lib/AST/ExprConstant.cpp
    M clang/lib/CodeGen/CGExpr.cpp
    M clang/lib/CodeGen/CGExprAgg.cpp
    M clang/lib/CodeGen/CGExprComplex.cpp
    M clang/lib/CodeGen/CGExprConstant.cpp
    M clang/lib/CodeGen/CGExprScalar.cpp
    M clang/lib/Edit/RewriteObjCFoundationAPI.cpp
    M clang/lib/Sema/SemaCast.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
    A clang/test/CodeGen/matrix-cast.c
    A clang/test/Sema/matrix-cast.c
    A clang/test/SemaCXX/matrix-casts.cpp

  Log Message:
  -----------
  [Matrix] Implement C-style explicit type conversions for matrix types.

This implements C-style type conversions for matrix types, as specified
in clang/docs/MatrixTypes.rst.

Fixes PR47141.

Reviewed By: fhahn

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


  Commit: b6aaa8836ee0f8a6ec13319bf26523ec73cdbed4
      https://github.com/llvm/llvm-project/commit/b6aaa8836ee0f8a6ec13319bf26523ec73cdbed4
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    A llvm/test/Transforms/CorrelatedValuePropagation/abs.ll

  Log Message:
  -----------
  [NFC][CVP] Add `@llvm.abs` test cases


  Commit: c329a47d9ed77512493f787520317e3f51be3387
      https://github.com/llvm/llvm-project/commit/c329a47d9ed77512493f787520317e3f51be3387
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
    M llvm/test/Transforms/CorrelatedValuePropagation/abs.ll
    M llvm/test/Transforms/CorrelatedValuePropagation/minmaxabs.ll

  Log Message:
  -----------
  [CVP] @llvm.abs() handling

Iff we know the sigdness domain of the argument,
we can either skip @llvm.abs, or do negation directly.

Notably, INT_MIN can belong to either domain:
* X u<= INT_MIN --> X  is always fine
  https://alive2.llvm.org/ce/z/QB8j-C https://alive2.llvm.org/ce/z/7sFKpS
* X s<= 0 --> -X  is always fine
  https://alive2.llvm.org/ce/z/QbGSyq https://alive2.llvm.org/ce/z/APsN84

If all else fails, try to inferr NSW flag:
https://alive2.llvm.org/ce/z/qCJfYm


  Commit: 3b677b81cec7b3c5132aee8fccc30252d87deb69
      https://github.com/llvm/llvm-project/commit/3b677b81cec7b3c5132aee8fccc30252d87deb69
  Author: Whisperity <whisperity at gmail.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M clang-tools-extra/clang-tidy/ClangTidy.cpp
    M clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
    M clang-tools-extra/docs/ReleaseNotes.rst
    M clang-tools-extra/test/clang-tidy/infrastructure/export-diagnostics.cpp
    M clang-tools-extra/unittests/clang-apply-replacements/ApplyReplacementsTest.cpp
    M clang-tools-extra/unittests/clang-tidy/TransformerClangTidyCheckTest.cpp
    M clang/include/clang/Tooling/Core/Diagnostic.h
    M clang/include/clang/Tooling/DiagnosticsYaml.h
    M clang/lib/Tooling/Core/Diagnostic.cpp
    M clang/unittests/Tooling/DiagnosticsYamlTest.cpp

  Log Message:
  -----------
  [libtooling][clang-tidy] Fix diagnostics not highlighting fed SourceRanges

Fixes bug http://bugs.llvm.org/show_bug.cgi?id=49000.

This patch allows Clang-Tidy checks to do

    diag(X->getLocation(), "text") << Y->getSourceRange();

and get the highlight of `Y` as expected:

    warning: text [blah-blah]
        xxx(something)
        ^   ~~~~~~~~~

Reviewed-By: aaron.ballman, njames93

Differential Revision: http://reviews.llvm.org/D98635


  Commit: 0c184154969c020db416bd7066af80ffd2a27ac4
      https://github.com/llvm/llvm-project/commit/0c184154969c020db416bd7066af80ffd2a27ac4
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M llvm/include/llvm/IR/IntrinsicInst.h

  Log Message:
  -----------
  zz


  Commit: 17cf2c94230bc107e7294ef84fad3b47f4cd1b73
      https://github.com/llvm/llvm-project/commit/17cf2c94230bc107e7294ef84fad3b47f4cd1b73
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/ValueLattice.h
    M llvm/include/llvm/IR/ConstantRange.h
    M llvm/lib/Analysis/InstructionSimplify.cpp
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/lib/IR/ConstantRange.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/unittests/IR/ConstantRangeTest.cpp

  Log Message:
  -----------
  [NFC][ConstantRange] Add 'icmp' helper method

"Does the predicate hold between two ranges?"

Not very surprisingly, some places were already doing this check,
without explicitly naming the algorithm, cleanup them all.


  Commit: 8371dde4857a4356df3c20c8624aa8989de1bb24
      https://github.com/llvm/llvm-project/commit/8371dde4857a4356df3c20c8624aa8989de1bb24
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M llvm/include/llvm/IR/IntrinsicInst.h

  Log Message:
  -----------
  Revert "zz"

It wasn't meant to be committed, two commits should have been squashed.

This reverts commit 0c184154969c020db416bd7066af80ffd2a27ac4.


  Commit: 7b12c8c59da6f028db1aad948d116d09309a91f5
      https://github.com/llvm/llvm-project/commit/7b12c8c59da6f028db1aad948d116d09309a91f5
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/ValueLattice.h
    M llvm/include/llvm/IR/ConstantRange.h
    M llvm/lib/Analysis/InstructionSimplify.cpp
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/lib/IR/ConstantRange.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/unittests/IR/ConstantRangeTest.cpp

  Log Message:
  -----------
  Revert "[NFC][ConstantRange] Add 'icmp' helper method"

This reverts commit 17cf2c94230bc107e7294ef84fad3b47f4cd1b73.


  Commit: e8c7f43e2c2c6f3581ec1c6489ec21ad9f98958a
      https://github.com/llvm/llvm-project/commit/e8c7f43e2c2c6f3581ec1c6489ec21ad9f98958a
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/ValueLattice.h
    M llvm/include/llvm/IR/ConstantRange.h
    M llvm/include/llvm/IR/IntrinsicInst.h
    M llvm/lib/Analysis/InstructionSimplify.cpp
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/lib/IR/ConstantRange.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/unittests/IR/ConstantRangeTest.cpp

  Log Message:
  -----------
  [NFC][ConstantRange] Add 'icmp' helper method

"Does the predicate hold between two ranges?"

Not very surprisingly, some places were already doing this check,
without explicitly naming the algorithm, cleanup them all.


  Commit: 8fa39752477b225294cde0967a3b4c9c492e699c
      https://github.com/llvm/llvm-project/commit/8fa39752477b225294cde0967a3b4c9c492e699c
  Author: Whisperity <whisperity at gmail.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
    M clang-tools-extra/test/clang-tidy/infrastructure/export-diagnostics.cpp
    M clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp

  Log Message:
  -----------
  [libtooling][clang-tidy] Fix off-by-one rendering issue with SourceRanges

There was an off-by-one issue with calculating the *exact* end location
of token ranges (as given by SomeDecl->getSourceRange()) which resulted in:

  xxx(something)
      ^~~~~~~~   // Note the missing ~ under the last character.

In addition, a test is added to keep the behaviour in check in the future.

This patch hotfixes commit 3b677b81cec7b3c5132aee8fccc30252d87deb69.


  Commit: 8f16101c703e7d9995dc238ba0f03be52bdf4528
      https://github.com/llvm/llvm-project/commit/8f16101c703e7d9995dc238ba0f03be52bdf4528
  Author: peter klausler <pklausler at nvidia.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M flang/lib/Evaluate/fold-integer.cpp
    M flang/lib/Evaluate/intrinsics.cpp
    M flang/lib/Semantics/mod-file.cpp
    M flang/module/__fortran_builtins.f90
    M flang/module/ieee_arithmetic.f90
    A flang/test/Semantics/modfile40.f90

  Log Message:
  -----------
  [flang] Accept & fold IEEE_SELECTED_REAL_KIND

F18 supports the standard intrinsic function SELECTED_REAL_KIND
but not its synonym in the standard module IEEE_ARITHMETIC
named IEEE_SELECTED_REAL_KIND until this patch.

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


  Commit: 03225969e39ce3ab88673cd047a2a546d655dd95
      https://github.com/llvm/llvm-project/commit/03225969e39ce3ab88673cd047a2a546d655dd95
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M llvm/include/llvm/IR/IntrinsicInst.h

  Log Message:
  -----------
  [NFC] Rename LimitingIntrinsic into MinMaxIntrinsic

As requested in post-commit review


  Commit: 257eda07940d8e6d46dbb5944589a0186e07c6e9
      https://github.com/llvm/llvm-project/commit/257eda07940d8e6d46dbb5944589a0186e07c6e9
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/LazyValueInfo.h
    M llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
    M llvm/lib/Transforms/Scalar/JumpThreading.cpp

  Log Message:
  -----------
  [NFC][LVI] getPredicateAt(): drop default value for UseBlockValue

The default is likely wrong.
Out of all the callees, only a single one needs to pass-in false (JumpThread),
everything else either already passes true, or should pass true.

Until the default is flipped, at least make it harder to unintentionally
add new callees with UseBlockValue=false.


  Commit: fe7b3ad8d5f7bf5f38ccdc5bd11ba0ff5656aeb5
      https://github.com/llvm/llvm-project/commit/fe7b3ad8d5f7bf5f38ccdc5bd11ba0ff5656aeb5
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  Log Message:
  -----------
  [CVP] LVI: Use in-block values when checking value signedness domain

This has a huge positive impact on all the folds that use these helpers,
as it can be seen on vanilla test-suite + rawspeed + darktable:
correlated-value-propagation.NumSRems             +75.68% (+ 28)
correlated-value-propagation.NumAShrs             +63.87% (+198)
correlated-value-propagation.NumSDivs             +49.42% (+127)
correlated-value-propagation.NumSExt              + 8.85% (+593)
correlated-value-propagation.NumUDivURemsNarrowed	+ 8.65% (+34)

... while having pretty minimal compile-time impact:
https://llvm-compile-time-tracker.com/compare.php?from=e8c7f43e2c2c6f3581ec1c6489ec21ad9f98958a&to=4cd197711e58ee1b2faeee0c35eea54540185569&stat=instructions


  Commit: a407738def187baedf9413d94fc4560efc9d6b43
      https://github.com/llvm/llvm-project/commit/a407738def187baedf9413d94fc4560efc9d6b43
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp

  Log Message:
  -----------
  [NFC][CVP] Add statistic for function pointer argument non-null-ness deduction


  Commit: f041757e9c2f7e343f5c4458797ee97687096020
      https://github.com/llvm/llvm-project/commit/f041757e9c2f7e343f5c4458797ee97687096020
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/JumpThreading.cpp

  Log Message:
  -----------
  [NFC][JumpThreading] Increment 'NumFolds' statistic all places terminator becomes uncond


  Commit: 00ef28ef21f0a46059203c5aa96e9febe1192e43
      https://github.com/llvm/llvm-project/commit/00ef28ef21f0a46059203c5aa96e9febe1192e43
  Author: Wenlei He <aktoon at gmail.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M llvm/include/llvm/ProfileData/SampleProf.h
    M llvm/include/llvm/ProfileData/SampleProfWriter.h
    M llvm/lib/ProfileData/SampleProf.cpp
    M llvm/lib/ProfileData/SampleProfWriter.cpp
    M llvm/test/tools/llvm-profgen/recursion-compression-noprobe.test
    M llvm/test/tools/llvm-profgen/recursion-compression-pseudoprobe.test
    M llvm/tools/llvm-profdata/llvm-profdata.cpp
    M llvm/tools/llvm-profgen/CSPreInliner.cpp
    M llvm/tools/llvm-profgen/ProfileGenerator.cpp
    M llvm/tools/llvm-profgen/ProfileGenerator.h

  Log Message:
  -----------
  [CSSPGO] Fix dangling context strings and improve profile order consistency and error handling

This patch fixed the following issues along side with some refactoring:

1. Fix bugs where StringRef for context string out live the underlying std::string. We now keep string table in profile generator to hold std::strings. We also do the same for bracketed context strings in profile writer.
2. Make sure profile output strictly follow (total sample, name) order. Previously, there's inconsistency between ProfileMap's key and FunctionSamples's name, leading to inconsistent ordering. This is now fixed by introducing context profile canonicalization. Assertions are also added to make sure ProfileMap's key and FunctionSamples's name are always consistent.
3. Enhanced error handling for profile writing to make sure we bubble up errors properly for both llvm-profgen and llvm-profdata when string table is not populated correctly for extended binary profile.
4. Keep all internal context representation bracket free. This avoids creating new strings for context trimming, merging and preinline. getNameWithContext API is now simplied accordingly.
5. Factor out the code for context trimming and merging into SampleContextTrimmer in SampleProf.cpp. This enables llvm-profdata to use the trimmer when merging profiles. Changes in llvm-profgen will be in separate patch.

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


  Commit: 8de2f1ff79aa2a8a72b8c44ea70b48aa9f282ae5
      https://github.com/llvm/llvm-project/commit/8de2f1ff79aa2a8a72b8c44ea70b48aa9f282ae5
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M llvm/lib/Analysis/IVUsers.cpp

  Log Message:
  -----------
  [IVUsers] Check LoopSimplify cache earlier (NFC)

Check the cache before calling isLoopSimplifyForm(). Otherwise we'd
always perform the check for the innermost loop and only skip it
for dominating loops.


  Commit: d610f051045163f781ebc6da2e97414deafecd1e
      https://github.com/llvm/llvm-project/commit/d610f051045163f781ebc6da2e97414deafecd1e
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    A llvm/test/Transforms/CorrelatedValuePropagation/min-max.ll

  Log Message:
  -----------
  [NFC][CVP] Add tests for @llvm.[us]{min,max}() intrinsics


  Commit: 9829f5e6b1bca9b61efc629770d28bb9014dec45
      https://github.com/llvm/llvm-project/commit/9829f5e6b1bca9b61efc629770d28bb9014dec45
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/include/llvm/Analysis/LazyValueInfo.h
    M llvm/lib/Analysis/LazyValueInfo.cpp
    M llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
    M llvm/test/Transforms/CorrelatedValuePropagation/min-max.ll

  Log Message:
  -----------
  [CVP] @llvm.[us]{min,max}() intrinsics handling

If we can tell that either one of the arguments is taken,
bypass the intrinsic.

Notably, we are indeed fine with non-strict predicate:
* UL: https://alive2.llvm.org/ce/z/69qVW9 https://alive2.llvm.org/ce/z/kNFTKf
      https://alive2.llvm.org/ce/z/AvaPw2 https://alive2.llvm.org/ce/z/oxo53i
* UG: https://alive2.llvm.org/ce/z/wxHeGH https://alive2.llvm.org/ce/z/Lf76qx
* SL: https://alive2.llvm.org/ce/z/hkeTGS https://alive2.llvm.org/ce/z/eR_b-W
* SG: https://alive2.llvm.org/ce/z/wEqRm7 https://alive2.llvm.org/ce/z/FpAsVr

Much like with all other comparison handling in CVP,
while we could sort-of handle two Value's,
at least for plain ICmpInst it does not appear to be worthwhile.

This only fires 78 times on test-suite + dt + rs,
but we don't canonicalize to these yet. (only SCEV produces them)


  Commit: 82fbc5d45b0c2fc9050d1d5e335e35afb4ab2611
      https://github.com/llvm/llvm-project/commit/82fbc5d45b0c2fc9050d1d5e335e35afb4ab2611
  Author: patacca <patacca at autistici.org>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M polly/include/polly/CodeGen/IslAst.h
    M polly/include/polly/CodeGen/IslNodeBuilder.h
    M polly/lib/CodeGen/IslAst.cpp
    M polly/lib/CodeGen/IslNodeBuilder.cpp

  Log Message:
  -----------
  [Polly] Partially refactoring of IslAstInfo and IslNodeBuilder to use isl++. NFC.

Polly use algorithms from the Integer Set Library (isl), which is a library written in C and which is incompatible with the rest of the LLVM as it is written in C++.

Changes made:
 - Refactoring the following methods of class IslAstInfo
   - isParallel() isExecutedInParallel() isReductionParallel() getSchedule() getMinimalDependenceDistance() getBrokenReductions()
 - Refactoring the following methods of class IslNodeBuilder
   - getReferencesInSubtree() getScheduleForAstNode()
 - Refactoring function getBrokenReductionsStr()
 - Fixed the mismatching function declaration for getScheduleForAstNode()

Reviewed By: Meinersbur

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


  Commit: 6210261ecb21c84c9a440a76c0ccbc8ad211bed3
      https://github.com/llvm/llvm-project/commit/6210261ecb21c84c9a440a76c0ccbc8ad211bed3
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/TargetPassConfig.cpp
    M llvm/test/CodeGen/AArch64/O0-pipeline.ll
    M llvm/test/CodeGen/AArch64/O3-pipeline.ll
    M llvm/test/CodeGen/ARM/O3-pipeline.ll
    M llvm/test/CodeGen/Generic/addr-label.ll
    M llvm/test/CodeGen/X86/O0-pipeline.ll
    M llvm/test/CodeGen/X86/opt-pipeline.ll
    M llvm/test/CodeGen/X86/select_meta.ll
    M llvm/test/Other/2010-05-06-Printer.ll

  Log Message:
  -----------
  Remove "Rewrite Symbols" from codegen pipeline

It breaks up the function pass manager in the codegen pipeline.

With empty parameters, it looks at the -mllvm flag -rewrite-map-file.
This is likely not in use.

Add a check that we only have one function pass manager in the codegen
pipeline.

This required reverting commit 9583a3f2625818b78c0cf6d473cdedb9f23ad82c:
"[AsmPrinter] Delete dead takeDeletedSymbsForFunction()".
This was not NFC as initially thought. By coalescing two function
psas managers, this exposed the reverted code as necessary.
addr-label.ll was crashing due to an emitted blockaddress's block being
removed but the label not emitted.

Some tests relied on the fact that we had a module pass somewhere in the
codegen pipeline.

Reviewed By: rnk

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


  Commit: c88b87f9ce6490145e28a9c82640547f3e99bf57
      https://github.com/llvm/llvm-project/commit/c88b87f9ce6490145e28a9c82640547f3e99bf57
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2021-04-10 (Sat, 10 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/TargetPassConfig.cpp
    M llvm/test/CodeGen/AArch64/O0-pipeline.ll
    M llvm/test/CodeGen/AArch64/O3-pipeline.ll
    M llvm/test/CodeGen/ARM/O3-pipeline.ll
    M llvm/test/CodeGen/Generic/addr-label.ll
    M llvm/test/CodeGen/X86/O0-pipeline.ll
    M llvm/test/CodeGen/X86/opt-pipeline.ll
    M llvm/test/CodeGen/X86/select_meta.ll
    M llvm/test/Other/2010-05-06-Printer.ll

  Log Message:
  -----------
  Revert "Remove "Rewrite Symbols" from codegen pipeline"

This reverts commit 6210261ecb21c84c9a440a76c0ccbc8ad211bed3.

addr-label.ll crashes on armv7.


  Commit: e8b0542078515b315d98b2ae3193bc7dae4a2430
      https://github.com/llvm/llvm-project/commit/e8b0542078515b315d98b2ae3193bc7dae4a2430
  Author: Sushma Unnibhavi <sushmaunnibhavi at gmail.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/docs/LangRef.rst

  Log Message:
  -----------
  Missing syntax highlighting for LLVM IR in Langref

Added syntax highlighting

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


  Commit: 002c6c1187d642fd920758973154e4a856acefb0
      https://github.com/llvm/llvm-project/commit/002c6c1187d642fd920758973154e4a856acefb0
  Author: Sushma Unnibhavi <sushmaunnibhavi at gmail.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/docs/GlobalISel/GenericOpcode.rst

  Log Message:
  -----------
  Typo fix

Reviewed By: dsanders

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


  Commit: 37388b8ad13fcac08823937c54236bc8f081338a
      https://github.com/llvm/llvm-project/commit/37388b8ad13fcac08823937c54236bc8f081338a
  Author: Zhang Qing Shan <zhangqingshan.zll at bytedance.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/CREDITS.TXT

  Log Message:
  -----------
  Update personal info in CREDITS.TXT


  Commit: ae103003b219d0084a785c75920f24f56193e9f4
      https://github.com/llvm/llvm-project/commit/ae103003b219d0084a785c75920f24f56193e9f4
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M libcxx/utils/ci/buildkite-pipeline.yml
    M libcxx/utils/ci/run-buildbot

  Log Message:
  -----------
  [libc++] [CI] Validate the output of the generated scripts.

This adds a CI job validating that the output of
utils/generate_feature_test_macro_components.py,
libcxx/utils/generate_header_inclusion_tests.py, and
utils/generate_header_tests.py are up to date.

The validation method has been copied from the Format job.

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


  Commit: ee6a17eb9fc46c417d3d9ec11a218681e03bf18e
      https://github.com/llvm/llvm-project/commit/ee6a17eb9fc46c417d3d9ec11a218681e03bf18e
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/LoopIdiom/X86/left-shift-until-bittest.ll

  Log Message:
  -----------
  [NFC][LoopIdiom] Regenerate left-shift-until-bittest.ll


  Commit: 0ac1920d035f4a0e6df772de998eefe874a44f1d
      https://github.com/llvm/llvm-project/commit/0ac1920d035f4a0e6df772de998eefe874a44f1d
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/LoopIdiom/X86/left-shift-until-bittest.ll

  Log Message:
  -----------
  [NFC][LoopIdiom] left-shift-until-bittest: add small-bitwidth tests


  Commit: 005881e96e5fedab66f71cfa09558909d21e4a00
      https://github.com/llvm/llvm-project/commit/005881e96e5fedab66f71cfa09558909d21e4a00
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
    M llvm/test/Transforms/LoopIdiom/X86/left-shift-until-bittest.ll

  Log Message:
  -----------
  [LoopIdiom] left-shift-until-bittest: set all allowed no-wrap flags on add/sub

I've checked each one of these with alive2,
and this is both correct and precise.


  Commit: d1ebdbff123acea85f05fe088e260f4762db3b47
      https://github.com/llvm/llvm-project/commit/d1ebdbff123acea85f05fe088e260f4762db3b47
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/LoopVectorize/interleaved-accesses.ll

  Log Message:
  -----------
  [NFC][LoopVectorize] Autogenerate interleaved-accesses.ll


  Commit: 811167b1f6a611363ce43c8e27e71b1494af6fc5
      https://github.com/llvm/llvm-project/commit/811167b1f6a611363ce43c8e27e71b1494af6fc5
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/test/Transforms/InstCombine/add.ll

  Log Message:
  -----------
  [NFC][InstCombine] Add a few test of adding to add-like or


  Commit: a36bb7fd761942577b0d20d7f9b2bac57ffcd986
      https://github.com/llvm/llvm-project/commit/a36bb7fd761942577b0d20d7f9b2bac57ffcd986
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
    M llvm/test/Transforms/InstCombine/add.ll
    M llvm/test/Transforms/LoopVectorize/interleaved-accesses.ll

  Log Message:
  -----------
  [InstCombine] (X | Op01C) + Op1C --> X + (Op01C + Op1C) iff the or is actually an add

https://alive2.llvm.org/ce/z/Coc5yf


  Commit: 07c13b3b5f67b9518323864723a8797cc6d60a43
      https://github.com/llvm/llvm-project/commit/07c13b3b5f67b9518323864723a8797cc6d60a43
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    A llvm/test/Transforms/InstCombine/get-lowbitmask-upto-and-including-bit.ll

  Log Message:
  -----------
  [NFC][InstCombine] Add tests for "get low bit mask upto and including bit X" pattern


  Commit: 91248e2db93a896a374098703567b0b1c8b1ad86
      https://github.com/llvm/llvm-project/commit/91248e2db93a896a374098703567b0b1c8b1ad86
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
    M llvm/test/Transforms/InstCombine/get-lowbitmask-upto-and-including-bit.ll

  Log Message:
  -----------
  [InstCombine] Improve "get low bit mask upto and including bit X" pattern

https://alive2.llvm.org/ce/z/3u-48R


  Commit: 48d69edadef1e4155106b183cd7219a1086454fe
      https://github.com/llvm/llvm-project/commit/48d69edadef1e4155106b183cd7219a1086454fe
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/test/CodeGen/RISCV/rv32zbb-zbp.ll
    M llvm/test/CodeGen/RISCV/rv64zbb-zbp.ll

  Log Message:
  -----------
  [RISCV] Add i8 and i16 srli and srai tests to Zbb/Zbp test files. NFC

These require the input to be zero or sign extended. If we have
sext.b, sext.h or zext.h instructions we can use them. Otherwise
we need to use a pair of shifts to accomplish the zero/sign extend
and the final shift.

We don't currently use zext.h when it is available.


  Commit: bc0e0527305d41bc55b27c60581749cb3ebdd5af
      https://github.com/llvm/llvm-project/commit/bc0e0527305d41bc55b27c60581749cb3ebdd5af
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfoB.td
    M llvm/test/CodeGen/RISCV/rv32zbb-zbp.ll
    M llvm/test/CodeGen/RISCV/rv64zbb-zbp.ll

  Log Message:
  -----------
  [RISCV] Teach targetShrinkDemandedConstant to preserve (and X, 0xffff) when zext.h is supported.

Similar to what we do for zext.w.

Disable the (srl (and X, 0xffff), C) custom isel when zext.h is
available.


  Commit: 3ae71226ef4963c01792e7679a21fd0fb61b40d6
      https://github.com/llvm/llvm-project/commit/3ae71226ef4963c01792e7679a21fd0fb61b40d6
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td
    M llvm/test/CodeGen/RISCV/rvv/vfwadd.w-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vfwadd.w-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/vfwsub.w-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vfwsub.w-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/vwadd.w-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vwadd.w-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/vwaddu.w-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vwaddu.w-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/vwsub.w-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vwsub.w-rv64.ll
    M llvm/test/CodeGen/RISCV/rvv/vwsubu.w-rv32.ll
    M llvm/test/CodeGen/RISCV/rvv/vwsubu.w-rv64.ll

  Log Message:
  -----------
  [RISCV] Drop earlyclobber constraint from vwadd(u).wx, vwsub(u).wx, vfwadd.wf and vfwsub.wf.

The first source has the same EEW as the destination and the other
source is a scalar so the overlap constraints don't apply to
the unmasked version.

For the masked version we have a constraint that the destination
can't be V0 so that covers the only overlap issue there.

Reviewed By: khchen

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


  Commit: 38c799bce8016f7487067a031b62cf98069aaa4d
      https://github.com/llvm/llvm-project/commit/38c799bce8016f7487067a031b62cf98069aaa4d
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/bmi.ll
    M llvm/test/CodeGen/X86/movmsk-cmp.ll
    M llvm/test/CodeGen/X86/pr27202.ll
    M llvm/test/CodeGen/X86/vector-reduce-and-bool.ll

  Log Message:
  -----------
  [X86] Fold cmpeq/ne(and(X,Y),Y) --> cmpeq/ne(and(~X,Y),0)

Followup to D100177, handle an similar (demorgan inverse style) case from PR47797 as well

The AVX512 test cases could be further improved if we folded not(iX bitcast(vXi1)) -> (iX bitcast(not(vXi1)))

Alive2: https://alive2.llvm.org/ce/z/AnA_-W


  Commit: 13bdac57093a01f7babe5d4919933d1e3ebd930b
      https://github.com/llvm/llvm-project/commit/13bdac57093a01f7babe5d4919933d1e3ebd930b
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp

  Log Message:
  -----------
  [X86] combineXor - Pull out repeated getOperand() calls. NFCI.


  Commit: ea8dd3ee2eb457a8c3975e1f64caa7a58169e02e
      https://github.com/llvm/llvm-project/commit/ea8dd3ee2eb457a8c3975e1f64caa7a58169e02e
  Author: Thomas Lively <tlively at google.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
    M llvm/test/CodeGen/WebAssembly/simd-intrinsics.ll
    M llvm/test/CodeGen/WebAssembly/simd-reductions.ll
    M llvm/test/MC/Disassembler/WebAssembly/wasm.txt
    M llvm/test/MC/WebAssembly/simd-encodings.s

  Log Message:
  -----------
  [WebAssembly] Update v128.any_true

In the final SIMD spec, there is only a single v128.any_true instruction, rather
than one for each lane interpretation because the semantics do not depend on the
lane interpretation.

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


  Commit: 231b87618bb61b24674d060721f7004057da9336
      https://github.com/llvm/llvm-project/commit/231b87618bb61b24674d060721f7004057da9336
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelLowering.cpp
    M llvm/test/CodeGen/X86/movmsk-cmp.ll
    M llvm/test/CodeGen/X86/vector-reduce-and-bool.ll

  Log Message:
  -----------
  [X86][AVX512] Fold not(kmov(x)) -> kmov(not(x)) and not(widen_subvector(x)) -> widen_subvector(not(x))

Improve AVX512 mask inversion, rG38c799bce801 exposed some missing opportunities to move scalar not() back onto the boolvector types for folding with setcc etc.


  Commit: 3219d981d45e5df9c85039dee88cfc51cd17069b
      https://github.com/llvm/llvm-project/commit/3219d981d45e5df9c85039dee88cfc51cd17069b
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    A llvm/test/Transforms/VectorCombine/AArch64/load-extractelement-scalarization.ll

  Log Message:
  -----------
  [VectorCombine] Add tests for load/extract scalarization.

Add tests where scalarizing a vector load + extract is profitable.


  Commit: 816cf4146280fbe45683555558fa393b6ff41beb
      https://github.com/llvm/llvm-project/commit/816cf4146280fbe45683555558fa393b6ff41beb
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    A llvm/test/Transforms/LoopUnroll/AArch64/large-vector-ops.ll

  Log Message:
  -----------
  [LoopUnroll] Add AArch64 test case with large vector ops.

Add test case to illustrate over-eager unrolling on AArch64, due to the
cost-model not estimating the size of vector loads/stores accurately.


  Commit: 6d44b3c56d4a80b16f144a52bc841111c0b4d2c2
      https://github.com/llvm/llvm-project/commit/6d44b3c56d4a80b16f144a52bc841111c0b4d2c2
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/lib/Analysis/DomTreeUpdater.cpp

  Log Message:
  -----------
  [NFCI][DomTreeUpdater] applyUpdates(): reserve space for updates first

While, indeed, we may end up pushing less updates that we'd reserve space
for, self-dominating updates aren't often enough for that to matter.
But this should matter for normal updates.


  Commit: 2def9c3d8ed9df5a5dc737343c891ac17de1afc1
      https://github.com/llvm/llvm-project/commit/2def9c3d8ed9df5a5dc737343c891ac17de1afc1
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Utils/Local.cpp

  Log Message:
  -----------
  [NFCI][Local] TryToSimplifyUncondBranchFromEmptyBlock(): improve Dominator Tree updating

First, we don't need vector-ness for the predecessor lists.

Secondly, like elsewhere, do insertions before deletions.

Lastly, the check that we actually need to insert an edge,
that it doesn't exist already, is backwards. Instead of
looking at successors of every single 'PredOfBB',
just always look at predecessors of the 'Succ'.
The result is always the same, but we avoid *really* inefficient code.


  Commit: e5692a564a73ef63b7baaf80c2b7a62ad74e9e66
      https://github.com/llvm/llvm-project/commit/e5692a564a73ef63b7baaf80c2b7a62ad74e9e66
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Utils/BasicBlockUtils.cpp

  Log Message:
  -----------
  [NFCI][BasicBlockUtils] MergeBlockIntoPredecessor(): improve Dominator Tree updating

Same as with TryToSimplifyUncondBranchFromEmptyBlock() patch.


  Commit: 0699da1569870a4f7cf26534b87ca3c3b14caf3b
      https://github.com/llvm/llvm-project/commit/0699da1569870a4f7cf26534b87ca3c3b14caf3b
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Utils/Local.cpp

  Log Message:
  -----------
  [NFCI][Local] MergeBasicBlockIntoOnlyPred(): improve Dominator Tree updating

Same as with TryToSimplifyUncondBranchFromEmptyBlock()/MergeBlockIntoPredecessor() patch.


  Commit: 13fca9d8161e3a203dce6d7647763a07d39bed3f
      https://github.com/llvm/llvm-project/commit/13fca9d8161e3a203dce6d7647763a07d39bed3f
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp

  Log Message:
  -----------
  [NFCI][SimplifyCFG] mergeEmptyReturnBlocks(): improve Dominator Tree updating

Same as with previous patches.


  Commit: 8fc8c745cffb1a7ae3a8ed5d0a4962b193d7cd78
      https://github.com/llvm/llvm-project/commit/8fc8c745cffb1a7ae3a8ed5d0a4962b193d7cd78
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp

  Log Message:
  -----------
  [NFCI][SimplifyCFG] PerformValueComparisonIntoPredecessorFolding(): improve Dominator Tree updating

Same as with previous patches.


  Commit: ff902080a9fbf16fdeb076d3aadc8df6eea1cc04
      https://github.com/llvm/llvm-project/commit/ff902080a9fbf16fdeb076d3aadc8df6eea1cc04
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
    M llvm/test/CodeGen/RISCV/alu16.ll
    M llvm/test/CodeGen/RISCV/bswap-ctlz-cttz-ctpop.ll
    M llvm/test/CodeGen/RISCV/div.ll
    M llvm/test/CodeGen/RISCV/rv64zbb-zbp.ll
    M llvm/test/CodeGen/RISCV/rvv/fixed-vectors-bswap.ll

  Log Message:
  -----------
  [RISCV] Use SLLI/SRLI instead of SLLIW/SRLIW for (srl (and X, 0xffff), C) custom isel on RV64.

We don't need the sign extending behavior here and SLLI/SRLI
are able to compress to C.SLLI/C.SRLI.


  Commit: cb4c793e46bb01914e07d1c66238133e6d672321
      https://github.com/llvm/llvm-project/commit/cb4c793e46bb01914e07d1c66238133e6d672321
  Author: Craig Topper <craig.topper at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVISelLowering.cpp

  Log Message:
  -----------
  [RISCV] Update computeKnownBitsForTargetNode to treat READ_VLENB as being 16 byte aligned.

According to the 0.10 spec, VLEN is at least 128 bits and is a
power of 2.


  Commit: a3bfddbb6a27a1e2d34410068b9c553221fda8c3
      https://github.com/llvm/llvm-project/commit/a3bfddbb6a27a1e2d34410068b9c553221fda8c3
  Author: Jim Lin <jim at andestech.com>
  Date:   2021-04-12 (Mon, 12 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td

  Log Message:
  -----------
  [RISCV][NFC] Remove unneeded explict XLenVT type on codegen patterns

Customized SDNode has been specified the explict XLenVT type.

Reviewed By: craig.topper

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


  Commit: ccc624bfd417c92b30581becf6974b42aba82a10
      https://github.com/llvm/llvm-project/commit/ccc624bfd417c92b30581becf6974b42aba82a10
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vwadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vwsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vwadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vwsub.c

  Log Message:
  -----------
  [RISCV][Clang] Add RVV Widening Integer Add/Subtract intrinsic functions.

Reviewed By: craig.topper

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

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


  Commit: 007ea0e736432ef1f6be7d88378012822d96767b
      https://github.com/llvm/llvm-project/commit/007ea0e736432ef1f6be7d88378012822d96767b
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfdiv.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmax.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmin.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmul.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfrdiv.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfrsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfsgnj.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfdiv.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmax.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmin.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmul.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfrdiv.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfrsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfsgnj.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfsub.c

  Log Message:
  -----------
  [RISCV][Clang] Add some RVV Floating-Point intrinsic functions.

Support the following instructions which have the same class.
1. Vector Single-Width Floating-Point Subtract Instructions
2. Vector Single-Width Floating-Point Multiply/Divide Instructions
3. Vector Floating-Point MIN/MAX Instructions
4. Vector Floating-Point Sign-Injection Instructions

Reviewed By: craig.topper

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

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


  Commit: 98a3ff9d05250807867be3dd82fdb10ee5c4030a
      https://github.com/llvm/llvm-project/commit/98a3ff9d05250807867be3dd82fdb10ee5c4030a
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmacc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmsac.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfnmacc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfnmadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfnmsac.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfnmsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwmacc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwmsac.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwmul.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwnmacc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwnmsac.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfeq.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfge.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfgt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfle.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmflt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmfne.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmacc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmsac.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfnmacc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfnmadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfnmsac.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfnmsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwadd.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwmacc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwmsac.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwmul.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwnmacc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwnmsac.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwsub.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmfeq.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmfge.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmfgt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmfle.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmflt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmfne.c

  Log Message:
  -----------
  [RISCV][Clang] Add more RVV Floating-Point intrinsic functions.

Support below instructions.
1. Vector Widening Floating-Point Add/Subtract Instructions
2. Vector Widening Floating-Point Multiply
3. Vector Single-Width Floating-Point Fused Multiply-Add Instructions
4. Vector Widening Floating-Point Fused Multiply-Add Instructions
5. Vector Floating-Point Compare Instructions

Reviewed By: craig.topper, HsiangKai

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

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


  Commit: 5f7739b60e983dadc3c669b0ddf930d4d8242c4c
      https://github.com/llvm/llvm-project/commit/5f7739b60e983dadc3c669b0ddf930d4d8242c4c
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfclass.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfmerge.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfrec7.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfrsqrt7.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfsqrt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfclass.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfmerge.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfrec7.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfrsqrt7.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfsqrt.c

  Log Message:
  -----------
  [RISCV][Clang] Add some RVV Floating-Point intrinsic functions.

Support vfclass, vfmerge, vfrec7, vfrsqrt7, vfsqrt instructions.

Reviewed By: craig.topper

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

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


  Commit: 01fa222b6d9febc5f5c654ce40137380b6e4c540
      https://github.com/llvm/llvm-project/commit/01fa222b6d9febc5f5c654ce40137380b6e4c540
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfcvt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfncvt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwcvt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfcvt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfncvt.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwcvt.c
    M clang/utils/TableGen/RISCVVEmitter.cpp

  Log Message:
  -----------
  [RISCV][Clang] Add RVV Type-Convert intrinsic functions.

Fix extension macro condition.

Support below instructions:
1. Single-Width Floating-Point/Integer Type-Convert Instructions
2. Widening Floating-Point/Integer Type-Convert Instructions
3. Narrowing Floating-Point/Integer Type-Convert Instructions

Reviewed By: craig.topper

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


  Commit: 07c3854a75bcbb7521f27e1e775bc79f4d0340f7
      https://github.com/llvm/llvm-project/commit/07c3854a75bcbb7521f27e1e775bc79f4d0340f7
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmerge.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmerge.c

  Log Message:
  -----------
  [RISCV][Clang] Add RVV merge intrinsic functions.

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

Reviewed By: craig.topper

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


  Commit: c680b0dabf367046c9acb397cddc5e3a2194bbaa
      https://github.com/llvm/llvm-project/commit/c680b0dabf367046c9acb397cddc5e3a2194bbaa
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfredmax.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfredmin.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfredsum.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfwredsum.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredand.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredmax.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredmin.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredsum.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vredxor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vwredsum.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfredmax.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfredmin.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfredsum.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwredosum.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfwredsum.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vredand.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vredmax.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vredmin.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vredor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vredsum.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vredxor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vwredsum.c

  Log Message:
  -----------
  [RISCV][Clang] Add all RVV Reduction intrinsic functions.

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

Reviewed By: craig.topper

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


  Commit: e5a821926407713a3955409a74089de6ebf36493
      https://github.com/llvm/llvm-project/commit/e5a821926407713a3955409a74089de6ebf36493
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vlse.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vse.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsoxei.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsse.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vsuxei.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics/vle.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vlse.c
    M clang/test/CodeGen/RISCV/rvv-intrinsics/vse.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vsoxei.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vsse.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vsuxei.c

  Log Message:
  -----------
  [RISCV][Clang] Add more RVV load/store intrinsic functions.

Support the following instructions.
1. Mask load and store
2. Vector Strided Instructions
3. Vector Indexed Store Instructions

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

Reviewed By: craig.topper

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


  Commit: a8fc0e445cad91a5c2f207e39ee9220253eb5578
      https://github.com/llvm/llvm-project/commit/a8fc0e445cad91a5c2f207e39ee9220253eb5578
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfirst.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vid.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/viota.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmand.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmnand.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmnor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsbf.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsif.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmsof.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmxnor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vmxor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vpopc.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfirst.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vid.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/viota.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmand.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmclr.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmnand.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmnor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmsbf.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmset.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmsif.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmsof.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmxnor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vmxor.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vpopc.c
    M clang/utils/TableGen/RISCVVEmitter.cpp
    M llvm/include/llvm/IR/IntrinsicsRISCV.td

  Log Message:
  -----------
  [RISCV][Clang] Add all RVV Mask intrinsic functions.

1. Redefine vpopc and vfirst IR intrinsic so it could adapt on
clang tablegen generator which always appends a type for vl
in IntrinsicType of clang codegen.
2. Remove `c` type transformer and add `u` and `l` for unsigned long
and long type.

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

Reviewed By: craig.topper

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


  Commit: 59d5b8c27b43021887dbf63e23800c340386080c
      https://github.com/llvm/llvm-project/commit/59d5b8c27b43021887dbf63e23800c340386080c
  Author: Zakk Chen <zakk.chen at sifive.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/riscv_vector.td
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfslide1down.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vfslide1up.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vrgather.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vslide1down.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vslide1up.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vslidedown.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics-overloaded/vslideup.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfslide1down.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vfslide1up.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vrgather.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vslide1down.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vslide1up.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vslidedown.c
    A clang/test/CodeGen/RISCV/rvv-intrinsics/vslideup.c

  Log Message:
  -----------
  [RISCV][Clang] Add some RVV Permutation intrinsic functions.

Support the following instructions.
1. Vector Slide Instructions
2. Vector Register Gather Instructions
3. Vector Compress Instruction

Authored-by: Roger Ferrer Ibanez <rofirrim at gmail.com>
Co-Authored-by: Zakk Chen <zakk.chen at sifive.com>

Reviewed By: craig.topper

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


  Commit: ece7345859c38acb015243632822f41214d01adc
      https://github.com/llvm/llvm-project/commit/ece7345859c38acb015243632822f41214d01adc
  Author: Qiu Chaofan <qiucofan at cn.ibm.com>
  Date:   2021-04-12 (Mon, 12 Apr 2021)

  Changed paths:
    M llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
    M llvm/lib/Target/PowerPC/PPCISelLowering.cpp
    M llvm/test/CodeGen/PowerPC/f128-compare.ll
    M llvm/test/CodeGen/PowerPC/fp-strict-fcmp.ll

  Log Message:
  -----------
  [PowerPC] Lower f128 SETCC/SELECT_CC as libcall if p9vector disabled

XSCMPUQP is not available for pre-P9 subtargets. This patch will lower
them into libcall for correct behavior on power7/power8.

Reviewed By: steven.zhang

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


  Commit: 3a6a80b641bcffc570d5bc187b45f7bb9a2e7ce2
      https://github.com/llvm/llvm-project/commit/3a6a80b641bcffc570d5bc187b45f7bb9a2e7ce2
  Author: yifeng.dongyifeng <yifeng.dongyifeng at alibaba-inc.com>
  Date:   2021-04-12 (Mon, 12 Apr 2021)

  Changed paths:
    M clang/lib/CodeGen/CGCoroutine.cpp
    M clang/lib/CodeGen/CGDebugInfo.cpp
    M clang/lib/CodeGen/CGDebugInfo.h
    M clang/lib/CodeGen/CGDecl.cpp
    M clang/lib/CodeGen/CodeGenFunction.cpp
    M clang/lib/CodeGen/CodeGenFunction.h
    A clang/test/CodeGenCoroutines/coro-dwarf.cpp

  Log Message:
  -----------
  [Clang][Coroutine][DebugInfo] In c++ coroutine, clang will emit different debug info variables for parameters and move-parameters.

The first one is the real parameters of the coroutine function, the
other one just for copying parameters to the coroutine frame.

Considering the following c++ code:
```
struct coro {
  ...
};

coro foo(struct test & t) {
  ...
  co_await suspend_always();
    ...
    co_await suspend_always();
    ...
    co_await suspend_always();
}

int main(int argc, char *argv[]) {
  auto c = foo(...);
    c.handle.resume();
      ...
  }
```

Function foo is the standard coroutine function, and it has only
one parameter named t (ignoring this at first),
when we use the llvm code to compile this function, we can get the
following ir:

```
!2921 = distinct !DISubprogram(name: "foo", linkageName:
"_ZN6Object3fooE4test", scope: !2211, file: !45, li\
ne: 48, type: !2329, scopeLine: 48, flags: DIFlagPrototyped |
DIFlagAllCallsDescribed, spFlags: DISPFlagDefi\
nition | DISPFlagOptimized, unit: !44, declaration: !2328,
retainedNodes: !2922)
!2924 = !DILocalVariable(name: "t", arg: 2, scope: !2921, file: !45,
line: 48, type: !838)
...
!2926 = !DILocalVariable(name: "t", scope: !2921, type: !838, flags:
DIFlagArtificial)
```
We can find there are two `the same` DIVariable named t in the same
dwarf scope for foo.resume.
And when we try to use llvm-dwarfdump to dump the dwarf info of this
elf, we get the following output:

```
0x00006684:   DW_TAG_subprogram
                DW_AT_low_pc    (0x00000000004013a0)
                DW_AT_high_pc   (0x00000000004013a8)
                DW_AT_frame_base        (DW_OP_reg7 RSP)
                DW_AT_object_pointer    (0x0000669c)
                DW_AT_GNU_all_call_sites        (true)
                DW_AT_specification     (0x00005b5c "_ZN6Object3fooE4test")

0x000066a5:     DW_TAG_formal_parameter
                DW_AT_name    ("t")
                DW_AT_decl_file       ("/disk1/yifeng.dongyifeng/my_code/llvm/build/bin/coro-debug-1.cpp")
                DW_AT_decl_line       (48)
                DW_AT_type    (0x00004146 "test")

0x000066ba:     DW_TAG_variable
                  DW_AT_name    ("t")
                  DW_AT_type    (0x00004146 "test")
                  DW_AT_artificial      (true)
```
The elf also has two 't' in the same scope.
But unluckily, it might let the debugger
confused. And failed to print parameters for O0 or above.
This patch will make coroutine parameters and move
parameters use the same DIVar and try to fix the problems
that I mentioned before.

Test Plan: check-clang

Reviewed By: aprantl, jmorse

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


  Commit: bb346146a52e3093979d51454ba615194d51c709
      https://github.com/llvm/llvm-project/commit/bb346146a52e3093979d51454ba615194d51c709
  Author: Chen Zheng <czhengsz at cn.ibm.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
    A llvm/test/CodeGen/Generic/pr49872.ll

  Log Message:
  -----------
  [Debug-Info] make fortran CHARACTER(1) type as valid unsigned type

This resolves https://bugs.llvm.org/show_bug.cgi?id=49872

Reviewed By: aprantl

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


  Commit: 74283fc8534b729f5e15ae934de15c01fd6db9c0
      https://github.com/llvm/llvm-project/commit/74283fc8534b729f5e15ae934de15c01fd6db9c0
  Author: Jez Ng <jezng at fb.com>
  Date:   2021-04-11 (Sun, 11 Apr 2021)

  Changed paths:
    M lld/test/MachO/arm64-reloc-got-load.s
    M lld/test/MachO/arm64-reloc-pointer-to-got.s
    M lld/test/MachO/arm64-relocs.s
    M lld/test/MachO/indirect-symtab.s
    M lld/test/MachO/invalid/bad-got-to-dylib-tlv-reference.s
    M lld/test/MachO/invalid/bad-tlv-def.s
    M lld/test/MachO/invalid/bad-tlv-opcode.s
    M lld/test/MachO/mattrs.ll
    M lld/test/MachO/objc.s
    M lld/test/MachO/tlv-dylib.s
    M lld/test/MachO/tlv.s
    M lld/test/MachO/weak-binding.s
    M lld/test/MachO/weak-reference.s
    M lld/test/MachO/why-load.s
    M lld/test/MachO/x86-64-reloc-got-load.s

  Log Message:
  -----------
  [lld-macho][nfc] Convert tabs to spaces


  Commit: 5cb47be4104558b2a69dc3df667dbe046bdcce6d
      https://github.com/llvm/llvm-project/commit/5cb47be4104558b2a69dc3df667dbe046bdcce6d
  Author: Freddy Ye <freddy.ye at intel.com>
  Date:   2021-04-12 (Mon, 12 Apr 2021)

  Changed paths:
    M clang/test/Preprocessor/predefined-arch-macros.c
    M llvm/lib/Support/X86TargetParser.cpp
    M llvm/lib/Target/X86/X86.td
    M llvm/test/CodeGen/X86/clwb.ll

  Log Message:
  -----------
  [X86] Remove FeatureCLWB from FeaturesICLClient

Reviewed By: craig.topper

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


  Commit: 36b932d6a385bb97efe17818a7a47d29d2d8acf3
      https://github.com/llvm/llvm-project/commit/36b932d6a385bb97efe17818a7a47d29d2d8acf3
  Author: Evgeniy Brevnov <ybrevnov at azul.com>
  Date:   2021-04-12 (Mon, 12 Apr 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/NaryReassociate.cpp
    A llvm/test/Transforms/NaryReassociate/nary-req.ll

  Log Message:
  -----------
  [NARY] Don't optimize min/max if there are side uses

Say we have
%1=min(%a,%b)
%2=min(%b,%c)
%3=min(%2,%a)

The optimization will try to reassociate the later one so that we can rewrite it to %3=min(%1, %c) and remove %2.
But if %2 has another uses outside of %3 then we can't remove %2 and end up with:

%1=min(%a,%b)
%2=min(%b,%c)
%3=min(%1, %c)

This doesn't harm by itself except it is not profitable and changes IR for no good reason.
What is bad it triggers next iteration which finds out that optimization is applicable to %2 and %3 and generates:

%1=min(%a,%b)
%2=min(%b,%c)
%3=min(%1,%c)
%4=min(%2,%a)

and so on...

The solution is to prevent optimization in the first place if intermediate result (%2) has side uses and
known to be not removed.

Reviewed By: mkazantsev

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


  Commit: 747111ea71f5ede10ebd03b8c1197b1f1e50e89f
      https://github.com/llvm/llvm-project/commit/747111ea71f5ede10ebd03b8c1197b1f1e50e89f
  Author: Bing1 Yu <bing1.yu at intel.com>
  Date:   2021-04-12 (Mon, 12 Apr 2021)

  Changed paths:
    M llvm/lib/Target/X86/X86LowerAMXIntrinsics.cpp
    M llvm/test/CodeGen/X86/AMX/amx-low-intrinsics.ll

  Log Message:
  -----------
  [X86] Pass to transform tdpbsud&tdpbusd&tdpbuud intrinsics to scalar operation

Reviewed By: pengfei

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


  Commit: dd4c999c2316288f7c560f5c18077642c14b50df
      https://github.com/llvm/llvm-project/commit/dd4c999c2316288f7c560f5c18077642c14b50df
  Author: Jim Lin <jim at andestech.com>
  Date:   2021-04-12 (Mon, 12 Apr 2021)

  Changed paths:
    M compiler-rt/CMakeLists.txt

  Log Message:
  -----------
  fix typo in a CMake SANITIZER_CAN_USE_CXXABI variable initial definition

The current variable name isn't used anywhere else, which indicates it's
a typo.  Let's fix it before someone copy+pastes it somewhere else.

Reviewed By: Jim

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


  Commit: 8a2d375a77bfd9d73f7dbb12bed5c8a014aa2a53
      https://github.com/llvm/llvm-project/commit/8a2d375a77bfd9d73f7dbb12bed5c8a014aa2a53
  Author: Jim Lin <jim at andestech.com>
  Date:   2021-04-12 (Mon, 12 Apr 2021)

  Changed paths:
    M clang/lib/AST/VTableBuilder.cpp

  Log Message:
  -----------
  [NFC] [Clang]: fix spelling mistake in assert message

Reviewed By: Jim

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


  Commit: 2dd22da965ffc1623421cb8163947d7e679ce187
      https://github.com/llvm/llvm-project/commit/2dd22da965ffc1623421cb8163947d7e679ce187
  Author: Mikael Holmen <mikael.holmen at ericsson.com>
  Date:   2021-04-12 (Mon, 12 Apr 2021)

  Changed paths:
    M clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp

  Log Message:
  -----------
  [libtooling][clang-tidy] Fix compiler warnings in testcase [NFC]

Without the fix we get:

06:31:09 In file included from ../../clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp:3:
06:31:09 ../utils/unittest/googletest/include/gtest/gtest.h:1392:11: error: comparison of integers of different signs: 'const int' and 'const unsigned int' [-Werror,-Wsign-compare]
06:31:09   if (lhs == rhs) {
06:31:09       ~~~ ^  ~~~
06:31:09 ../utils/unittest/googletest/include/gtest/gtest.h:1421:12: note: in instantiation of function template specialization 'testing::internal::CmpHelperEQ<int, unsigned int>' requested here
06:31:09     return CmpHelperEQ(lhs_expression, rhs_expression, lhs, rhs);
06:31:09            ^
06:31:09 ../../clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp:60:3: note: in instantiation of function template specialization 'testing::internal::EqHelper<false>::Compare<int, unsigned int>' requested here
06:31:09   EXPECT_EQ(4, Errors[0].Message.FileOffset);
06:31:09   ^
06:31:09 ../utils/unittest/googletest/include/gtest/gtest.h:1924:63: note: expanded from macro 'EXPECT_EQ'
06:31:09                       EqHelper<GTEST_IS_NULL_LITERAL_(val1)>::Compare, \
06:31:09                                                               ^
06:31:09 ../utils/unittest/googletest/include/gtest/gtest.h:1392:11: error: comparison of integers of different signs: 'const int' and 'const unsigned long' [-Werror,-Wsign-compare]
06:31:09   if (lhs == rhs) {
06:31:09       ~~~ ^  ~~~
06:31:09 ../utils/unittest/googletest/include/gtest/gtest.h:1421:12: note: in instantiation of function template specialization 'testing::internal::CmpHelperEQ<int, unsigned long>' requested here
06:31:09     return CmpHelperEQ(lhs_expression, rhs_expression, lhs, rhs);
06:31:09            ^
06:31:09 ../../clang-tools-extra/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp:64:3: note: in instantiation of function template specialization 'testing::internal::EqHelper<false>::Compare<int, unsigned long>' requested here
06:31:09   EXPECT_EQ(1, Errors[0].Message.Ranges.size());
06:31:09   ^
06:31:09 ../utils/unittest/googletest/include/gtest/gtest.h:1924:63: note: expanded from macro 'EXPECT_EQ'
06:31:09                       EqHelper<GTEST_IS_NULL_LITERAL_(val1)>::Compare, \
06:31:09                                                               ^
06:31:09 2 errors generated.


  Commit: d69c236e1d6b4705d3a0041f39bfe864638eb24e
      https://github.com/llvm/llvm-project/commit/d69c236e1d6b4705d3a0041f39bfe864638eb24e
  Author: Zhang Qing Shan <zhangqingshan.zll at bytedance.com>
  Date:   2021-04-12 (Mon, 12 Apr 2021)

  Changed paths:
    M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

  Log Message:
  -----------
  [NFC][Debug] Fix unnecessary deep-copy for vector to save compiling time

We saw some big compiling time impact after enabling the debug entry value
feature for X86 platform(D73534). Compiling time goes from 900s->1600s with
our testcase. It is caused by allocating/freeing the memory busily.

'using FwdRegWorklist = MapVector<unsigned, SmallVector<FwdRegParamInfo, 2>>;'
The value for this map is vector, and we miss the reference when access the
element. The same happens for `auto CalleesMap = MF->getCallSitesInfo();` which is a DenseMap.

Reviewed by: djtodoro, flychen50

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


  Commit: 6e5199104914c2415092315388ed09fbd9d629f7
      https://github.com/llvm/llvm-project/commit/6e5199104914c2415092315388ed09fbd9d629f7
  Author: Balázs Kéri <1.int32 at gmail.com>
  Date:   2021-04-12 (Mon, 12 Apr 2021)

  Changed paths:
    M clang/lib/AST/Expr.cpp
    M clang/unittests/Tooling/SourceCodeTest.cpp

  Log Message:
  -----------
  [clang][AST] Handle overload callee type in CallExpr::getCallReturnType.

The function did not handle every case. In some cases this
caused assertion failure.
After the fix the function returns DependentTy if the exact
return type can not be determined.

It seems that clang itself does not call the function in the
affected cases but some checker or other code may call it.

Reviewed By: hokein

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


  Commit: 62fa9b9388aa114e3b1a58bbdbcd966ae3492ba5
      https://github.com/llvm/llvm-project/commit/62fa9b9388aa114e3b1a58bbdbcd966ae3492ba5
  Author: Esme-Yi <esme.yi at ibm.com>
  Date:   2021-04-12 (Mon, 12 Apr 2021)

  Changed paths:
    M clang/lib/CodeGen/CGDebugInfo.cpp
    A clang/test/CodeGenCXX/debug-info-programming-language.cpp
    M clang/test/Modules/ModuleDebugInfo.cpp

  Log Message:
  -----------
  [DebugInfo] Fix the mismatching between C++ language tags and Dwarf versions.

Summary: The tags DW_LANG_C_plus_plus_14 and DW_LANG_C_plus_plus_11, introduced in Dwarf-5, are unexpected in previous versions. Fixing the mismathing doesn't have any drawbacks for any other debuggers, but helps dbx.

Reviewed By: aprantl, shchenz

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


  Commit: a655f250fef84795e3e46c0bcb824d7b5fbceec6
      https://github.com/llvm/llvm-project/commit/a655f250fef84795e3e46c0bcb824d7b5fbceec6
  Author: Stelios Ioannou <stelios.ioannou at arm.com>
  Date:   2021-04-12 (Mon, 12 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
    M llvm/test/CodeGen/AArch64/ragreedy-local-interval-cost.ll

  Log Message:
  -----------
  [AArch64] Adds memory operands for indexed loads.

This patch adds the memory operands for indexed loads so
that certain optimizations can take place.

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

Change-Id: I539fcf046ca4ad1e7df1d893f57d751419d8364d


  Commit: 731bf28a6092286dde6972803b35c026e32bd6b1
      https://github.com/llvm/llvm-project/commit/731bf28a6092286dde6972803b35c026e32bd6b1
  Author: Sven van Haastregt <sven.vanhaastregt at arm.com>
  Date:   2021-04-12 (Mon, 12 Apr 2021)

  Changed paths:
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Sema/SemaExprMember.cpp
    M clang/test/SemaOpenCL/ext_vectors.cl

  Log Message:
  -----------
  [OpenCL] Accept .rgba in OpenCL 3.0

The .rgba vector component accessors are supported in OpenCL C 3.0.

Previously, the diagnostic would check `OpenCLVersion` for version 2.2
(value 220) and report those accessors are an OpenCL 2.2 feature.
However, there is no "OpenCL C version 2.2", so change the check and
diagnostic text to 3.0 only.

A spurious `OpenCLVersion` argument was passed into the diagnostic;
remove that.

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


  Commit: f9a8c6a0e50540f68e6740a849a7caf5e4d46ca6
      https://github.com/llvm/llvm-project/commit/f9a8c6a0e50540f68e6740a849a7caf5e4d46ca6
  Author: Sebastian Neubauer <sebastian.neubauer at amd.com>
  Date:   2021-04-12 (Mon, 12 Apr 2021)

  Changed paths:
    M llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
    M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
    M llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
    M llvm/lib/Target/AMDGPU/SIRegisterInfo.h
    M llvm/test/CodeGen/AMDGPU/control-flow-fastregalloc.ll
    M llvm/test/CodeGen/AMDGPU/frame-setup-without-sgpr-to-vgpr-spills.ll
    M llvm/test/CodeGen/AMDGPU/partial-sgpr-to-vgpr-spills.ll
    M llvm/test/CodeGen/AMDGPU/sgpr-spill.mir
    M llvm/test/CodeGen/AMDGPU/si-spill-sgpr-stack.ll
    M llvm/test/CodeGen/AMDGPU/spill-m0.ll
    M llvm/test/CodeGen/AMDGPU/spill-scavenge-offset.ll
    A llvm/test/CodeGen/AMDGPU/spill-sgpr-stack-no-sgpr.ll
    M llvm/test/CodeGen/AMDGPU/spill-special-sgpr.mir

  Log Message:
  -----------
  [AMDGPU] Save VGPR of whole wave when spilling

Spilling SGPRs to scratch uses a temporary VGPR. LLVM currently cannot
determine if a VGPR is used in other lanes or not, so we need to save
all lanes of the VGPR. We even need to save the VGPR if it is marked as
dead.

The generated code depends on two things:
- Can we scavenge an SGPR to save EXEC?
- And can we scavenge a VGPR?

If we can scavenge an SGPR, we
- save EXEC into the SGPR
- set the needed lane mask
- save the temporary VGPR
- write the spilled SGPR into VGPR lanes
- save the VGPR again to the target stack slot
- restore the VGPR
- restore EXEC

If we were not able to scavenge an SGPR, we do the same operations, but
everytime the temporary VGPR is written to memory, we
- write VGPR to memory
- flip exec (s_not exec, exec)
- write VGPR again (previously inactive lanes)

Surprisingly often, we are able to scavenge an SGPR, even though we are
at the brink of running out of SGPRs.
Scavenging a VGPR does not have a great effect (saves three instructions
if no SGPR was scavenged), but we need to know if the VGPR we use is
live before or not, otherwise the machine verifier complains.

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


  Commit: 350cb28bdb7455d9846128aad09051606b81d4c9
      https://github.com/llvm/llvm-project/commit/350cb28bdb7455d9846128aad09051606b81d4c9
  Author: kai.ma <kai.ma at corerain.com>
  Date:   2021-04-12 (Mon, 12 Apr 2021)

  Changed paths:
    M mlir/include/mlir/Conversion/GPUCommon/GPUCommonPass.h
    M mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp

  Log Message:
  -----------
  Merge branch 'dev-newmaster' of http://crdev2.corerain.com/software/llvm-project into dev-newmaster


Compare: https://github.com/llvm/llvm-project/compare/e8b5927cdcde...350cb28bdb74


More information about the All-commits mailing list