SuccessChanges

Changes from Git (git http://labmaster3.local/git/llvm-project.git)

Summary

  1. Reapply [LLD] [COFF] Implement a GNU/ELF like -wrap option (details)
  2. [mlir] Fix typo in LangRef (details)
  3. [mlir] Add std.tensor_to_memref op and teach the infra about it (details)
  4. [SemaObjC] Fix composite pointer type calculation for `void*` and pointer to lifetime qualified ObjC pointer type (details)
  5. Reland "[WebAssembly] v128.load{8,16,32,64}_lane instructions" (details)
  6. [AMDGPU] gfx1032 target (details)
  7. [MTE] Pin the tagged base pointer to one of the stack slots. (details)
  8. [AArch64] Stack frame reordering. (details)
  9. [gn bulid] Remove phantom WebAssembly tablegen() calls (details)
  10. [NFC][SCEV] Autogenerate check lines in tests being affected by upcoming patch (details)
  11. [NFC][LSR] Autogenerate check lines in tests being affected by upcoming patch (details)
  12. [NFC][IndVars] Autogenerate check lines in tests being affected by upcoming patch (details)
  13. [AMDGPU] SILowerControlFlow::removeMBBifRedundant should not try to change MBB layout if it can fallthrough (details)
  14. [libc] Use entrypoints.txt as the single source of list of functions for a platform. (details)
  15. PR47864: Fix assertion in pointer-to-member emission if there are (details)
  16. [libTooling] Change `after` range-selector to operate only on source ranges (details)
  17. [LoopVersion] Unify SCEVChecks and alias check handling (NFC). (details)
  18. fix symbol printing on windows (details)
  19. [WebAssembly] Prototype i8x16.popcnt (details)
  20. Revert "[clang] Add -fc++-abi= flag for specifying which C++ ABI to use" (details)
  21. Revert "[HIP] Change default --gpu-max-threads-per-block value to 1024" (details)
  22. [VE] Support fabs/fcos/fsin/fsqrt math functions (details)
  23. [VE] Add VGT/VSC/PFCHV instructions (details)
  24. Add an SB API to get the SBTarget from an SBBreakpoint (details)
  25. [MS] Apply `inreg` to AArch64 sret parms on instance methods (details)
  26. [CGBuiltin] Respect asm labels and redefine_extname for builtins with specialized emitting (details)
  27. Add missing 'override' (details)
  28. [mlir][vector] Add unrolling patterns for Transfer read/write (details)
  29. [GlobalISel] Remove scalar src from non-sequential fadd/fmul reductions. (details)
  30. [AArch64][GlobalISel] NFC: Refactor emitIntegerCompare (details)
  31. [PM/CC1] Add -f[no-]split-cold-code CC1 option to toggle splitting (details)
  32. [mlir] RewriterGen NativeCodeCall matcher with ConstantOp matcher (details)
  33. Switch the default of VerifyIntegerConstantExpression from constant (details)
  34. [MLIR] Fix gcc5 in D89161 (details)
  35. [llvm-cov] don't include all source files when provided source files are filtered out (details)
  36. [mlir][CAPI] Add mlirAttributeGetType function. (details)
  37. Support ObjC in IncludeInserter (details)
  38. [SCEV] Use nw flag and symbolic iteration count to sharpen ranges of AddRecs (details)
  39. [llvm-cov] Fix test cases. (details)
  40. [RISCV] Add -mtune support (details)
  41. [RISCV] Fix -Wbraced-scalar-init after D89025 (details)
  42. [SCEV][NFC] Split out type balancing in implication engine (details)
  43. [lib/ObjectYAML] - Simplify the code that handles Content/Size fields. (details)
  44. Remove dead variable to silence compiler warning [NFC] (details)
  45. Revert "[SCEV] Use nw flag and symbolic iteration count to sharpen ranges of AddRecs" (details)
  46. Fix hidden-redecls.m test for some environments (details)
  47. Recommit "[DSE] Switch to MemorySSA-backed DSE by default." (details)
  48. [AMDGPU] Correct comment typo in AMDGPUSubtarget.h (details)
  49. [SCEV] Add a few test cases where the max BTC is limited by wrapping. (details)
  50. [MemLoc] Support memchr/memccpy in MemoryLocation::getForArgument (details)
  51. [InstCombine] foldAndOrOfICmpsOfAndWithPow2 - add vector support (details)
  52. [SVE][CodeGen]Use getFixedSize() function for TypeSize comparison in clang (details)
  53. [InstCombine] narrowRotate - minor refactoring for funnel shift support. NFC. (details)
  54. [ValueTracking] Clarify TypeSize comparisons (details)
  55. Recommit "[SCEV] Use nw flag and symbolic iteration count to sharpen ranges of AddRecs" (details)
  56. [Indvars][NFC] Remove duplicating checks (details)
  57. [AMDGPU] Add a message to an assert (details)
  58. [Indvars][NFCI] Remove meaningless restrictive code in IndVars (details)
  59. [InstCombine] Add trunc+zext 'narrow' funnel shift tests (PR35155) (details)
  60. [InstCombine] Fix typo in narrow funnel shift test (details)
Commit 3785a413feef896e8a022731cc6ed405d5ebe81b by martin
Reapply [LLD] [COFF] Implement a GNU/ELF like -wrap option

Add a simple forwarding option in the MinGW frontend, and implement
the private -wrap option in the COFF linker.

The feature in lld-link isn't gated by the -lldmingw option, but
the option is left as a private, undocumented option primarily
used by the MinGW driver.

The implementation is significantly based on the support for --wrap
in the ELF linker, but many small nuance details are different
between the ELF and COFF linkers, ending up with more than a few
implementation differences.

This fixes https://bugs.llvm.org/show_bug.cgi?id=47384.

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

Reapplied with the bitfield member canInline fixed so it doesn't break
builds targeting windows.
The file was modifiedlld/COFF/SymbolTable.cpp
The file was modifiedlld/COFF/LTO.cpp
The file was addedlld/test/COFF/wrap-lto-2.ll
The file was modifiedlld/COFF/Options.td
The file was modifiedlld/COFF/MinGW.cpp
The file was modifiedlld/COFF/Symbols.h
The file was addedlld/test/COFF/wrap.s
The file was modifiedlld/COFF/MinGW.h
The file was addedlld/test/COFF/wrap-import.ll
The file was addedlld/test/COFF/wrap-i386.s
The file was addedlld/test/COFF/wrap-real-missing.s
The file was modifiedlld/COFF/Driver.cpp
The file was modifiedlld/MinGW/Driver.cpp
The file was modifiedlld/COFF/InputFiles.h
The file was addedlld/test/COFF/wrap-lto-1.ll
The file was modifiedlld/MinGW/Options.td
The file was modifiedlld/test/MinGW/driver.test
The file was addedlld/test/COFF/wrap-with-archive.s
Commit 9c728a7cbf5df69627966b823d30daa6cfe2426d by silvasean
[mlir] Fix typo in LangRef
The file was modifiedmlir/docs/LangRef.md
Commit ee491ac91e123b90eeec3cce7e494936ea8cb85d by silvasean
[mlir] Add std.tensor_to_memref op and teach the infra about it

The opposite of tensor_to_memref is tensor_load.

- Add some basic tensor_load/tensor_to_memref folding.
- Add source/target materializations to BufferizeTypeConverter.
- Add an example std bufferization pattern/pass that shows how the
  materialiations work together (more std bufferization patterns to come
  in subsequent commits).
  - In coming commits, I'll document how to write composable
  bufferization passes/patterns and update the other in-tree
  bufferization passes to match this convention. The populate* functions
  will of course continue to be exposed for power users.

The naming on tensor_load/tensor_to_memref and their pretty forms are
not very intuitive. I'm open to any suggestions here. One key
observation is that the memref type must always be the one specified in
the pretty form, since the tensor type can be inferred from the memref
type but not vice-versa.

With this, I've been able to replace all my custom bufferization type
converters in npcomp with BufferizeTypeConverter!

Part of the plan discussed in:
https://llvm.discourse.group/t/what-is-the-strategy-for-tensor-memref-conversion-bufferization/1938/17

Differential Revision: https://reviews.llvm.org/D89437
The file was modifiedmlir/include/mlir/Dialect/StandardOps/Transforms/Passes.td
The file was modifiedmlir/lib/Transforms/Bufferize.cpp
The file was modifiedmlir/include/mlir/Dialect/StandardOps/Transforms/Passes.h
The file was modifiedmlir/include/mlir/Transforms/Bufferize.h
The file was addedmlir/test/Dialect/Standard/bufferize.mlir
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
The file was addedmlir/test/Dialect/Standard/canonicalize.mlir
The file was modifiedmlir/test/Dialect/Standard/ops.mlir
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
The file was modifiedmlir/lib/Dialect/StandardOps/Transforms/CMakeLists.txt
The file was addedmlir/lib/Dialect/StandardOps/Transforms/Bufferize.cpp
Commit 351317167e2b28aad03f8e45e0ed0acbbff18c61 by erik.pilkington
[SemaObjC] Fix composite pointer type calculation for `void*` and pointer to lifetime qualified ObjC pointer type

Fixes a regression introduced in 9a6f4d451ca7. rdar://70101809

Differential revision: https://reviews.llvm.org/D89475
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/test/SemaObjCXX/arc-ptr-comparison.mm
Commit 3f738d1f5e2d657993a51ca3fe56585268025d89 by tlively
Reland "[WebAssembly] v128.load{8,16,32,64}_lane instructions"

This reverts commit 7c8385a352ba21cb388046290d93b53dc273cd9f with a typing fix
to an instruction selection pattern.
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
The file was modifiedllvm/include/llvm/IR/IntrinsicsWebAssembly.td
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
The file was modifiedclang/include/clang/Basic/BuiltinsWebAssembly.def
The file was modifiedclang/test/CodeGen/builtins-wasm.c
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h
The file was modifiedllvm/test/MC/WebAssembly/simd-encodings.s
The file was modifiedllvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was addedllvm/test/CodeGen/WebAssembly/simd-load-lane-offset.ll
Commit d1beb95d1241ec50bdf19db351d273374a146a4a by Stanislav.Mekhanoshin
[AMDGPU] gfx1032 target

Differential Revision: https://reviews.llvm.org/D89487
The file was modifiedclang/lib/Basic/Targets/NVPTX.cpp
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/hsa-note-no-func.ll
The file was modifiedllvm/lib/Support/TargetParser.cpp
The file was modifiedclang/test/Driver/amdgpu-macros.cl
The file was modifiedllvm/test/MC/AMDGPU/gfx1030_err.s
The file was modifiedclang/include/clang/Basic/Cuda.h
The file was modifiedllvm/include/llvm/BinaryFormat/ELF.h
The file was modifiedllvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
The file was modifiedclang/lib/Basic/Targets/AMDGPU.cpp
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll
The file was modifiedclang/test/CodeGenOpenCL/amdgpu-features.cl
The file was modifiedllvm/docs/AMDGPUUsage.rst
The file was modifiedllvm/test/MC/Disassembler/AMDGPU/gfx1030_dasm_new.txt
The file was modifiedllvm/lib/Target/AMDGPU/GCNProcessors.td
The file was modifiedclang/test/Driver/amdgpu-mcpu.cl
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
The file was modifiedllvm/include/llvm/Support/TargetParser.h
The file was modifiedllvm/test/MC/AMDGPU/gfx1030_new.s
Commit 2f63e57fa59e7fbfe5999ec1e6e60fa7a2ba70bb by eugenis
[MTE] Pin the tagged base pointer to one of the stack slots.

Summary:
Pin the tagged base pointer to one of the stack slots, and (if
necessary) rewrite tag offsets so that an object that occupies that
slot has both address and tag offsets of 0. This allows ADDG
instructions for that object to be eliminated and their uses replaced
with the tagged base pointer itself.

This optimization must be done in machine instructions and not in the IR
instrumentation pass, because referring to a stack slot through an IRG
pointer would confuse the stack coloring pass.

The optimization makes a (pretty naive) attempt to find the slot that
would benefit the most by counting the uses of stack slots in the
function.

Reviewers: ostannard, pcc

Subscribers: merge_guards_bot, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D72365
The file was modifiedllvm/lib/Target/AArch64/AArch64StackTaggingPreRA.cpp
The file was modifiedllvm/include/llvm/IR/IntrinsicsAArch64.td
The file was modifiedllvm/lib/Target/AArch64/AArch64FrameLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
The file was modifiedllvm/test/CodeGen/AArch64/irg_sp_tagp.ll
Commit 2e794a46b58c5878c5ab71c8517c5417f791860e by eugenis
[AArch64] Stack frame reordering.

Implement stack frame reordering in the AArch64 backend.

Unlike the X86 implementation, AArch64 does not seem to benefit from
"access density" based frame reordering, mainly because it has a much
smaller variety of addressing modes, and the fact that all instructions
are 4 bytes so each frame object is either in range of an instruction
(and then the access is "free") or not (and that has a code size cost
of 4 bytes).

This change improves Memory Tagging codegen by
* Placing an object that has been chosen as the base tagged pointer of
the function at SP + 0. This saves one instruction to setup the pointer
(IRG does not have an offset immediate), and more because that object
can now be referenced without materializing its tagged address in a
scratch register.
* Placing objects that go out of scope simultaneously together. This
exposes opportunities for instruction merging in tryMergeAdjacentSTG.

Differential Revision: https://reviews.llvm.org/D72366
The file was modifiedllvm/test/CodeGen/AArch64/settag-merge.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64FrameLowering.cpp
The file was addedllvm/test/CodeGen/AArch64/settag-merge-order.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64FrameLowering.h
Commit 6601dfb0b8c78cdd5de0e50fb3549f9b8f947eb3 by thakis
[gn bulid] Remove phantom WebAssembly tablegen() calls

Apparenlty I added these in https://reviews.llvm.org/rL350628 but
I'm not sure why. They never existed in the CMake build, and now
they're causing trouble.
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Target/WebAssembly/BUILD.gn
Commit b3d2df42f7ac60ff7645cf944a93f0fde144a195 by lebedev.ri
[NFC][SCEV] Autogenerate check lines in tests being affected by upcoming patch
The file was modifiedllvm/test/Analysis/ScalarEvolution/load.ll
The file was modifiedllvm/test/Analysis/ScalarEvolution/scalable-vector.ll
The file was modifiedllvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info.ll
The file was modifiedllvm/test/Analysis/ScalarEvolution/no-wrap-add-exprs.ll
Commit dfdfcdc8d3c99cfe9fdef7c604ecc3b165e79572 by lebedev.ri
[NFC][LSR] Autogenerate check lines in tests being affected by upcoming patch
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/2011-10-03-CritEdgeMerge.ll
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/post-inc-icmpzero.ll
Commit 2008dacf6ed3fbb862769c6936fd615c4ae05434 by lebedev.ri
[NFC][IndVars] Autogenerate check lines in tests being affected by upcoming patch
The file was modifiedllvm/test/Transforms/IndVarSimplify/widen-i32-i8ptr.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/2011-11-01-lftrptr.ll
Commit 42ed3881200801651a2af47505dc7c59c0a5c959 by Alexander Timofeev
[AMDGPU] SILowerControlFlow::removeMBBifRedundant should not try to change MBB layout if it can fallthrough

removeMBBifRedundant normally tries to keep predecessors fallthrough when removing redundant MBB.
         It has to change MBBs layout to keep the new successor to immediately follow the predecessor of removed MBB.
         It only may be allowed in case the new successor itself has no successors to which it fall through.

Reviewed By: rampitec

Differential Revision: https://reviews.llvm.org/D89397
The file was modifiedllvm/test/CodeGen/AMDGPU/collapse-endcf.mir
The file was modifiedllvm/lib/Target/AMDGPU/SILowerControlFlow.cpp
Commit f6bf2823c44eb81be6c74d909c17d77e811b3bbc by michaelrj
[libc] Use entrypoints.txt as the single source of list of functions for a platform.

The function listings in api.td are removed. The same lists are now deduced using the information
in entrypoints.txt.

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D89267
The file was modifiedlibc/CMakeLists.txt
The file was modifiedlibc/cmake/modules/LLVMLibCHeaderRules.cmake
The file was modifiedlibc/utils/HdrGen/Generator.h
The file was modifiedlibc/config/linux/api.td
The file was modifiedlibc/utils/HdrGen/Generator.cpp
The file was modifiedlibc/utils/HdrGen/Main.cpp
The file was modifiedlibc/utils/HdrGen/PublicAPICommand.cpp
The file was modifiedlibc/utils/HdrGen/PublicAPICommand.h
Commit 68f116aa23434b577743307c487b2edf037fca4c by richard
PR47864: Fix assertion in pointer-to-member emission if there are
multiple declarations of the same base class.
The file was modifiedclang/include/clang/AST/RecordLayout.h
The file was modifiedclang/test/CodeGenCXX/pointers-to-data-members.cpp
Commit 65cb4fdd69f43b6c39a8e4ca27b509284b11d807 by yitzhakm
[libTooling] Change `after` range-selector to operate only on source ranges

Currently, `after` fails when applied to locations in macro arguments.  This
change projects the subrange into a file source range and then applies `after`.

Differential Revision: https://reviews.llvm.org/D89468
The file was modifiedclang/lib/Tooling/Transformer/RangeSelector.cpp
The file was modifiedclang/unittests/Tooling/RangeSelectorTest.cpp
Commit 89c0124273339076b25bf860f6c2ee765ab96db3 by flo
[LoopVersion] Unify SCEVChecks and alias check handling (NFC).

This is an initial cleanup of the way LoopVersioning interacts with LAA.

Currently LoopVersioning has 2 ways of initializing things:

1. Passing LAI and passing UseLAIChecks = true
2. Passing UseLAIChecks = false, followed by calling setSCEVChecks and
   setAliasChecks.

Both ways of initializing lead to the same result and the duplication
seems more complicated than necessary.

This patch removes the UseLAIChecks flag from the constructor and the
setSCEVChecks & setAliasChecks helpers and move initialization
exclusively to the constructor.

This simplifies things, by providing a single way to initialize
LoopVersioning and reducing duplication.

Reviewed By: Meinersbur, lebedev.ri

Differential Revision: https://reviews.llvm.org/D84406
The file was modifiedllvm/include/llvm/Transforms/Utils/LoopVersioning.h
The file was modifiedllvm/lib/Transforms/Scalar/LoopLoadElimination.cpp
The file was modifiedllvm/lib/Transforms/Scalar/LoopDistribute.cpp
The file was modifiedllvm/lib/Transforms/Scalar/LoopVersioningLICM.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/lib/Transforms/Utils/LoopVersioning.cpp
Commit 122d92dfc31f27263f281244756f576147cec1f6 by vtjnash
fix symbol printing on windows

Similar to MCSymbol::print in 3d6c8ebb584375d01b1acead4c2056b3f0c501fc
(llvm-svn: 81682, PR4966), these symbols may need to be quoted to be handled by
the linker correctly.

Reviewed By: compnerd

Differential Revision: https://reviews.llvm.org/D87099
The file was modifiedllvm/test/CodeGen/X86/dllexport.ll
The file was modifiedllvm/lib/IR/Mangler.cpp
Commit 1992e30c2d751f6f1f6ad5190f84e37dece04f7f by tlively
[WebAssembly] Prototype i8x16.popcnt

As proposed at https://github.com/WebAssembly/simd/pull/379. Use a target
builtin and intrinsic rather than normal codegen patterns to make the
instruction opt-in until it is merged to the proposal and stabilized in engines.

Differential Revision: https://reviews.llvm.org/D89446
The file was modifiedclang/include/clang/Basic/BuiltinsWebAssembly.def
The file was modifiedclang/test/CodeGen/builtins-wasm.c
The file was modifiedllvm/test/CodeGen/WebAssembly/simd-intrinsics.ll
The file was modifiedllvm/test/MC/WebAssembly/simd-encodings.s
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
The file was modifiedllvm/include/llvm/IR/IntrinsicsWebAssembly.td
Commit 79829a47040512fe54001db839ac59146ca55aec by leonardchan
Revert "[clang] Add -fc++-abi= flag for specifying which C++ ABI to use"

This reverts commits 683b308c07bf827255fe1403056413f790e03729 and
8487bfd4e9ae186f9f588ef989d27a96cc2438c9.

We will go for a more restricted approach that does not give freedom to
everyone to change ABIs on whichever platform.

See the discussion on https://reviews.llvm.org/D85802.
The file was modifiedclang/include/clang/Basic/DiagnosticDriverKinds.td
The file was removedclang/include/clang/Basic/TargetCXXABI.def
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/include/clang/AST/ASTContext.h
The file was modifiedclang/include/clang/Basic/TargetCXXABI.h
The file was modifiedclang/lib/CodeGen/ItaniumCXXABI.cpp
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was removedclang/test/Frontend/invalid-cxx-abi.cpp
The file was modifiedclang/lib/AST/ASTContext.cpp
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/include/clang/Basic/LangOptions.h
Commit e384e94fbe7c1d5c89fcdde33ffda04e9802c2ce by Yaxun.Liu
Revert "[HIP] Change default --gpu-max-threads-per-block value to 1024"

This reverts commit 187658b8a6112446d9e7797d495bc7542ac83905 due to
AMDGPU backend issues.
The file was modifiedclang/test/CodeGenCUDA/amdgpu-kernel-attrs.cu
The file was modifiedclang/include/clang/Basic/LangOptions.def
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp
The file was modifiedclang/test/CodeGenCUDA/kernel-amdgcn.cu
Commit 410e5b17cf11691de7775315dbf9d5e94f5c4808 by marukawa
[VE] Support fabs/fcos/fsin/fsqrt math functions

VE doesn't have instruction for fabs/fcos/fsin/fsqrt, so expand them.
Add regression tests also.  Update fcopysign regression test, also.

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D89457
The file was addedllvm/test/CodeGen/VE/fsqrt.ll
The file was addedllvm/test/CodeGen/VE/fcos.ll
The file was modifiedllvm/lib/Target/VE/VEISelLowering.cpp
The file was addedllvm/test/CodeGen/VE/fcopysign.ll
The file was addedllvm/test/CodeGen/VE/fabs.ll
The file was removedllvm/test/CodeGen/VE/fp_copysign.ll
The file was addedllvm/test/CodeGen/VE/fsin.ll
Commit a91dd3d37d3f10831e544c5a797b3837b7e5744a by marukawa
[VE] Add VGT/VSC/PFCHV instructions

Add VGT/VSC/PFCHV vector instructions and regression tests.

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D89471
The file was modifiedllvm/lib/Target/VE/VEInstrVec.td
The file was addedllvm/test/MC/VE/VSC.s
The file was addedllvm/test/MC/VE/PFCHV.s
The file was addedllvm/test/MC/VE/VGT.s
Commit 6754caa9bf21a759c4080a797f23e2b7a77a71e1 by jingham
Add an SB API to get the SBTarget from an SBBreakpoint

Differential Revision: https://reviews.llvm.org/D89358
The file was modifiedlldb/bindings/interface/SBBreakpoint.i
The file was modifiedlldb/test/API/python_api/breakpoint/TestBreakpointAPI.py
The file was modifiedlldb/source/API/SBBreakpoint.cpp
The file was modifiedlldb/include/lldb/API/SBBreakpoint.h
Commit 5fbab4025eb57b12f2842ab188ff07a110708e1d by rnk
[MS] Apply `inreg` to AArch64 sret parms on instance methods

The documentation rules indicate that instance methods should return
large, trivially copyable aggregates via X1/X0 and not X8 as is normally
done when returning such structs from free functions:
https://docs.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions?view=vs-2019#return-values

Fixes PR47836, a bug in the initial implementation of these rules.

I tried to simplify the logic a bit as well while I'm here.

Differential Revision: https://reviews.llvm.org/D89362
The file was modifiedclang/lib/CodeGen/MicrosoftCXXABI.cpp
The file was modifiedclang/test/CodeGenCXX/microsoft-abi-sret-and-byval.cpp
Commit 5a338599fbaa805587227779bde0a9986cb4646d by i
[CGBuiltin] Respect asm labels and redefine_extname for builtins with specialized emitting

rL131311 added `asm()` support for builtin functions, but `asm()` for builtins with
specialized emitting (e.g. memcpy, various math functions) still do not work.

This patch makes these functions work for `asm()` and `#pragma redefine_extname`.
glibc uses `asm()` to redirect internal libc function calls to hidden aliases.

Limitation: such a function is a builtin in clang, but will not be recognized as
a libcall in optimization passes because Clang does not annotate the renamed
function as a libcall.  In GCC -O1 or above, `abs` can be optimized out but we can't.
Additionally, we cannot redirect `__builtin_sin` to `real_sin` in the following example:

  double sin(double x) asm("real_sin");
  double f(double d) { return __builtin_sin(d); }

---

According to @rsmith, the following three statements cannot be simultaneously true:

(1) The frontend function foo has known, builtin semantics X.
(2) The symbol foo has known, builtin semantics X.
(3) It's not correct to lower a call to the frontend function foo to the symbol foo.

People do want (1) (if it is profitable to expand a memcpy, do it).
This also means that people do not want to add -fno-builtin-memcpy.
People do want (3): that is why they use asm("__GI_memcpy") in the first place.

So unfortunately we make a compromise by not refuting (2) (see the limitation above).
For most libcalls, there is a small loss because compilers don't synthesize them.
For the few glibc cares about, it uses `asm("memcpy = __GI_memcpy");` to make
the assembly level redirection.
(Changing function names (e.g. `__memcpy`) is a hit to ergonomics which is not acceptable).

Reviewed By: rsmith

Differential Revision: https://reviews.llvm.org/D88712
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedclang/test/CodeGen/asm-label.c
The file was modifiedclang/test/CodeGen/redefine_extname.c
Commit 4c1c88bbc114dc0abd9c2dc5548378d695124c84 by dblaikie
Add missing 'override'
The file was modifiedmlir/tools/mlir-tblgen/TypeDefGen.cpp
Commit edbdea7466d25c5e4d9f73e3043ac87efe433193 by thomasraoux
[mlir][vector] Add unrolling patterns for Transfer read/write

Adding unroll support for transfer read and transfer write operation. This
allows to pick the ideal size for the memory access for a given target.

Differential Revision: https://reviews.llvm.org/D89289
The file was addedmlir/test/Dialect/Vector/vector-transfer-unroll.mlir
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorTransforms.h
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp
The file was modifiedmlir/test/lib/Transforms/TestVectorTransforms.cpp
Commit c2551c1f4058d2c3cc4964b1d1d0ca5946036f6c by Amara Emerson
[GlobalISel] Remove scalar src from non-sequential fadd/fmul reductions.

It's probably better to split these into separate G_FADD/G_FMUL + G_VECREDUCE
operations in the translator rather than carrying the scalar around. The
majority of the time it'll get simplified away as the scalars are probably
identity values.

Differential Revision: https://reviews.llvm.org/D89150
The file was modifiedllvm/test/MachineVerifier/test_vector_reductions.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
The file was modifiedllvm/include/llvm/Target/GenericOpcodes.td
The file was modifiedllvm/lib/CodeGen/MachineVerifier.cpp
Commit 609d765cd3b1a4f9558b654dbb1bc7c973f3408b by Jessica Paquette
[AArch64][GlobalISel] NFC: Refactor emitIntegerCompare

Simplify emitIntegerCompare and improve comments + asserts.

Mostly making the code a little easier to follow.

Also, this code is only used for G_ICMP. The legalizer ensures that the LHS/RHS
for every G_ICMP is either a s32 or s64. So, there's no need to handle anything
else. This lets us remove a bunch of checks for whether or not we successfully
emitted the compare.

Differential Revision: https://reviews.llvm.org/D89433
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
Commit 273c299d5d649a0222fbde03c9a41e41913751b4 by Saleem Abdulrasool
[PM/CC1] Add -f[no-]split-cold-code CC1 option to toggle splitting

This patch adds -f[no-]split-cold-code CC1 options to clang. This allows
the splitting pass to be toggled on/off. The current method of passing
`-mllvm -hot-cold-split=true` to clang isn't ideal as it may not compose
correctly (say, with `-O0` or `-Oz`).

To implement the -fsplit-cold-code option, an attribute is applied to
functions to indicate that they may be considered for splitting. This
removes some complexity from the old/new PM pipeline builders, and
behaves as expected when LTO is enabled.

Co-authored by: Saleem Abdulrasool <compnerd@compnerd.org>
Differential Revision: https://reviews.llvm.org/D57265
Reviewed By: Aditya Kumar, Vedant Kumar
Reviewers: Teresa Johnson, Aditya Kumar, Fedor Sergeev, Philip Pfaffe, Vedant Kumar
The file was addedclang/test/CodeGen/split-cold-code.c
The file was modifiedllvm/test/Other/new-pm-pgo.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/multiple-exits.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/delete-use-without-def-dbg-val.ll
The file was modifiedllvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.nogenerated.expected
The file was modifiedllvm/test/Transforms/HotColdSplit/split-phis-in-exit-blocks.ll
The file was modifiedclang/include/clang/Basic/DiagnosticFrontendKinds.td
The file was modifiedllvm/test/Transforms/HotColdSplit/apply-successor-penalty.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/duplicate-phi-preds-crash.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/transfer-debug-info.ll
The file was addedclang/test/Frontend/split-cold-code.c
The file was modifiedllvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/phi-with-distinct-outlined-values.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/split-out-dbg-label.ll
The file was modifiedllvm/test/tools/UpdateTestChecks/update_test_checks/Inputs/generated_funcs.ll.generated.expected
The file was modifiedllvm/test/Transforms/HotColdSplit/apply-penalty-for-inputs.ll
The file was modifiedllvm/lib/Transforms/IPO/PassManagerBuilder.cpp
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedllvm/lib/Transforms/IPO/HotColdSplitting.cpp
The file was modifiedllvm/test/Transforms/HotColdSplit/lifetime-markers-on-inputs-1.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/forward-dfs-reaches-marked-block.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/update-split-loop-metadata.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/region-overlap.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/assumption-cache-invalidation.ll
The file was modifiedllvm/test/Other/opt-O2-pipeline.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/section-splitting-default.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/retain-section.ll
The file was modifiedllvm/test/Other/opt-O3-pipeline-enable-matrix.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/eh-typeid-for.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/minsize.ll
The file was modifiedllvm/test/Other/opt-Os-pipeline.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/apply-noreturn-bonus.ll
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedllvm/test/Transforms/HotColdSplit/eh-pads.ll
The file was modifiedllvm/test/Other/new-pm-defaults.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/coldentrycount.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/noreturn.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/section-splitting-custom.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
The file was modifiedllvm/test/Other/opt-O3-pipeline.ll
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def
The file was modifiedllvm/test/Transforms/HotColdSplit/mark-the-whole-func-cold.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-defaults.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/stale-assume-in-original-func.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/opt-pipeline.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/apply-penalty-for-outputs.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/outline-while-loop.ll
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedllvm/test/Transforms/HotColdSplit/lifetime-markers-on-inputs-2.ll
The file was modifiedllvm/test/Transforms/CodeExtractor/extract-assume.ll
The file was modifiedllvm/test/Other/X86/lto-hot-cold-split.ll
The file was modifiedllvm/test/Other/pass-pipelines.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/X86/do-not-split.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/swifterror.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/split-out-dbg-val-of-arg.ll
The file was modifiedllvm/test/Other/opt-hot-cold-split.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/outline-if-then-else.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/resume.ll
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/test/Transforms/HotColdSplit/outline-multiple-entry-region.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/outline-cold-asm.ll
The file was modifiedllvm/test/Other/new-pm-lto-defaults.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/split-cold-2.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/unwind.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/addr-taken.ll
The file was modifiedllvm/test/Transforms/HotColdSplit/succ-block-with-self-edge.ll
The file was modifiedllvm/include/llvm/Transforms/IPO/HotColdSplitting.h
The file was modifiedllvm/test/Transforms/HotColdSplit/outline-disjoint-diamonds.ll
Commit 2bf423b0218c9583e3a372950a34facbf93e63d3 by rob.suderman
[mlir] RewriterGen NativeCodeCall matcher with ConstantOp matcher

Added an underlying matcher for generic constant ops. This
included a rewriter of RewriterGen to make variable use more
clear.

Differential Revision: https://reviews.llvm.org/D89161
The file was modifiedmlir/include/mlir/IR/OpBase.td
The file was modifiedmlir/lib/TableGen/Pattern.cpp
The file was addedmlir/test/mlir-tblgen/rewriter-errors.td
The file was modifiedmlir/tools/mlir-tblgen/RewriterGen.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestPatterns.cpp
The file was modifiedmlir/test/mlir-tblgen/pattern.mlir
The file was modifiedmlir/include/mlir/TableGen/Pattern.h
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
Commit fc031d29bea856f2b91a250fd81c5f9fb79dbe07 by richard
Switch the default of VerifyIntegerConstantExpression from constant
folding to not constant folding.

Constant folding of ICEs is done as a GCC compatibility measure, but new
code was picking it up, presumably by accident, due to the bad default.

While here, also switch the flag from a bool to an enum to make it more
obvious what it means at call sites. This highlighted a couple of places
where our behavior is different between C++11 and C++14 due to switching
from checking for an ICE to checking for a converted constant
expression (where there is no 'fold' codepath).
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/lib/Sema/SemaType.cpp
The file was modifiedclang/lib/Sema/SemaExceptionSpec.cpp
The file was modifiedclang/test/SemaCXX/new-delete.cpp
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp
The file was modifiedclang/lib/Sema/SemaStmt.cpp
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was modifiedclang/lib/Sema/SemaTemplate.cpp
The file was modifiedclang/lib/Sema/SemaDeclAttr.cpp
The file was modifiedclang/lib/Sema/SemaInit.cpp
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedclang/test/SemaCXX/enum.cpp
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
Commit ad1fe3963f30d0e7ef6796ad90bd4ddb6f7b117b by rob.suderman
[MLIR] Fix gcc5 in D89161

Missing .str() makes gcc5 unable to infer the template to use.

Differential Revision: https://reviews.llvm.org/D89516
The file was modifiedmlir/lib/TableGen/Pattern.cpp
Commit cd3090819c4eac750339496c8b8d3c92f8a3950c by zequanwu
[llvm-cov] don't include all source files when provided source files are filtered out

When all provided source files are filtered out either due to `--ignore-filename-regex` or not part of binary, don't generate coverage reults for all source files. Because if users want to generate coverage results for all source files, they don't even need to provid selected source files or `--ignore-filename-regex`.

Differential Revision: https://reviews.llvm.org/D89359
The file was modifiedllvm/test/tools/llvm-cov/universal_bin_wrapping_archives.test
The file was modifiedllvm/tools/llvm-cov/CodeCoverage.cpp
The file was modifiedllvm/test/tools/llvm-cov/sources-specified.test
Commit 6771b98c4e4d5c0bd0a78a876bd212a76ec80a24 by stellaraccident
[mlir][CAPI] Add mlirAttributeGetType function.

* Also fixes the const-ness of the various DenseElementsAttr construction functions.
* Both issues identified when trying to use the DenseElementsAttr functions.

Differential Revision: https://reviews.llvm.org/D89517
The file was modifiedmlir/include/mlir-c/IR.h
The file was modifiedmlir/test/CAPI/ir.c
The file was modifiedmlir/lib/CAPI/IR/StandardAttributes.cpp
The file was modifiedmlir/include/mlir-c/StandardAttributes.h
The file was modifiedmlir/lib/CAPI/IR/IR.cpp
Commit cc175c2cc8e638462bab74e0781e06f9b6eb5017 by alexfh
Support ObjC in IncludeInserter

Update IncludeSorter/IncludeInserter to support objective-c google style (part 1):

1) Correctly consider .mm/.m extensions
2) Correctly categorize category headers.
3) Add support for generated files to go in a separate section of imports

Reviewed By: alexfh, gribozavr2

Patch by Joe Turner.

Differential Revision: https://reviews.llvm.org/D89276
The file was modifiedclang-tools-extra/clang-tidy/utils/IncludeSorter.h
The file was modifiedclang-tools-extra/unittests/clang-tidy/IncludeInserterTest.cpp
The file was modifiedclang-tools-extra/clang-tidy/utils/IncludeSorter.cpp
Commit 905101c36025fe1c8ecdf9a20cd59db036676073 by mkazantsev
[SCEV] Use nw flag and symbolic iteration count to sharpen ranges of AddRecs

We can sharpen the range of a AddRec if we know that it does not
self-wrap and know the symbolic iteration count in the loop. If we can
evaluate the value of AddRec on the last iteration and prove that at least
one its intermediate value lies between start and end, then no-wrap flag
allows us to conclude that all of them also lie between start and end. So
the estimate of range can be improved to union of ranges of start and end.

Differential Revision: https://reviews.llvm.org/D89381
Reviewed By: efriedma
The file was modifiedllvm/test/Transforms/IndVarSimplify/X86/eliminate-trunc.ll
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
The file was modifiedllvm/test/Transforms/IndVarSimplify/promote-iv-to-eliminate-casts.ll
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/test/Analysis/ScalarEvolution/no-wrap-symbolic-becount.ll
Commit 19ae9b6e21e2491debeb910e2c541be9796f1b13 by zequanwu
[llvm-cov] Fix test cases.
`/dev/null` is treated as regualar file on Windows.
native_separators.c line 11 used relative path which was not correct but worked before because when `SourceFiles` is empty, it add all source files into `SourceFiles`.
The file was modifiedllvm/test/tools/llvm-cov/native_separators.c
The file was modifiedllvm/test/tools/llvm-cov/warnings.h
Commit cfa7094e49cfb7e37a84c0aa57c85c64c0581d17 by kito.cheng
[RISCV] Add -mtune support

- The goal of this patch is improve option compatible with RISCV-V GCC,
   -mcpu support on GCC side will sent patch in next few days.

- -mtune only affect the pipeline model and non-arch/extension related
   target feature, e.g. instruction fusion; in td file it called
   TuneFeatures, which is introduced by X86 back-end[1].

- -mtune accept all valid option for -mcpu and extra alias processor
   option, e.g. `generic`, `rocket` and `sifive-7-series`, the purpose is
   option compatible with RISCV-V GCC.

- Processor alias for -mtune will resolve according the current target arch,
   rv32 or rv64, e.g. `rocket` will resolve to `rocket-rv32` or `rocket-rv64`.

- Interaction between -mcpu and -mtune:
   * -mtune has higher priority than -mcpu for pipeline model and
     TuneFeatures.

[1] https://reviews.llvm.org/D85165

Reviewed By: luismarques

Differential Revision: https://reviews.llvm.org/D89025
The file was modifiedclang/lib/Basic/Targets/RISCV.h
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVTargetMachine.cpp
The file was modifiedllvm/include/llvm/Support/TargetParser.h
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedllvm/lib/Target/RISCV/RISCVAsmPrinter.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVSubtarget.h
The file was modifiedclang/test/Driver/riscv-cpus.c
The file was modifiedllvm/include/llvm/Support/RISCVTargetParser.def
The file was modifiedclang/test/Misc/target-invalid-cpu-note.c
The file was modifiedllvm/lib/Support/TargetParser.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVSubtarget.cpp
The file was modifiedclang/lib/Basic/Targets/RISCV.cpp
Commit 5e09c45cbb2411a9636001894b546eb05a6fee3c by i
[RISCV] Fix -Wbraced-scalar-init after D89025
The file was modifiedllvm/include/llvm/Support/RISCVTargetParser.def
Commit 1eb2c6d23f991a16afaaf898aeaf8f78e97be6fc by mkazantsev
[SCEV][NFC] Split out type balancing in implication engine

We plan to introduce more advanced ways of dealing with different types.
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
Commit 3cfd9384bff476a4579c956e0c33697fee8bcf29 by grimar
[lib/ObjectYAML] - Simplify the code that handles Content/Size fields.

This is a follow-up for D89039 patch, which adds a support for
`Content`/`Size` for all sections.

Assuming that all of sections have a support of these 2 fields,
we can simplify and generalize the code.

Depends on D89039

Differential revision: https://reviews.llvm.org/D89120
The file was modifiedllvm/lib/ObjectYAML/ELFEmitter.cpp
Commit e5e4653255ff7d78d62923038ff085fae47e950b by mikael.holmen
Remove dead variable to silence compiler warning [NFC]
The file was modifiedclang/lib/AST/ExprConstant.cpp
Commit 7d3b475810baa26eb862bb555a0335eec6b988fc by nikita.ppv
Revert "[SCEV] Use nw flag and symbolic iteration count to sharpen ranges of AddRecs"

This reverts commit 905101c36025fe1c8ecdf9a20cd59db036676073.

This causes a large compile-time regression:
https://llvm-compile-time-tracker.com/compare.php?from=cc175c2cc8e638462bab74e0781e06f9b6eb5017&to=905101c36025fe1c8ecdf9a20cd59db036676073&stat=instructions
The file was modifiedllvm/test/Transforms/IndVarSimplify/promote-iv-to-eliminate-casts.ll
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
The file was modifiedllvm/test/Analysis/ScalarEvolution/no-wrap-symbolic-becount.ll
The file was modifiedllvm/test/Transforms/IndVarSimplify/X86/eliminate-trunc.ll
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
Commit 6030a075164c7016b29a67680ed5c9e7c5932109 by konstantin.schwarz
Fix hidden-redecls.m test for some environments

This test was failing in our CI environment, because Jenkins mounts the workspaces into Docker containers using their full path, i.e. /home/jenkins/workspaces/llvm-build.
We've seen permission denied errors because /home/jenkins is mounted with root permissions and the default cache directory under Linux is $HOME/.cache.

The fix is to explicitly provide the -fmodules-cache-path, which the other tests already seem to provide.

Reviewed By: akyrtzi

Differential Revision: https://reviews.llvm.org/D89453
The file was modifiedclang/test/Index/hidden-redecls.m
Commit 51ff04567b2f8d06b2062bd3ed72eab2e93e4466 by flo
Recommit "[DSE] Switch to MemorySSA-backed DSE by default."

After investigation by @asbirlea, the issue that caused the
revert appears to be an issue in the original source, rather
than a problem with the compiler.

This patch enables MemorySSA DSE again.

This reverts commit 915310bf14cbac58a81fd60e0fa9dc8d341108e2.
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-09-06-EndOfFunction.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/libcalls.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/calloc-store.ll
The file was modifiedllvm/test/Other/new-pm-defaults.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/int_sideeffect.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/mda-with-dbg-values.ll
The file was modifiedllvm/test/Other/opt-O3-pipeline.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/merge-stores.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/merge-stores-big-endian.ll
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
The file was modifiedllvm/test/Transforms/MemCpyOpt/2008-02-24-MultipleUseofSRet.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic-todo.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/invariant.start.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-simple.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2016-07-17-UseAfterFree.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memoryssa-scan-limit.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/const-pointers.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/fence-todo.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/debuginfo.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/launder.invariant.group.ll
The file was modifiedllvm/test/Analysis/BasicAA/modref.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-03-25-DSEMiscompile.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/pr47285-not-overwritten-on-all-exit-paths.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/overlap.ll
The file was modifiedllvm/test/Other/opt-O3-pipeline-enable-matrix.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-retcon.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/PartialStore2.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-missing-debugloc.ll
The file was modifiedllvm/test/Other/opt-Os-pipeline.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-defaults.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/pr11390.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/stats.ll
The file was modifiedllvm/test/Other/new-pm-lto-defaults.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-overlap.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/tail-byval.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-unknown-sizes.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple-preservation.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/combined-partial-overwrites.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-captures.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-memoryphis.ll
The file was modifiedllvm/test/Transforms/Coroutines/ArgAddr.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-loops.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/operand-bundles.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-and-memcpy.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-memintrinsics.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic-overlapping.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-multipath.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/dominate.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/noop-stores.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-multipath-throwing.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-malloc-free.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-throwing.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/debug-counter.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/OverwriteStoreBegin.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-partial.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/no-targetdata.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memintrinsics.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-09-06-MemCpy.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/OverwriteStoreEnd.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/X86/gather-null-pointer.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memcpy-complete-overwrite.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/opt-pipeline.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/fence.ll
The file was modifiedclang/test/CodeGen/thinlto-distributed-newpm.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/PartialStore.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/inst-limits.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/free.ll
The file was modifiedllvm/test/Other/opt-O2-pipeline.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/lifetime.ll
The file was modifiedclang/test/CodeGenObjC/exceptions.m
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-unreachable.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/cs-cs-aliasing.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-exceptions.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memcpy.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/crash.ll
Commit e2af9bd6118eb9e64e28f36dd787da3905b8ba8b by Tony.Tye
[AMDGPU] Correct comment typo in AMDGPUSubtarget.h
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUSubtarget.h
Commit e034c3f7043a0f5a0b0af834a4b84d06e6b8948e by flo
[SCEV] Add a few test cases where the max BTC is limited by wrapping.
The file was addedllvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-limit-by-wrapping.ll
Commit 28691cdd714fb9b4a4d69dfc4f83a886582bf774 by Dávid Bolvanský
[MemLoc] Support memchr/memccpy in MemoryLocation::getForArgument

Reviewed By: fhahn

Differential Revision: https://reviews.llvm.org/D89321
The file was modifiedllvm/lib/Analysis/MemoryLocation.cpp
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/libcalls.ll
The file was modifiedllvm/test/Analysis/BasicAA/libfuncs.ll
Commit 55991b44b7f96a0aaa33ac53fc229302ca8d5d02 by llvm-dev
[InstCombine] foldAndOrOfICmpsOfAndWithPow2 - add vector support

Support vector cases for folding:

(iszero(A & K1) | iszero(A & K2)) -> (A & (K1 | K2)) != (K1 | K2)
(!iszero(A & K1) & !iszero(A & K2)) -> (A & (K1 | K2)) == (K1 | K2)
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
The file was modifiedllvm/test/Transforms/InstCombine/onehot_merge.ll
Commit e8d9ee9c7cfe46d9b552111a27d866fce0498b0a by caroline.concatto
[SVE][CodeGen]Use getFixedSize() function for TypeSize comparison in clang

This patch makes sure that the instance of TypeSize comparison operator
is done with a fixed type size.

Differential Revision: https://reviews.llvm.org/D89312
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
Commit 1cf347e48b588ea277cc550b3ac57ecfa540618c by llvm-dev
[InstCombine] narrowRotate - minor refactoring for funnel shift support. NFC.

Prep work for PR35155 - renamed narrowRotate to narrowFunnelShift, rewrote some comments and adjusted code to collect separate shift values, although we bail if they don't match (still only rotations are only actually folded).

I'm trying to match matchFunnelShift as much as possible in case we finally get to merge these one day.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineInternal.h
Commit fbd62fe60fb2281ca33da35dc25ca3c87ec0bb51 by cullen.rhodes
[ValueTracking] Clarify TypeSize comparisons

TypeSize comparisons using overloaded operators should be replaced by
the new isKnownXY comparators when the operands can be fixed-length or
scalable vectors.

In ValueTracking there are several uses of the overloaded operators in
`isKnownNonZero` and `ComputeMultiple`. In the former we already bail
out on scalable vectors since we currently have no way to represent
DemandedElts, and the latter is operating on scalar integers, so we can
assume fixed-size in both instances.

Reviewed By: david-arm

Differential Revision: https://reviews.llvm.org/D89387
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
Commit 32b72c3165bf65cca2e8e6197b59eb4c4b60392a by mkazantsev
Recommit "[SCEV] Use nw flag and symbolic iteration count to sharpen ranges of AddRecs"

It was reverted because of negative compile time impact. In this version,
less powerful proof methods are used (non-recursive reasoning only), and
scope limited to constant End values to avoid explision of complex proofs.

Differential Revision: https://reviews.llvm.org/D89381
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
The file was modifiedllvm/test/Transforms/IndVarSimplify/promote-iv-to-eliminate-casts.ll
The file was modifiedllvm/test/Analysis/ScalarEvolution/no-wrap-symbolic-becount.ll
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/test/Transforms/IndVarSimplify/X86/eliminate-trunc.ll
Commit 0ee0c7dcc3282b541befaaeaf8179abe1483370c by mkazantsev
[Indvars][NFC] Remove duplicating checks

Some facts have already been checked in widenWithVariantUse and then
checked again in widenWithVariantUseCodegen. The latter is redundant,
we can replace it with asserts.
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp
Commit dd3f7a494af90c6136268fe17be857af591e2e53 by sebastian.neubauer
[AMDGPU] Add a message to an assert
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
Commit bb39372e5e66e8d36735fa205d48e06c06a8fa00 by mkazantsev
[Indvars][NFCI] Remove meaningless restrictive code in IndVars

Variable ExtendOperExpr only exists to check whether it is a SCEV ext.
We create it as SCEV ext right here, so semantically this check is
trivially true. In theory, it may fail if SCEV is smart enough and can
simplify the expression. However, no matter whether it is an ext or not,
we never use this fact for further reasoning. So this code is currently
useless and in theory may become harmful with SCEV's development.

We do not expect any behavior changes with removing it. If it caused
negative changes, the patch should be reverted.
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp
Commit 76996470ef3e16b20498bc1ee083ef5a50e5ff8f by llvm-dev
[InstCombine] Add trunc+zext 'narrow' funnel shift tests (PR35155)

Based on the rotation equivalents in rotate.ll
The file was modifiedllvm/test/Transforms/InstCombine/funnel.ll
Commit ef0ab3cdfe205c65879e8e3288f3c63d1a809f63 by llvm-dev
[InstCombine] Fix typo in narrow funnel shift test
The file was modifiedllvm/test/Transforms/InstCombine/funnel.ll