Changes

Summary

  1. [SymbolRefAttr] Revise SymbolRefAttr to hold a StringAttr. (details)
  2. [X86] AVX512FP16 instructions enabling 6/6 (details)
  3. [flang] Apply double precision KindCode in specific proc interface (details)
  4. [docs] Add a new tutorial that talk about how to make a change to llvm (details)
  5. [VPlan] Introduce code to limit querying VPValues using IR references. (details)
  6. [flang] Add runtime interface for COMMAND_ARGUMENT_COUNT (details)
  7. [flang] Add runtime interface for GET_COMMAND_ARGUMENT (details)
  8. [DebugInfo] Emit DW_TAG_namelist and DW_TAG_namelist_item (details)
  9. [lldb] [gdb-remote client] Support minimal fork/vfork handling (details)
  10. [NFC][IndVars] Add test that caused D108043 to be reverted (details)
  11. [IndVars] Drop check for the validity of rewrite (details)
  12. Fix interface trait declaration in SymbolInterfaces.td (details)
  13. [CMake] Add `--gdb-index` option to linker if split dwarf compiling (details)
  14. [NFCI][IndVars] rewriteLoopExitValues(): don't expand SCEV's until needed (details)
  15. tsan: add a comment to CallUserSignalHandler (details)
  16. [CMake][NFC] Add comment about new `--gdb-index` option used with `-gsplit-dwarf` (details)
  17. [lldb][NFC] Remove TypeSystemClang::CreateFunctionType overload (details)
  18. Fix MSVC "signed/unsigned mismatch" comparison warning. NFCI. (details)
  19. [TTI][X86] getArithmeticInstrCost - move opcode canonicalization before all target-specific costs. NFCI. (details)
  20. [clang] Add gcc-toolset-10 support (RHEL/CentOS 8) (details)
  21. [flang][mlir] Fix FIR after D108899 (details)
  22. [LiveDebugValues] Cleanup Transfers when removing Entry Value (details)
  23. [lldb] Return all line entries matchign a line if no column is specified (details)
  24. Silence a signed/unsigned mismatch warning; NFC (details)
  25. [LLDB] Fix 'std::out_of_range' crashing bug when file name completion using file path. (details)
  26. [lldb][NFC] Add size tests for empty records with alignment and with empty members (details)
  27. [PowerPC][NFC] Rename P10 builtins vec_clrl, vec_clrr to vec_clr_first and vec_clr_last (details)
  28. [AIX] Suppress -Waix-compat warning with SmallVector class (details)
  29. [mlir][python] Extend C/Python API to be usable for CFG construction. (details)
  30. [libomptarget][amdcgn] Only add opt/llvm-link dependency if TARGET is available (details)
  31. [IRSim] Adding missing comments canonical relation commit (details)
  32. [LSR][NFC] Add test case for pr42770 (details)
  33. [DAGCombiner][RISCV] Don't use vector types in DAGCombiner::tryStoreMergeOfLoads if we need a rotate. (details)
  34. [RISCV] Enable CONCAT_VECTORS for fixed FP vectors. (details)
  35. [llvm] Remove redundant calls to str() and c_str() (NFC) (details)
  36. [AMDGPU][CostModel] Update shuffle instruction tests. NFC. (details)
  37. [IROutliner] Ensure instructions at end of candidate are excluded (details)
  38. [lld/mac] Set branchRange a bit more carefully (details)
  39. [libc++] Various cleanups in the ranges tests (details)
  40. [NFC][clang] Move IR-independent parts of target MV support to X86TargetParser.cpp (details)
  41. [SCEV] Clarify the overflow precondition of computeMaxBECountForLT [NFC] (details)
  42. [libcxx][docs] Mark LWG3348 as complete (details)
  43. [AsmParser] Support %ty* in force-opaque-pointers mode (details)
  44. [CSSPGO] Avoid repeatedly computing md5 hash code for pseudo probe inline contexts. (details)
  45. Revert "[SLP]Improve graph reordering." (details)
  46. DebugInfo: Correct printing empty template parameter packs (details)
  47. [libc++abi] Avoid the warning: "__EXCEPTIONS" is not defined, evaluates to 0 [-Werror=undef] (details)
  48. [InstrInfo] Use 64-bit immediates for analyzeCompare() (NFCI) (details)
  49. [lld/mac] Tweak estimateStubsInRangeVA a bit (details)
  50. [ARM] Workaround tailpredication min/max costmodel (details)
  51. [docs][GlobalISel]Adding info for G_JUMP_TABLE generic opcode (details)
  52. [DIBuilder] Do not replace empty enum types (details)
  53. [DebugInfo] Remove the restriction on the size of DIStringType (details)
  54. [libc++] Support -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=on in CI (details)
  55. Teach the AArch64 backend patterns to generate the EOR3 instruction. (details)
  56. [flang] Fold CSHIFT (details)
  57. [SelectionDAG] Fix miscompile bugs related to smul.fix.sat with scale zero (details)
  58. [LegalizeTypes][X86] Improve ExpandIntRes_FP_TO_SINT/ExpandIntRes_FP_TO_UINT when input is SoftPromoteHalf. (details)
  59. [mlir][tosa] Small refactor to the functionality of Conv2D and Fully_connected to add the bias at the end of the convolution (details)
  60. [TTI] Sink IVDescriptors.h include (NFC) (details)
  61. [IROutliner] Changing outliner to prioritize reductions on assembly rather than IR instruction (details)
  62. [libc] Add mtx_destroy which does nothing. (details)
  63. [MemCpyOpt] Allow specifying --enable-memcpyopt-without-libcalls more than once (details)
  64. [COFF] Force Symbols containing '.' to be quoted (details)
  65. [libc][nfc][obvious] fix typos in FPUtil (details)
  66. [Builder] Eliminate the StringRef/StringAttr forms of getSymbolRefAttr. (details)
  67. [flang] Fold EOSHIFT (details)
  68. [mlir] Add an interface to allow operations to specify how they can be tiled. (details)
  69. [llvm-cov][NFC] Add test for coverage-prefix-map remappings (details)
  70. [modules] Fix miscompilation when using two RecordDecl definitions with the same name. (details)
  71. [lld/mac] Leave more room for thunks in thunk placement code (details)
  72. [tsan] Add environment variable TSAN_SYMBOLIZER_PATH as we do in other sanitizers (details)
  73. Fix unused variable in release build. (details)
  74. [CSSPGO] Split context string to deduplicate function name used in the context. (details)
  75. [WebAssembly] Share rethrowing BBs in LowerEmscriptenEHSjLj (details)
  76. [WebAssembly] Free setjmpTable before exiting calls in EmSjLj (details)
  77. [mlir][python] Apply py::module_local() to all classes. (details)
  78. DebugInfo: Refactor/deduplicate various template argument list emission (details)
Commit 41d4aa7de68ed551010f27ff04ffc54e7616292a by clattner
[SymbolRefAttr] Revise SymbolRefAttr to hold a StringAttr.

SymbolRefAttr is fundamentally a base string plus a sequence
of nested references.  Instead of storing the string data as
a copies StringRef, store it as an already-uniqued StringAttr.

This makes a lot of things simpler and more efficient because:
1) references to the symbol are already stored as StringAttr's:
   there is no need to copy the string data into MLIRContext
   multiple times.
2) This allows pointer comparisons instead of string
   comparisons (or redundant uniquing) within SymbolTable.cpp.
3) This allows SymbolTable to hold a DenseMap instead of a
   StringMap (which again copies the string data and slows
   lookup).

This is a moderately invasive patch, so I kept a lot of
compatibility APIs around.  It would be nice to explore changing
getName() to return a StringAttr for example (right now you have
to use getNameAttr()), and eliminate things like the StringRef
version of getSymbol.

Differential Revision: https://reviews.llvm.org/D108899
The file was modifiedmlir/include/mlir/IR/Builders.h
The file was modifiedmlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp
The file was modifiedmlir/lib/Conversion/GPUCommon/OpToFuncCallLowering.h
The file was modifiedmlir/lib/Dialect/GPU/IR/GPUDialect.cpp
The file was modifiedmlir/lib/IR/Builders.cpp
The file was modifiedmlir/lib/Dialect/SparseTensor/Transforms/SparseTensorConversion.cpp
The file was modifiedmlir/lib/Conversion/GPUToVulkan/ConvertGPULaunchFuncToVulkanLaunchFunc.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/Linking/ModuleCombiner/ModuleCombiner.cpp
The file was modifiedmlir/include/mlir/IR/SymbolTable.h
The file was modifiedmlir/lib/Conversion/LinalgToStandard/LinalgToStandard.cpp
The file was modifiedmlir/include/mlir/Dialect/GPU/GPUOps.td
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/Transforms/DecorateCompositeTypeLayoutPass.cpp
The file was modifiedmlir/lib/Rewrite/ByteCode.cpp
The file was modifiedmlir/include/mlir/IR/SymbolInterfaces.td
The file was modifiedmlir/include/mlir/IR/OpBase.td
The file was modifiedmlir/lib/IR/AsmPrinter.cpp
The file was modifiedmlir/lib/Target/LLVMIR/ModuleTranslation.cpp
The file was modifiedmlir/lib/CAPI/IR/BuiltinAttributes.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp
The file was modifiedmlir/test/lib/IR/TestSymbolUses.cpp
The file was modifiedmlir/test/lib/Rewrite/TestPDLByteCode.cpp
The file was modifiedmlir/lib/IR/BuiltinAttributes.cpp
The file was modifiedmlir/include/mlir/IR/BuiltinAttributes.td
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/ConvertLaunchFuncToLLVMCalls.cpp
The file was modifiedmlir/lib/IR/SymbolTable.cpp
The file was modifiedmlir/include/mlir/IR/BuiltinAttributes.h
Commit ab40dbfe03d50a2e4a12168beb0ad9ae660916cf by pengfei.wang
[X86] AVX512FP16 instructions enabling 6/6

Enable FP16 complex FMA instructions.

Ref.: https://software.intel.com/content/www/us/en/develop/download/intel-avx512-fp16-architecture-specification.html

Reviewed By: LuoYuanke

Differential Revision: https://reviews.llvm.org/D105269
The file was modifiedllvm/test/MC/X86/intel-syntax-avx512fp16vl.s
The file was modifiedllvm/test/MC/X86/avx512fp16vl.s
The file was addedllvm/test/CodeGen/X86/avx512cfma-intrinsics.ll
The file was addedllvm/test/CodeGen/X86/avx512cfmulsh-instrinsics.ll
The file was addedllvm/test/MC/X86/avx512fp16-complex-fma.s
The file was modifiedllvm/lib/Target/X86/X86InstrAVX512.td
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.h
The file was modifiedllvm/test/MC/X86/avx512fp16.s
The file was modifiedclang/include/clang/Basic/BuiltinsX86.def
The file was modifiedclang/lib/Headers/avx512fp16intrin.h
The file was modifiedllvm/test/CodeGen/X86/stack-folding-fp-avx512fp16vl.ll
The file was addedllvm/test/CodeGen/X86/avx512fp16-combine-xor-vfmulc.ll
The file was modifiedllvm/lib/Target/X86/X86InstrFragmentsSIMD.td
The file was modifiedllvm/lib/Target/X86/X86InstrFoldTables.cpp
The file was addedllvm/test/CodeGen/X86/avx512fp16-combine-xor-vfmulc-fadd.ll
The file was modifiedclang/lib/Sema/SemaChecking.cpp
The file was modifiedllvm/test/CodeGen/X86/stack-folding-fp-avx512fp16.ll
The file was modifiedclang/test/CodeGen/X86/avx512vlfp16-builtins.c
The file was modifiedclang/lib/Headers/avx512vlfp16intrin.h
The file was addedllvm/test/CodeGen/X86/avx512fp16-combine-vfmulc-fadd.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/MC/Disassembler/X86/avx512fp16vl.txt
The file was modifiedclang/test/CodeGen/X86/avx512fp16-builtins.c
The file was modifiedllvm/include/llvm/IR/IntrinsicsX86.td
The file was modifiedllvm/test/MC/X86/intel-syntax-avx512fp16.s
The file was modifiedllvm/lib/Target/X86/X86IntrinsicsInfo.h
The file was addedllvm/test/CodeGen/X86/avx512cfmul-intrinsics.ll
The file was addedllvm/test/MC/X86/avx512fp16-complex-fma_vl.s
The file was modifiedllvm/test/MC/Disassembler/X86/avx512fp16.txt
The file was modifiedllvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
Commit 31fb52f8749ee43385cd7a9c8064c3adf58b2596 by jperier
[flang] Apply double precision KindCode in specific proc interface

The double precision KindCode was ignored when building the interface
of specific intrinsic procedures leading to bad semantics checks.

Differential Revision: https://reviews.llvm.org/D108828
The file was modifiedflang/lib/Evaluate/intrinsics.cpp
The file was addedflang/test/Semantics/call20.f90
Commit 3a6b722db856cbd6279d0c6578c0d7cca12b18f6 by kuhnel
[docs] Add a new tutorial that talk about how to make a change to llvm

This tutorial will guide you through the process of making a change to LLVM, and contributing it back to the LLVM project.
We'll be making a change to Clang, but the steps for other parts of LLVM are the same. Even though the change we'll be making is simple,
we're going to cover steps like building LLVM, running the tests, and code review. This is good practice, and you'll be prepared for making larger changes.

Authors: @meikeb , @gribozavr
Commit: Zhiqian Xia

PS - This is a duplicate revision of https://reviews.llvm.org/D100714 which was actually used for patch review.

Reviewed By: kuhnel

Differential Revision: https://reviews.llvm.org/D108267
The file was modifiedllvm/docs/GettingStartedTutorials.rst
The file was addedllvm/docs/MyFirstTypoFix.rst
Commit abd36fe512a6ba8de51bca7911322ae8fa1b0a78 by flo
[VPlan] Introduce code to limit querying VPValues using IR references.

After applying VPlan-to-VPlan transformations, using IR references to
query VPlan values may be incorrect, as the IR is not in sync with the
VPlan any longer.

To better detect such mis-matches, this patch introduces a new flag to
VPlans to indicate whether it is safe to query VPValues using IR values.

getVPValue is updated to assert if it is called when the flag indicates
it is not safe any longer.

There is an escape hatch via an extra argument, because there are 3
places that need to be fixed first. Those are

1. truncateToMinimalBitwidths
2. clearReductionWrapFlags
3. fixLCSSAPHIs

As a first step, this flag will help preventing new code from violating
this property.

Any suggestions with respect to naming very welcome!

Reviewed By: Ayal

Differential Revision: https://reviews.llvm.org/D108573
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
Commit cc4d28691bbc382aabf2a59c017b55a6c37f1b18 by diana.picus
[flang] Add runtime interface for COMMAND_ARGUMENT_COUNT

Differential Revision: https://reviews.llvm.org/D108687
The file was addedflang/runtime/command.h
Commit 4fae60c4b0ed02dbb6e4c73e49197dd8dd8d4ccf by diana.picus
[flang] Add runtime interface for GET_COMMAND_ARGUMENT

GET_COMMAND_ARGUMENT takes a lot of optional arguments: VALUE, LENGTH,
STATUS and ERRMSG. This patch breaks up the interface into 2 different
functions:

* One for getting the LENGTH of an argument.

* One for getting the VALUE and the ERRMSG of an argument. This returns
the STATUS, which can be easily ignored by lowering if it is missing in
the invocation.

Differential Revision: https://reviews.llvm.org/D108688
The file was modifiedflang/runtime/command.h
Commit 0a6fad754ed8f0812dd57357ce8071b02e962259 by Bhuvanendra.KumarN
[DebugInfo] Emit DW_TAG_namelist and DW_TAG_namelist_item

This patch emits DW_TAG_namelist and DW_TAG_namelist_item for fortran
namelist variables. DICompositeType is extended to support this fortran
feature.

Reviewed By: aprantl

Differential Revision: https://reviews.llvm.org/D108553
The file was addedllvm/test/DebugInfo/X86/namelist2.ll
The file was addedllvm/test/DebugInfo/X86/namelist1.ll
The file was modifiedllvm/lib/IR/Verifier.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
Commit 0a1d80d56e6a0e062d493e262d3322d2ac3a04d4 by mgorny
[lldb] [gdb-remote client] Support minimal fork/vfork handling

Add a support for handling fork/vfork stops in LLGS client.  At this
point, it only sends a detach packet for the newly forked child
(and implicitly resumes the parent).

Differential Revision: https://reviews.llvm.org/D100206
The file was modifiedlldb/source/Target/StopInfo.cpp
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
The file was modifiedlldb/include/lldb/Target/StopInfo.h
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/gdbclientutils.py
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
The file was addedlldb/test/API/functionalities/gdb_remote_client/TestFork.py
The file was modifiedlldb/include/lldb/Target/Process.h
Commit ada219b13a2debc94cb252feb0dd987ef9290126 by lebedev.ri
[NFC][IndVars] Add test that caused D108043 to be reverted

We currently don't simplify anything here, but we can.
The file was addedllvm/test/Transforms/IndVarSimplify/D108043.ll
Commit 7b0d59da9af4bf4eb8342cac579e42a818ac1ae7 by lebedev.ri
[IndVars] Drop check for the validity of rewrite

`isValidRewrite()` checks that the both the original SCEV,
and the rewrite SCEV have the same base pointer.
I //believe//, after all the recent SCEV improvements,
this invariant is already enforced by SCEV itself.

I originally tried changing it into an assert in D108043,
but that showed that it triggers on e.g. https://reviews.llvm.org/D108043#2946621,
where SCEV manages to forward the store to load,
test added.

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D108655
The file was modifiedllvm/test/Transforms/IndVarSimplify/D108043.ll
The file was modifiedllvm/lib/Transforms/Utils/LoopUtils.cpp
Commit 9db95a67d14c918371234e5c98263a977835e19f by zinenko
Fix interface trait declaration in SymbolInterfaces.td

41d4aa7de68ed551010f27ff04ffc54e7616292a introduced incorrect code in
extraTraitClassDeclaration: `this` refers to the trait class and not the
operation class so `->getContext()` is not valid. Use `$_op` instead.
The file was modifiedmlir/include/mlir/IR/SymbolInterfaces.td
Commit b1b68b4c0190b7fc7f0ebe823277966056b39494 by anton.a.afanasyev
[CMake] Add `--gdb-index` option to linker if split dwarf compiling

The option `--gdb-index` should be passed to linker if compiler is invoked
with `-gsplit-dwarf` option. This allows debugger to locate the appropriate
units quickly. See "Invocation" section here: https://gcc.gnu.org/wiki/DebugFission

Suggested by @dblaikie here: https://reviews.llvm.org/D68556#1698442

Differential Revision: https://reviews.llvm.org/D108776
The file was modifiedllvm/cmake/modules/HandleLLVMOptions.cmake
Commit 795d142d237e0a06c136886a6dd9c49235c37295 by lebedev.ri
[NFCI][IndVars] rewriteLoopExitValues(): don't expand SCEV's until needed

Previously, we'd expand *ALL* the SCEV's eagerly, because we needed to
check with `isValidRewrite()`, and discard bad rewrite candidates,
but now that we do not do that, we also don't need to always expand.

In particular, this avoids expanding potentially-huge SCEV's that we
would discard anyways because they are high-cost and we aren't
rewriting aggressively.
The file was modifiedllvm/lib/Transforms/Utils/LoopUtils.cpp
Commit 37b78291c67c1a8b0a207b966697342834db388a by dvyukov
tsan: add a comment to CallUserSignalHandler

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D108907
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp
Commit 3f0c6100a226d33a3d9861fa6dc4649e43c7abd4 by anton.a.afanasyev
[CMake][NFC] Add comment about new `--gdb-index` option used with `-gsplit-dwarf`

Follow-up of https://reviews.llvm.org/D108776
The file was modifiedllvm/CMakeLists.txt
Commit f3ad3ea4719bd025711062725732dd597533a8c9 by Raphael Isemann
[lldb][NFC] Remove TypeSystemClang::CreateFunctionType overload

This can just be a default argument.
The file was modifiedlldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h
Commit 7c25a32840354e2a852ea8d1d839a708dcdd0921 by llvm-dev
Fix MSVC "signed/unsigned mismatch" comparison warning. NFCI.
The file was modifiedllvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
Commit af2920ec6f859e9b7e0ef519cdc601ee2567c379 by llvm-dev
[TTI][X86] getArithmeticInstrCost - move opcode canonicalization before all target-specific costs. NFCI.

The GLM/SLM special cases still get tested first but after the the MUL/DIV/REM pattern detection - this will be necessary for when we make the SLM vXi32 MUL canonicalization generic to improve PMULLW/PMULHW/PMADDDW cost support etc.
The file was modifiedllvm/lib/Target/X86/X86TargetTransformInfo.cpp
Commit a5791badde32cf794edbddf737cbc8344257449b by simon.moll
[clang] Add gcc-toolset-10 support (RHEL/CentOS 8)

Clang only adds GCC paths for RHEL <= 7 'devtoolset-<N>' Software
Collections (SCL).  This generalizes this support to also include the
'gcc-toolset-10' SCL in RHEL/CentOS 8.

Reviewed By: stephan.dollberg

Differential Revision: https://reviews.llvm.org/D108908
The file was modifiedclang/lib/Driver/ToolChains/Linux.cpp
The file was modifiedclang/lib/Driver/ToolChains/Gnu.cpp
Commit 58e1a5e4c29325dc985ad4976d65fab53f05e946 by jperier
[flang][mlir] Fix FIR after D108899

After 41d4aa7de68ed551010f27ff04ffc54e7616292a, some builder.getStringAttr
calls in FIR were wrong.
The file was modifiedflang/include/flang/Optimizer/Dialect/FIROps.td
The file was modifiedflang/lib/Optimizer/Dialect/FIROps.cpp
Commit 86f5288eae4a27fd2f497ac45ad087d643ad73a8 by djordje.todorovic
[LiveDebugValues] Cleanup Transfers when removing Entry Value

If we encounter a new debug value, describing the same parameter,
we should stop tracking the parameter's Entry Value. At that point,
in some cases, the Transfer which uses the parameter's Entry Value,
is already emitted. Thanks to the RemoveRedundantDebugValues pass,
many problems with incorrect instruction order and number of DBG_VALUEs
are fixed. However, we still cannot rely on the rule that each new
debug value is set by the previous non-debug instruction in Machine
Basic Block.

When new parameter debug value triggers removal of Backup Entry Value
for the same parameter, do the cleanup of Transfers emitted from Backup
Entry Values. Get the Transfer Instruction which created the new debug
value and search for debug values already emitted from the to-be-deleted
Backup Entry Value and attached to the Transfer Instruction. If found,
delete the Transfer and remove "primary" Entry Value Var Loc from
OpenRanges.

This patch fixes PR47628.

Patch by Nikola Tesic.

Differential revision: https://reviews.llvm.org/D106856
The file was modifiedllvm/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp
The file was modifiedllvm/test/DebugInfo/MIR/X86/dbgcall-site-reference.mir
The file was modifiedllvm/test/DebugInfo/MIR/X86/entry-value-of-modified-param.mir
The file was addedllvm/test/DebugInfo/MIR/X86/backup-entry-values-usage.mir
The file was addedllvm/test/DebugInfo/MIR/X86/remove-entry-value-from-loop.mir
Commit 3973d8b29e249a6ea4aceaa4225dfde5663937c6 by kimanh
[lldb] Return all line entries matchign a line if no column is specified

Previously, if no column was specified, ResolveSymbolContext would take
the first match returned by FindLineEntryIndexByFileIndex, and reuse it
to find subsequent exact matches. With the introduction of columns, columns
are now considered when matching the line entries.

This leads to a problem if one wants to get all existing line entries
that match that line, since now the column is also used for the exact match.
This way, all line entries are filtered out that have a different
column number, but the same line number.

This patch changes that by ignoring the column information of the first match
if the original request of ResolveSymbolContext was also ignoring it.

Reviewed By: mib

Differential Revision: https://reviews.llvm.org/D108816
The file was modifiedlldb/source/Symbol/CompileUnit.cpp
The file was modifiedlldb/unittests/Symbol/TestLineEntry.cpp
Commit 21d11c87a21b007da20cb3b55bfe6a4c33679ee3 by aaron
Silence a signed/unsigned mismatch warning; NFC
The file was modifiedllvm/lib/ExecutionEngine/JITLink/x86_64.cpp
Commit ffcf571107594ff5d02bc2410266efe527787fb0 by Raphael Isemann
[LLDB] Fix 'std::out_of_range' crashing bug when file name completion using file path.

When I run a lldb command that uses filename completion, if I enter a string
that is not only a filename but also a string with a non-file name string added,
such as "./" that is relative path string , it will crash as soon as I press the
[Tab] key. For example, debugging an executable file named "hello" that is
compiled from a file named "hello.c" , and I’ll put a breakpoint on line 3 of
hello.c.

```
$ lldb ./hello
(lldb) breakpoint set --file hello.c --line 3
```

This is not a problem, but if I set "--file ./hello."  and then press [Tab] key
to complete file name, lldb crashes.

```
$ lldb ./hello
(lldb) breakpoint set --file ./hello.terminate called after throwing an instance of 'std::out_of_range'
  what():  basic_string::substr: __pos (which is 8) > this->size() (which is 7)
```

The crash was caused because substr() (in lldb/source/Host/common/Editline.cpp)
cut out string which size is user's input string from the completion string.

I modified the code that erase the user's intput string from current line and
then add the completion string.

Differential Revision: https://reviews.llvm.org/D108817
The file was modifiedlldb/test/API/iohandler/completion/TestIOHandlerCompletion.py
The file was addedlldb/test/API/iohandler/completion/Makefile
The file was modifiedlldb/source/Host/common/Editline.cpp
Commit 2ce889fa4e5cab75fc65d03a4dfae52784d57db9 by Raphael Isemann
[lldb][NFC] Add size tests for empty records with alignment and with empty members

This came up during the Windows bot failure discussing after D105471 . See
also 3d9a9fa6911a5228ce799a7c639e94d322678934 .
The file was modifiedlldb/test/API/lang/cpp/sizeof/TestCPPSizeof.py
The file was modifiedlldb/test/API/lang/c/sizeof/TestCSizeof.py
The file was modifiedlldb/test/API/lang/c/sizeof/main.c
The file was modifiedlldb/test/API/lang/cpp/sizeof/main.cpp
Commit 2e5c17d19e370c4d4f17ee89ca645113692f5407 by wei.huang
[PowerPC][NFC] Rename P10 builtins vec_clrl, vec_clrr to vec_clr_first and vec_clr_last

This patch renames the vector clear left/right builtins vec_clrl, vec_clrr to
vec_clr_first and vec_clr_last to avoid the ambiguities when dealing with endianness.

Reviewed By: amyk, lei

Differential revision: https://reviews.llvm.org/D108702
The file was modifiedclang/test/CodeGen/builtins-ppc-p10vector.c
The file was modifiedclang/lib/Headers/altivec.h
Commit 57b46056b9435b52028fd96bed43f562be1705fd by Jake.Egan
[AIX] Suppress -Waix-compat warning with SmallVector class

When building LLVM with Open XL and -Werror is specified, the -Waix-compat warning becomes an error. This patch updates the SmallVector class to suppress the -Waix-compat warning/error on AIX.

Reviewed By: daltenty

Differential Revision: https://reviews.llvm.org/D108577
The file was modifiedllvm/lib/Support/SmallVector.cpp
Commit 8e6c55c92c807ad77106298d9b7eaf453407d009 by stellaraccident
[mlir][python] Extend C/Python API to be usable for CFG construction.

* It is pretty clear that no one has tried this yet since it was both incomplete and broken.
* Fixes a symbol hiding issues keeping even the generic builder from constructing an operation with successors.
* Adds ODS support for successors.
* Adds CAPI `mlirBlockGetParentRegion`, `mlirRegionEqual` + tests (and missing test for `mlirBlockGetParentOperation`).
* Adds Python property: `Block.region`.
* Adds Python methods: `Block.create_before` and `Block.create_after`.
* Adds Python property: `InsertionPoint.block`.
* Adds new blocks.py test to verify a plausible CFG construction case.

Differential Revision: https://reviews.llvm.org/D108898
The file was modifiedmlir/lib/Bindings/Python/IRCore.cpp
The file was modifiedmlir/include/mlir-c/IR.h
The file was modifiedmlir/test/CAPI/ir.c
The file was modifiedmlir/tools/mlir-tblgen/OpPythonBindingGen.cpp
The file was modifiedmlir/test/mlir-tblgen/op-python-bindings.td
The file was modifiedmlir/lib/CAPI/IR/IR.cpp
The file was addedmlir/test/python/ir/blocks.py
Commit 5ea1c37118699f0ed1da17e0d8562011d0002edd by protze
[libomptarget][amdcgn] Only add opt/llvm-link dependency if TARGET is available

In some build configurations, the target we depend on is not available for declaring the build dependency.
We only need to declare the build dependency, if the build target is available in the same build.

Fixes the issue raised in https://reviews.llvm.org/D107156#2969862
This patch should go into release/13 together with D108404

Differential Revision: https://reviews.llvm.org/D108868
The file was modifiedllvm/runtimes/CMakeLists.txt
The file was modifiedopenmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt
Commit cf56b08d15b6fe4c8b87569529e1d220baf44aea by andrew.litteken
[IRSim] Adding missing comments canonical relation commit

Adding missing comments to IRSimilarityIdentifier.cpp since
they were not properly added in commit 063af63b9664151b3a9206feefa9a6a36a471e80.
The file was modifiedllvm/lib/Analysis/IRSimilarityIdentifier.cpp
Commit 668b045b8d9ff4ea238dbdc6d07b15beaad8c9f3 by dmalyutin
[LSR][NFC] Add test case for pr42770
The file was addedllvm/test/Transforms/LoopStrengthReduce/pr42770.ll
Commit 705d00578128c6089fe05adb175a5306f46c695c by craig.topper
[DAGCombiner][RISCV] Don't use vector types in DAGCombiner::tryStoreMergeOfLoads if we need a rotate.

The check for whether a rotate is possible occurs before the
memory legality checks for the integer type. So it's possible we
decide we can use a rotate, but then fail the legality checks. If
that happens we should not fall back to a vector type. This triggers
an assertion in the rotate handling when it finds a vector type
instead of an integer type.

In theory we could use a shufflevector in place of the rotate, but
right now I'd just like to fix the crash.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D108839
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-store-merge-crash.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Commit 0560a4adb3ef72eeb1697474532f42d78cd23354 by craig.topper
[RISCV] Enable CONCAT_VECTORS for fixed FP vectors.

Reviewed By: frasercrmck

Differential Revision: https://reviews.llvm.org/D108487
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-i2fp.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-conv.ll
Commit c50faffb4eeca004109a1591e56cd7cac2ed1083 by kazu
[llvm] Remove redundant calls to str() and c_str() (NFC)

Identified with readability-redundant-string-cstr.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp
The file was modifiedllvm/lib/InterfaceStub/ELFObjHandler.cpp
The file was modifiedllvm/lib/Target/AVR/AsmParser/AVRAsmParser.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
Commit 5b3fad49661525e4053acaa13f8ac5bde5328462 by daniil.fukalov
[AMDGPU][CostModel] Update shuffle instruction tests. NFC.

New tests ported over from test/Analysis/CostModel/AArch64/shuffle-other.ll.
The file was modifiedllvm/test/Analysis/CostModel/AMDGPU/shufflevector.ll
Commit f564299fe94bade150c845f134284038d27b422a by andrew.litteken
[IROutliner] Ensure instructions at end of candidate are excluded

Occasionally instructions are between the last instruction in a region,
and the following instruction as identified by the Candidate.  This
adds an extra check right before splitting a candidate that excludes the region from being split/checked for outlining to remove errors.

Tests Added:
Tranforms/IROuutliner/outlining-extra-bitcasts.ll

Reviewer: paquette, jroelofs

Differential Revision: https://reviews.llvm.org/D104142
The file was modifiedllvm/lib/Transforms/IPO/IROutliner.cpp
The file was modifiedllvm/test/Transforms/IROutliner/outlining-bitcasts.ll
Commit 9721197520e5badd4e6385399f6b08575c6c8504 by thakis
[lld/mac] Set branchRange a bit more carefully

- Don't subtract thunkSize from branchRange. Most places care about
  the actual maximal branch range. Subtract thunkSize in the one place
  that wants to leave room for a thunk.
- Set it to 0x800_0000 instead of 0xFF_FFFF
- Subtract 4 for the positive branch direction since it's a
  two's complement 24bit number sign-extended mutiplied by 4,
  so its range is -0x800_0000..+0x7FF_FFFC
- Make boundary checks include the boundary values

This doesn't make a huge difference in practice. It's preparation
for a "real" fix for PR51578 -- but it also lets the repro in comment 0
in that bug place one more thunk before hitting the TODO.

Differential Revision: https://reviews.llvm.org/D108897
The file was modifiedlld/MachO/ConcatOutputSection.cpp
The file was modifiedlld/MachO/Arch/ARM64.cpp
The file was modifiedlld/MachO/Target.h
Commit 770602cfa01346db58417fa2f6bfd49f8ed4e9fa by Louis Dionne
[libc++] Various cleanups in the ranges tests

- Rename test files to follow conventions better
- Split constructor tests that were in a single file
- Add missing tests for take_view and transform_view's default constructors
- Add missing tests for transform_view's view/function constructor
- Fix include guards
- Mark some tests as being specific to libc++

Differential Revision: https://reviews.llvm.org/D108829
The file was removedlibcxx/test/std/ranges/range.access/range.access.cend/incomplete.compile.verify.cpp
The file was addedlibcxx/test/std/ranges/range.adaptors/range.take/ctor.view_count.pass.cpp
The file was removedlibcxx/test/std/ranges/range.access/range.access.end/incomplete.compile.verify.cpp
The file was addedlibcxx/test/std/ranges/range.utility/range.subrange/structured_bindings.pass.cpp
The file was removedlibcxx/test/std/ranges/range.utility/range.subrange/access/get.pass.cpp
The file was modifiedlibcxx/test/std/ranges/range.adaptors/range.transform/types.h
The file was modifiedlibcxx/test/std/ranges/range.access/range.prim/empty.incomplete.verify.cpp
The file was addedlibcxx/test/std/ranges/range.adaptors/range.transform/ctor.default.pass.cpp
The file was addedlibcxx/test/std/ranges/range.adaptors/range.transform/ctor.view_function.pass.cpp
The file was removedlibcxx/test/std/ranges/range.utility/range.subrange/subrange_test_types.h
The file was addedlibcxx/test/std/ranges/range.utility/range.subrange/get.pass.cpp
The file was addedlibcxx/test/std/ranges/range.utility/range.subrange/ctor.pair_like_conv.pass.cpp
The file was removedlibcxx/test/std/ranges/range.access/range.access.begin/incomplete.compile.verify.cpp
The file was removedlibcxx/test/std/ranges/range.utility/range.subrange/access/advance.pass.cpp
The file was addedlibcxx/test/std/ranges/range.req/range.range/borrowed_range.subsumption.compile.pass.cpp
The file was removedlibcxx/test/std/ranges/range.access/range.access.cbegin/incomplete.compile.verify.cpp
The file was addedlibcxx/test/std/ranges/range.access/range.access.end/incomplete.verify.cpp
The file was addedlibcxx/test/std/ranges/range.utility/range.subrange/ctor.begin_end.pass.cpp
The file was removedlibcxx/test/std/ranges/range.utility/range.subrange/ctor/range_size.pass.cpp
The file was addedlibcxx/test/std/ranges/range.utility/range.subrange/ctor.range.pass.cpp
The file was modifiedlibcxx/test/std/ranges/range.adaptors/range.drop/dangling.cache.pass.cpp
The file was addedlibcxx/test/std/ranges/range.adaptors/range.take/ctor.default.pass.cpp
The file was modifiedlibcxx/test/std/ranges/range.access/range.prim/data.incomplete.verify.cpp
The file was addedlibcxx/test/std/ranges/range.utility/range.subrange/advance.pass.cpp
The file was addedlibcxx/test/std/ranges/range.utility/range.subrange/primitives.pass.cpp
The file was addedlibcxx/test/std/ranges/range.access/range.access.cbegin/incomplete.verify.cpp
The file was addedlibcxx/test/std/ranges/range.utility/range.subrange/ctor.range_size.pass.cpp
The file was removedlibcxx/test/std/ranges/range.adaptors/range.join.view/ctor.base.pass.cpp
The file was removedlibcxx/test/std/ranges/range.utility/range.subrange/ctor/pair_like_conv.pass.cpp
The file was addedlibcxx/test/std/ranges/range.access/range.access.cend/incomplete.verify.cpp
The file was addedlibcxx/test/std/ranges/range.req/range.range/borrowed_range.compile.pass.cpp
The file was removedlibcxx/test/std/ranges/range.adaptors/range.take/ctor.pass.cpp
The file was addedlibcxx/test/std/ranges/range.utility/range.subrange/ctor.begin_end_size.pass.cpp
The file was removedlibcxx/test/std/ranges/range.range/borrowed_range.compile.pass.cpp
The file was removedlibcxx/test/std/ranges/range.range/borrowed_range.subsumption.compile.pass.cpp
The file was removedlibcxx/test/std/ranges/range.utility/range.subrange/ctor/begin_end.pass.cpp
The file was removedlibcxx/test/std/ranges/range.utility/range.subrange/ctor/begin_end_size.pass.cpp
The file was addedlibcxx/test/std/ranges/range.adaptors/range.join.view/ctor.view.pass.cpp
The file was removedlibcxx/test/std/ranges/range.utility/range.subrange/ctor/range.pass.cpp
The file was removedlibcxx/test/std/ranges/range.utility/range.subrange/access/structured_binding.pass.cpp
The file was addedlibcxx/test/std/ranges/range.utility/range.subrange/types.h
The file was addedlibcxx/test/std/ranges/range.access/range.access.begin/incomplete.verify.cpp
The file was removedlibcxx/test/std/ranges/range.utility/range.subrange/access/primitives.pass.cpp
Commit 1724a164378f1fb5210771680eb577ddf13c5a47 by andrei.elovikov
[NFC][clang] Move IR-independent parts of target MV support to X86TargetParser.cpp

...that is located under llvm/lib/Support/.

Reviewed By: erichkeane

Differential Revision: https://reviews.llvm.org/D108423
The file was modifiedclang/lib/CodeGen/CodeGenFunction.h
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedllvm/include/llvm/Support/X86TargetParser.h
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedllvm/lib/Support/X86TargetParser.cpp
The file was modifiedclang/lib/Basic/Targets/X86.cpp
Commit 301fbf9b8115620480db851d091cbbb516cd983d by listmail
[SCEV] Clarify the overflow precondition of computeMaxBECountForLT [NFC]

And add a test case to illustrate that we do in fact produce the right result for the multiple exit case.  I have gotten myself confused at least three times when reading this code, so clarify to prevent future confusion.
The file was modifiedllvm/test/Analysis/ScalarEvolution/max-trip-count.ll
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolution.h
Commit 7d7765cef50252e760fc9bbc657f7c29934c30e8 by Louis Dionne
[libcxx][docs] Mark LWG3348 as complete

Mark LWG3348 as complete. The `__cpp_lib_unwrap_ref` feature test macro
was placed in `<functional>` in 466df1718e41fe2fca6ce6bd98c01b18f42c05e4

Differential Revision: https://reviews.llvm.org/D108920
The file was modifiedlibcxx/docs/Status/Cxx20Issues.csv
Commit 881677b58a1f88076fccee5f32152d981de66b74 by nikita.ppv
[AsmParser] Support %ty* in force-opaque-pointers mode

Only enforce that ptr* is illegal if the base type is a simple type,
not when it is something like %ty, where %ty may resolve to an
opaque pointer in force-opaque-pointers mode.

Differential Revision: https://reviews.llvm.org/D108876
The file was modifiedllvm/lib/AsmParser/LLParser.cpp
The file was modifiedllvm/test/Other/force-opaque-ptrs.ll
Commit f39256e3a5dd1f3d7311703003608340ffdb42bc by hoy
[CSSPGO] Avoid repeatedly computing md5 hash code for pseudo probe inline contexts.

Md5 hashing is expansive. Using a hash map to look up already computed GUID for dwarf names. Saw a 2% build time improvement on an internal large application.

Reviewed By: wenlei

Differential Revision: https://reviews.llvm.org/D108722
The file was modifiedllvm/lib/CodeGen/AsmPrinter/PseudoProbePrinter.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/PseudoProbePrinter.cpp
Commit 5097b6e35291c23b50002c651b80ae8f770a015c by goncharov.mikhail
Revert "[SLP]Improve graph reordering."

This reverts commit 84cbd71c95923f9912512f3051c6ab548a99e016.

This commit breaks one of the internal tests. As agreed with Alexey I
will provide the reproducer later.
The file was modifiedllvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/jumbled_store_crash.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/transpose.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/split-load8_2-unord.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/jumbled-load.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/reorder_repeated_ops.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/addsub.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/vectorize-reorder-reuse.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/crash_cmpop.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/jumbled-load-multiuse.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/transpose-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/extract.ll
Commit 0e42ec1add336e7fbf6cc1f82f663cabe48bf55e by dblaikie
DebugInfo: Correct printing empty template parameter packs

Empty packs in the non-final position would result in an extra ", ".
Empty packs in the final position would result in missing the space
between trailing >>.
The file was modifiedclang/lib/AST/TypePrinter.cpp
The file was modifiedclang/test/CodeGenCXX/debug-info-template.cpp
Commit ed4946fe20964509b27b38e74331c36857d4be53 by Louis Dionne
[libc++abi] Avoid the warning: "__EXCEPTIONS" is not defined, evaluates to 0 [-Werror=undef]

Differential Revision: https://reviews.llvm.org/D108896
The file was modifiedlibcxxabi/include/__cxxabi_config.h
Commit 0529e2e01888129b21becd1fe3a61d9cb07c6fcd by nikita.ppv
[InstrInfo] Use 64-bit immediates for analyzeCompare() (NFCI)

The backend generally uses 64-bit immediates (e.g. what
MachineOperand::getImm() returns), so use that for analyzeCompare()
and optimizeCompareInst() as well. This avoids truncation for
targets that support immediates larger 32-bit. In particular, we
can avoid the bugprone value normalization hack in the AArch64
target.

This is a followup to D108076.

Differential Revision: https://reviews.llvm.org/D108875
The file was modifiedllvm/lib/Target/SystemZ/SystemZInstrInfo.h
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.h
The file was modifiedllvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonInstrInfo.h
The file was modifiedllvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.cpp
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.h
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.h
The file was modifiedllvm/include/llvm/CodeGen/TargetInstrInfo.h
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.h
The file was modifiedllvm/lib/Target/Hexagon/HexagonSplitDouble.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
The file was modifiedllvm/lib/Target/Lanai/LanaiInstrInfo.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.cpp
The file was modifiedllvm/lib/CodeGen/PeepholeOptimizer.cpp
The file was modifiedllvm/lib/Target/Lanai/LanaiInstrInfo.h
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
Commit 83df94067d367d91dcc37e269a3d7317ebe97bb4 by thakis
[lld/mac] Tweak estimateStubsInRangeVA a bit

- Move a few variables closer to their uses, remove some completely
  (no behavior change)
- Add some comments
- Make maxPotentialThunks include calls to stubs. It's possible that
  an earlier call to a stub late in the stub table will need a thunk,
  and that inserted thunk could push a stub earlier in the stub table
  out of range. This is unlikely to happen, but usually there are
  way fewer stub calls than non-stub calls, so if we're doing a
  conservative approximation here we might as well do it correctly.
  (For chromium's unit_tests target, 134421/242639 stub calls are
  direct calls without this change, compared to 134408/242639 with
  this change)

No real, meaningful behavior difference.

Differential Revision: https://reviews.llvm.org/D108924
The file was modifiedlld/MachO/ConcatOutputSection.cpp
Commit efa340fbd264c1a1fc3d0c41275536693369f897 by david.green
[ARM] Workaround tailpredication min/max costmodel

The min/max intrinsics are not yet canonical, but when they are the tail
predications analysis will change from treating them like icmp to
treating them like intrinsics. Unfortunately, they can currently produce
better code by not being tail predicated thanks to the vectorizer picking
higher VF's and the backend folding to better instructions (especially
for saturate patterns). In the long run we will need to improve the
vectorizers cost modelling, recognizing the instruction directly, but in
the meantime this treats min/max as before to prevent performance
regressions.
The file was addedllvm/test/Transforms/PhaseOrdering/ARM/arm_mult_q15.ll
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
Commit 843da6f4085cc65d4d3772f3372171cf590933d5 by pyadav2299
[docs][GlobalISel]Adding info for G_JUMP_TABLE generic opcode

Added description of jump table and G_JUMP_TABLE opcode.

Differential Revision: https://reviews.llvm.org/D107630
The file was modifiedllvm/docs/GlobalISel/GenericOpcode.rst
Commit 47b239eb5a17065d13c317600c46e56ffe2d6c75 by kyulee
[DIBuilder] Do not replace empty enum types

It looks like this array was missed in 4276d4a8d08b7640eb57cabf6988a5cf65b228b6

Fixed tests that expected `elements` to be empty or depeneded on the order of the empty DINode.

Reviewed By: aprantl

Differential Revision: https://reviews.llvm.org/D107024
The file was modifiedclang/test/CodeGenCXX/debug-info-template.cpp
The file was modifiedclang/test/CodeGenCoroutines/coro-dwarf.cpp
The file was modifiedclang/test/CodeGenCXX/debug-info-cxx1y.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/phi-mir-debugify.mir
The file was modifiedclang/test/CodeGen/debug-info-macro.c
The file was modifiedllvm/test/DebugInfo/debugify.ll
The file was modifiedclang/test/CodeGenCXX/debug-info-codeview-var-templates.cpp
The file was modifiedllvm/lib/IR/DIBuilder.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/constant-mir-debugify.mir
The file was modifiedclang/test/CodeGen/debug-info-codeview-heapallocsite.c
The file was modifiedclang/test/CodeGenCXX/debug-info-var-template-partial-spec.cpp
Commit 070090cfa57f282e64ef355d2f8b8232bddedaf5 by chih-ping.chen
[DebugInfo] Remove the restriction on the size of DIStringType
in DebugHandlerBase::isUnsignedDIType.

Differential Revision: https://reviews.llvm.org/D108559
The file was addedllvm/test/CodeGen/Generic/dbg-distringtype-uint.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
Commit daf0dfb786f0d72c2cd39a64a97f1593ccaebadf by i
[libc++] Support -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=on in CI

This fixes -isystem/-L/-Wl,-rpath paths when -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=on
is used (https://reviews.llvm.org/D107799#2969650).

* `-isystem path/to/build/generic-cxx17/include/c++/v1`. `build/generic-cxx17/include/x86_64-unknown-linux-gnu/c++/v1 (__config_site)` is missing.
* `-L path/to/build/generic-cxx17/lib`. Should be `build/generic-cxx17/lib/x86_64-unknown-linux-gnu` instead

Reviewed By: ldionne, phosek, #libc

Differential Revision: https://reviews.llvm.org/D108836
The file was modifiedlibcxx/test/configs/libcxx-trunk-static.cfg.in
The file was modifiedlibcxx/test/configs/libcxx-trunk-shared.cfg.in
Commit db9de22f2b6900bdf6f4ada73cfd6eff04de7864 by resistor
Teach the AArch64 backend patterns to generate the EOR3 instruction.

Adds patterns to match the EOR3 instruction.

Reviewed By: dmgreen

Differential Revision: https://reviews.llvm.org/D108793
The file was addedllvm/test/CodeGen/AArch64/eor3.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.td
Commit 0bbb2d003622d3743a33623dcfc382e3ceadce3b by pklausler
[flang] Fold CSHIFT

Implement folding of the transformational intrinsic function
CSHIFT for all types.

Differential Revision: https://reviews.llvm.org/D108931
The file was modifiedflang/lib/Evaluate/fold-implementation.h
The file was modifiedflang/lib/Evaluate/fold-logical.cpp
The file was modifiedflang/lib/Evaluate/fold-integer.cpp
The file was modifiedflang/lib/Evaluate/fold-real.cpp
The file was modifiedflang/lib/Evaluate/fold-complex.cpp
The file was modifiedflang/lib/Evaluate/fold-character.cpp
The file was modifiedflang/include/flang/Evaluate/tools.h
The file was modifiedflang/test/Evaluate/folding22.f90
The file was addedflang/test/Evaluate/folding27.f90
Commit 789f01283d52065b10049b58a3288c4abd1ef351 by bjorn.a.pettersson
[SelectionDAG] Fix miscompile bugs related to smul.fix.sat with scale zero

When expanding a SMULFIXSAT ISD node (usually originating from
a smul.fix.sat intrinsic) we've applied some optimizations for
the special case when the scale is zero. The idea has been that
it would be cheaper to use an SMULO instruction (if legal) to
perform the multiplication and at the same time detect any overflow.
And in case of overflow we could use some SELECT:s to replace the
result with the saturated min/max value. The only tricky part
is to know if we overflowed on the min or max value, i.e. if the
product is positive or negative. Unfortunately the implementation
has been incorrect as it has looked at the product returned by the
SMULO to determine the sign of the product. In case of overflow that
product is truncated and won't give us the correct sign bit.

This patch is adding an extra XOR of the multiplication operands,
which is used to determine the sign of the non truncated product.

This patch fixes PR51677.

Reviewed By: lebedev.ri

Differential Revision: https://reviews.llvm.org/D108938
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/smul_fix_sat_constants.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
The file was modifiedllvm/test/CodeGen/X86/smul_fix_sat.ll
Commit 201f6446da5643fb13cbbbe58c58311a70a9bd43 by craig.topper
[LegalizeTypes][X86] Improve ExpandIntRes_FP_TO_SINT/ExpandIntRes_FP_TO_UINT when input is SoftPromoteHalf.

Instead of splitting off the fp16 to float conversion and generating
a libcall, we should split the operation into fp16 to float and float
to integer operations. This will allow the float to integer conversion
to go through any custom handling the target has. If the target doesn't
have custom handling then we should come back to ExpandIntRes_FP_TO_SINT/
ExpandIntRes_FP_TO_UINT automatically to create the libcall.

This avoids generating libcalls on 32-bit X86. These library functions may
not exist in 32-bit libgcc. At least for LLVM, we never generate them when
hardware floating point instructions are available.

Differential Revision: https://reviews.llvm.org/D108933
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
The file was modifiedllvm/test/CodeGen/X86/half.ll
Commit 203d38b234b8a744f364807ff0f15644453b14c7 by rob.suderman
[mlir][tosa] Small refactor to the functionality of Conv2D and Fully_connected to add the bias at the end of the convolution

Made to adjust for a modification to the tiling algorithm

Reviewed By: rsuderman

Differential Revision: https://reviews.llvm.org/D108746
The file was modifiedmlir/lib/Conversion/TosaToLinalg/TosaToLinalg.cpp
The file was modifiedmlir/test/Conversion/TosaToLinalg/tosa-to-linalg.mlir
Commit c1b7540645cf8d840385ecd6ee7f1f5c1e7c6fc2 by nikita.ppv
[TTI] Sink IVDescriptors.h include (NFC)

Forward declare RecurrenceDescriptor and include IVDescritor.h
only in implementation code that actually needs it.
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfo.h
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVTargetTransformInfo.h
Commit c58d4c4bd347474dd82dfa79b5f04bf09b58b66f by andrew.litteken
[IROutliner] Changing outliner to prioritize reductions on assembly rather than IR instruction

Currently, the IROutliner uses a simple metric to outline the largest amount
of IR possible to outline first if it fits the cost model. This is model
loses out on smaller blocks of code that have higher reductions in cost that
are contained within larger blocks of IR.

This reverses the order, where we calculate all of the costs first, and then
reorder and extract items based on the calculated results.

Reviewers: paquette

Differential Revision: https://reviews.llvm.org/D106440
The file was modifiedllvm/test/Transforms/IROutliner/outlining-bitcasts.ll
The file was modifiedllvm/test/Transforms/IROutliner/opt-remarks.ll
The file was modifiedllvm/include/llvm/Transforms/IPO/IROutliner.h
The file was modifiedllvm/lib/Transforms/IPO/IROutliner.cpp
Commit 7a2a765745973ebeb041276d2d9489a000ba9371 by sivachandra
[libc] Add mtx_destroy which does nothing.

There is not cleanup to be done for the mutex type so mtx_destroy does
nothing.
The file was modifiedlibc/src/threads/linux/CMakeLists.txt
The file was modifiedlibc/test/src/threads/call_once_test.cpp
The file was modifiedlibc/test/src/threads/mtx_test.cpp
The file was addedlibc/src/threads/linux/mtx_destroy.cpp
The file was addedlibc/src/threads/mtx_destroy.h
The file was modifiedlibc/test/src/threads/CMakeLists.txt
The file was modifiedlibc/config/linux/x86_64/entrypoints.txt
The file was modifiedlibc/spec/stdc.td
The file was modifiedlibc/src/threads/CMakeLists.txt
Commit 30dfd3449e45ac371012c6e46c77ab9089496d4e by tra
[MemCpyOpt] Allow specifying --enable-memcpyopt-without-libcalls more than once

so we can override it via clang's CLI if necessary.
The file was modifiedllvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
Commit ea8539111d444ffb93ab09c5865d9a1a0927cb2c by vtjnash
[COFF] Force Symbols containing '.' to be quoted

In D87099, the mangler learned to quote export directives that contain
special characters. Only alhpanumerical characters as well as
'_', '$', '.' and '@' were exmpt from this quoting. However, at least
binutils considers an unquoted '.' to be syntax and object files
containing such symbols will cause errors during linking. Fix that
by removing '.' from the list of allowed exemptions.

Differential Revision: https://reviews.llvm.org/D100359
The file was modifiedllvm/test/CodeGen/X86/dllexport.ll
The file was modifiedllvm/lib/IR/Mangler.cpp
Commit 7f2ce19d1cf1dd08330ae8e5ef8aa2130aaf5833 by michaelrj
[libc][nfc][obvious] fix typos in FPUtil

Fix minor typos in FPUtil comments.

Reviewed By: michaelrj

Differential Revision: https://reviews.llvm.org/D108952
The file was modifiedlibc/src/__support/FPUtil/FMA.h
The file was modifiedlibc/src/__support/FPUtil/generic/README.md
The file was modifiedlibc/src/__support/FPUtil/Sqrt.h
Commit faf1c22408cfea27749632d880e0a9c0d6b7a568 by clattner
[Builder] Eliminate the StringRef/StringAttr forms of getSymbolRefAttr.

The StringAttr version doesn't need a context, so we can just use the
existing `SymbolRefAttr::get` form.  The StringRef version isn't preferred
so we want to encourage people to use StringAttr.

There is an additional form of getSymbolRefAttr that takes a (SymbolTrait
implementing) operation.  This should also be moved, but I'll do that as
a separate patch.

Differential Revision: https://reviews.llvm.org/D108922
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
The file was modifiedmlir/include/mlir/IR/BuiltinAttributes.h
The file was modifiedmlir/lib/Dialect/SPIRV/Transforms/DecorateCompositeTypeLayoutPass.cpp
The file was modifiedmlir/lib/IR/BuiltinAttributes.cpp
The file was modifiedmlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
The file was modifiedmlir/lib/Conversion/GPUCommon/OpToFuncCallLowering.h
The file was modifiedmlir/examples/toy/Ch5/mlir/Dialect.cpp
The file was modifiedmlir/lib/Target/SPIRV/Deserialization/DeserializeOps.cpp
The file was modifiedmlir/lib/Conversion/GPUToVulkan/ConvertGPULaunchFuncToVulkanLaunchFunc.cpp
The file was modifiedmlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp
The file was modifiedflang/include/flang/Optimizer/Dialect/FIROps.td
The file was modifiedmlir/lib/Dialect/StandardOps/Transforms/DecomposeCallGraphTypes.cpp
The file was modifiedmlir/lib/Transforms/NormalizeMemRefs.cpp
The file was modifiedmlir/examples/toy/Ch4/mlir/Dialect.cpp
The file was modifiedflang/lib/Lower/IntrinsicCall.cpp
The file was modifiedmlir/include/mlir/IR/BuiltinAttributes.td
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was modifiedmlir/examples/toy/Ch7/mlir/MLIRGen.cpp
The file was modifiedmlir/lib/IR/Builders.cpp
The file was modifiedmlir/lib/Parser/AttributeParser.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/FunctionCallUtils.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp
The file was modifiedmlir/include/mlir/IR/OpBase.td
The file was modifiedmlir/lib/Conversion/LinalgToStandard/LinalgToStandard.cpp
The file was modifiedmlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp
The file was modifiedmlir/lib/Conversion/GPUToVulkan/ConvertLaunchFuncToVulkanCalls.cpp
The file was modifiedmlir/examples/toy/Ch3/mlir/Dialect.cpp
The file was modifiedmlir/lib/Conversion/MemRefToLLVM/MemRefToLLVM.cpp
The file was modifiedmlir/examples/toy/Ch2/mlir/Dialect.cpp
The file was modifiedflang/lib/Optimizer/Dialect/FIROps.cpp
The file was modifiedmlir/include/mlir/IR/Builders.h
The file was modifiedmlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp
The file was modifiedmlir/examples/toy/Ch7/mlir/Dialect.cpp
The file was modifiedmlir/lib/Dialect/GPU/IR/GPUDialect.cpp
The file was modifiedmlir/examples/toy/Ch6/mlir/Dialect.cpp
The file was modifiedmlir/lib/Parser/Parser.cpp
Commit 3fefebabe5154929f987b0418ed99bbe34ed4b4e by pklausler
[flang] Fold EOSHIFT

Implement constant folding for the transformational intrinsic
function EOSHIFT.

Differential Revision: https://reviews.llvm.org/D108941
The file was modifiedflang/lib/Evaluate/fold-logical.cpp
The file was addedflang/test/Evaluate/folding23.f90
The file was modifiedflang/lib/Evaluate/fold-implementation.h
The file was modifiedflang/lib/Evaluate/intrinsics.cpp
Commit ba72cfe73464b9f1e06f2cd2bed93b07483c0be1 by ravishankarm
[mlir] Add an interface to allow operations to specify how they can be tiled.

An interface to allow for tiling of operations is introduced. The
tiling of the linalg.pad_tensor operation is modified to use this
interface.

Differential Revision: https://reviews.llvm.org/D108611
The file was modifiedmlir/test/Dialect/Linalg/tile-pad-tensor-op.mlir
The file was modifiedmlir/include/mlir/Interfaces/CMakeLists.txt
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgOps.td
The file was modifiedmlir/lib/Interfaces/CMakeLists.txt
The file was modifiedmlir/lib/Dialect/Linalg/IR/CMakeLists.txt
The file was modifiedmlir/lib/Dialect/Utils/StaticValueUtils.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgOps.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
The file was modifiedutils/bazel/llvm-project-overlay/mlir/BUILD.bazel
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
The file was addedmlir/lib/Interfaces/TilingInterface.cpp
The file was addedmlir/include/mlir/Interfaces/TilingInterface.h
The file was addedmlir/include/mlir/Interfaces/TilingInterface.td
Commit b5da3120b8ca99ad626af937eff0509ffa8e3440 by keithbsmiley
[llvm-cov][NFC] Add test for coverage-prefix-map remappings

This test covers acts as a regression test for these fixes:

c75a0a1e9dc29be4e00d37d0d00288afc1a6153f
dd388ba3e0b0a5f06565d0bcb6e1aebb5daac065

Differential Revision: https://reviews.llvm.org/D108805
The file was addedllvm/test/tools/llvm-cov/Inputs/coverage_prefix_map/main.profdata
The file was addedllvm/test/tools/llvm-cov/Inputs/coverage_prefix_map/bar.h
The file was addedllvm/test/tools/llvm-cov/Inputs/coverage_prefix_map/main.cc
The file was addedllvm/test/tools/llvm-cov/coverage-prefix-map.test
The file was addedllvm/test/tools/llvm-cov/Inputs/coverage_prefix_map/main.covmapping
Commit 93764ff6e2005b92057cffa9b3866307e2de260f by vsapsai
[modules] Fix miscompilation when using two RecordDecl definitions with the same name.

When deserializing a RecordDecl we don't enforce that redeclaration
chain contains only a single definition. So if the canonical decl is not
a definition itself, `RecordType::getDecl` can return different objects
before and after an include. It means we can build CGRecordLayout for
one RecordDecl with its set of FieldDecl but try to use it with
FieldDecl belonging to a different RecordDecl. With assertions enabled
it results in

> Assertion failed: (FieldInfo.count(FD) && "Invalid field for record!"),
> function getLLVMFieldNo, file llvm-project/clang/lib/CodeGen/CGRecordLayout.h, line 199.

and with assertions disabled a bunch of fields are treated as their
memory is located at offset 0.

Fix by keeping the first encountered RecordDecl definition and marking
the subsequent ones as non-definitions. Also need to merge FieldDecl
properly, so that `getPrimaryMergedDecl` works correctly and during name
lookup we don't treat fields from same-name RecordDecl as ambiguous.

rdar://80184238

Differential Revision: https://reviews.llvm.org/D106994
The file was addedclang/test/Modules/merge-record-definition-nonmodular.m
The file was addedclang/test/Modules/Inputs/merge-record-definition/RecordDefIncluder.framework/Modules/module.modulemap
The file was addedclang/test/Modules/merge-record-definition.m
The file was addedclang/test/Modules/Inputs/merge-record-definition/RecordDefIncluder.framework/Headers/RecordDefIncluder.h
The file was modifiedclang/lib/Serialization/ASTCommon.cpp
The file was modifiedclang/lib/Serialization/ASTReaderDecl.cpp
The file was addedclang/test/Modules/Inputs/merge-record-definition/RecordDef.framework/Modules/module.modulemap
The file was addedclang/test/Modules/Inputs/merge-record-definition/RecordDef.framework/Headers/RecordDef.h
The file was addedclang/test/Modules/Inputs/merge-record-definition/RecordDefHidden.framework/Headers/Hidden.h
The file was addedclang/test/Modules/merge-record-definition-visibility.m
The file was addedclang/test/Modules/Inputs/merge-record-definition/RecordDefHidden.framework/Headers/Visible.h
The file was modifiedclang/include/clang/Serialization/ASTReader.h
The file was addedclang/test/Modules/Inputs/merge-record-definition/RecordDefCopy.framework/Modules/module.modulemap
The file was addedclang/test/Modules/Inputs/merge-record-definition/RecordDefCopy.framework/Headers/RecordDefCopy.h
The file was addedclang/test/Modules/Inputs/merge-record-definition/RecordDefHidden.framework/Modules/module.modulemap
Commit 86c8f395ae7ad901a4b64fda67d367610c05a5cb by thakis
[lld/mac] Leave more room for thunks in thunk placement code

Fixes PR51578 in practice.

Currently there's only enough room for a single thunk, which for real-life code
isn't enough. The error case only happens when there are many branch statements
very close to each other (0 or 1 instructions apart), with the function at the
finalization barrier small.

There's a FIXME on what to do if we hit this case, but that suggestion sounds
complicated to me (see end of PR51578 comment 5 for why).

Instead, just leave more room for thunks. Chromium's unit_tests links fine with
room for 3 thunks. Leave room for 100, which should fix this for most cases in
practice.

There's little cost for leaving lots of room: This slop value only determines
when we finalize sections, and we insert thunks for forward jumps into
unfinalized sections. So leaving room means we'll need a few more thunks, but
the thunk jump range is 128 MiB while a single thunk is just 12 bytes.

For Chromium's unit_tests:
With a slop of   3: thunk calls = 355418, thunks = 10903
With a slop of 100: thunk calls = 355426, thunks = 10904

Chances are 100 is enough for all use cases we'll hit in practice, but even
bumping it to 1000 would probably be fine.

Differential Revision: https://reviews.llvm.org/D108930
The file was modifiedlld/MachO/ConcatOutputSection.cpp
The file was addedlld/test/MachO/arm64-thunk-starvation.s
Commit f10d003b0c1e99354266be3fa23b6d9961a3c6ba by wangliushuai
[tsan] Add environment variable TSAN_SYMBOLIZER_PATH as we do in other sanitizers

ASan, LSan, MSan and UBSan all allow to use environment variable `*SAN_SYMBOLIZER_PATH` to pass the symbolizer path, this patch add `TSAN_SYMBOLIZER_PATH` to TSan.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D108911
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_flags.cpp
Commit 2dfb66833fd23a0bf03c3e610e9b985a8141a4cf by ravishankarm
Fix unused variable in release build.

Differential Revision: https://reviews.llvm.org/D108963
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
Commit b9db70369b7799887b817e13109801795e4d70fc by hoy
[CSSPGO] Split context string to deduplicate function name used in the context.

Currently context strings contain a lot of duplicated function names and that significantly increase the profile size. This change split the context into a series of {name, offset, discriminator} tuples so function names used in the context can be replaced by the index into the name table and that significantly reduce the size consumed by context.

A follow-up improvement made in the compiler and profiling tools is to avoid reconstructing full context strings which is  time- and memory- consuming. Instead a context vector of `StringRef` is adopted to represent the full context in all scenarios. As a result, the previous prevalent profile map which was implemented as a `StringRef` is now engineered as an unordered map keyed by `SampleContext`. `SampleContext` is reshaped to using an `ArrayRef` to represent a full context for CS profile. For non-CS profile, it falls back to use `StringRef` to represent a contextless function name. Both the `ArrayRef` and `StringRef` objects are underpinned by real array and string objects that are stored in producer buffers. For compiler, they are maintained by the sample reader. For llvm-profgen, they are maintained in `ProfiledBinary` and `ProfileGenerator`. Full context strings can be generated only in those cases of debugging and printing.

When it comes to profile format, nothing has changed to the text format, though internally CS context is implemented as a vector. Extbinary format is only changed for CS profile, with an additional `SecCSNameTable` section which stores all full contexts logically in the form of `vector<int>`, which each element as an offset points to `SecNameTable`. All occurrences of contexts elsewhere are redirected to using the offset of `SecCSNameTable`.

Testing
This is no-diff change in terms of code quality and profile content (for text profile).

For our internal large service (aka ads), the profile generation is cut to half, with a 20x smaller string-based extbinary format generated.

The compile time of ads is dropped by 25%.

Differential Revision: https://reviews.llvm.org/D107299
The file was modifiedllvm/include/llvm/Transforms/IPO/ProfiledCallGraph.h
The file was modifiedllvm/lib/ProfileData/SampleProf.cpp
The file was modifiedllvm/tools/llvm-profgen/ProfileGenerator.cpp
The file was modifiedllvm/lib/ProfileData/SampleProfWriter.cpp
The file was modifiedllvm/include/llvm/ProfileData/SampleProfReader.h
The file was modifiedllvm/tools/llvm-profgen/ProfileGenerator.h
The file was modifiedllvm/test/tools/llvm-profgen/cs-interrupt.test
The file was modifiedllvm/include/llvm/ProfileData/SampleProf.h
The file was modifiedllvm/tools/llvm-profdata/llvm-profdata.cpp
The file was modifiedllvm/tools/llvm-profgen/ProfiledBinary.cpp
The file was modifiedllvm/lib/MC/MCPseudoProbe.cpp
The file was modifiedllvm/test/tools/llvm-profgen/recursion-compression-noprobe.test
The file was modifiedllvm/include/llvm/ProfileData/ProfileCommon.h
The file was modifiedllvm/lib/ProfileData/ProfileSummaryBuilder.cpp
The file was modifiedllvm/include/llvm/MC/MCPseudoProbe.h
The file was modifiedllvm/include/llvm/ProfileData/SampleProfWriter.h
The file was modifiedllvm/test/tools/llvm-profgen/noinline-cs-noprobe.test
The file was modifiedllvm/tools/llvm-profgen/PerfReader.h
The file was modifiedllvm/test/tools/llvm-profdata/Inputs/cs-sample.proftext
The file was modifiedllvm/test/tools/llvm-profgen/recursion-compression-pseudoprobe.test
The file was modifiedllvm/tools/llvm-profgen/CSPreInliner.cpp
The file was modifiedllvm/tools/llvm-profgen/PerfReader.cpp
The file was modifiedllvm/tools/llvm-profgen/ProfiledBinary.h
The file was modifiedllvm/tools/llvm-profgen/CSPreInliner.h
The file was modifiedllvm/lib/ProfileData/SampleProfReader.cpp
The file was removedllvm/test/Transforms/SampleProfile/Inputs/csspgo-import-list.prof.extbin
The file was modifiedllvm/test/Transforms/SampleProfile/csspgo-import-list.ll
The file was modifiedllvm/unittests/ProfileData/SampleProfTest.cpp
The file was modifiedllvm/include/llvm/Transforms/IPO/SampleContextTracker.h
The file was modifiedllvm/test/Transforms/SampleProfile/profile-context-tracker-debug.ll
The file was modifiedllvm/tools/llvm-profgen/CallContext.h
The file was modifiedllvm/lib/Transforms/IPO/SampleContextTracker.cpp
Commit b8fc71b7aeeda0c86a4920da201cc19132ad6d03 by aheejin
[WebAssembly] Share rethrowing BBs in LowerEmscriptenEHSjLj

There are three kinds of "rethrowing" BBs in this pass:
1. In Emscripten SjLj, after a possibly longjmping function call, we
   check if the thrown longjmp corresponds to one of setjmps within the
   current function. If not, we rethrow the longjmp by calling
   `emscripten_longjmp`.
2. In Emscripten EH, after a possibly throwing function call, we check
   if the thrown exception corresponds to the current `catch` clauses.
   If not, we rethrow the exception by calling `__resumeException`.
3. When both Emscripten EH and SjLj are used, when we check for an
   exception after a possibly throwing function call, it is possible
   that we get not an exception but a longjmp. In this case, we
   shouldn't swallow it; we should rethrow the longjmp by calling
   `emscripten_longjmp`.
4. When both Emscripten EH and SjLj are used, when we check for a
   longjmp after a possibly longjmping function call, it is possible
   that we get not a longjmp but an exception. In this case, we
   shouldn't swallot it; we should rethrow the exception by calling
   `__resumeException`.

Case 1 is in Emscripten SjLj, 2 is in Emscripten EH, and 3 and 4 are
relevant when both Emscripten EH and SjLj are used. 3 and 4 were first
implemented in D106525.

We create BBs for 1, 3, and 4 in this pass. We create those BBs for
every throwing/longjmping function call, along with other BBs that
contain condition checks. What this CL does is to create a single BB
within a function for each of 1, 3, and 4 cases. These BBs are exiting
BBs in the function and thus don't have successors, so easy to be shared
between calls.

The names of BBs created are:
Case 1: `call.em.longjmp`
Case 3: `rethrow.exn`
Case 4: `rethrow.longjmp`

For the case 2 we don't currently create BBs; we only replace the
existing `resume` instruction with `call @__resumeException`. And Clang
already creates only a single `resume` BB per function and reuses it,
so we don't need to optimize this case.

Not sure what are good benchmarks for EH/SjLj, but this decreases the
size of the object file for `grfmt_jpeg.bc` (presumably from opencv) we
got from one of our users by 8.9%. Even after running `wasm-opt -O4` on
them, there is still 4.8% improvement.

Reviewed By: dschuff

Differential Revision: https://reviews.llvm.org/D108945
The file was modifiedllvm/test/CodeGen/WebAssembly/lower-em-sjlj-debuginfo.ll
The file was modifiedllvm/test/CodeGen/WebAssembly/lower-em-ehsjlj.ll
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp
The file was modifiedllvm/test/CodeGen/WebAssembly/lower-em-sjlj.ll
Commit 3419e85b15e35e4b5b4d0cd8153fdbe0958e80c7 by aheejin
[WebAssembly] Free setjmpTable before exiting calls in EmSjLj

This is an improvement over D107852. We don't need to enumerate specific
function names; we can just check for `noreturn` attribute. This also
requires us to make sure `__resumeExeption` and `emscripten_longjmp`
have `noreturn` attribute too; one of them is a JS function and the
other calls a JS function so Clang does not have a way to deduce they
don't return.

This is effectively NFC, because I'm not sure if there is an additional
case this case covers; if we add a custom function call that has
`noreturn` attribute, it will be processed within the SjLj handling and
turned into `__invoke` call. So this really applies to some special
functions like `emscripten_longjmp`.

Reviewed By: dschuff

Differential Revision: https://reviews.llvm.org/D108955
The file was modifiedllvm/test/CodeGen/WebAssembly/lower-em-sjlj.ll
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp
Commit f05ff4f7570ca009f22f5e2fe8c6361f28faaa8a by stellaraccident
[mlir][python] Apply py::module_local() to all classes.

* This allows multiple MLIR-API embedding downstreams to co-exist in the same process.
* I believe this is the last thing needed to enable isolated embedding.

Differential Revision: https://reviews.llvm.org/D108605
The file was modifiedmlir/lib/Bindings/Python/IRAttributes.cpp
The file was modifiedmlir/lib/Bindings/Python/IRCore.cpp
The file was modifiedmlir/lib/Bindings/Python/IRAffine.cpp
The file was modifiedmlir/lib/Bindings/Python/Pass.cpp
The file was modifiedmlir/lib/Bindings/Python/ExecutionEngineModule.cpp
The file was modifiedmlir/lib/Bindings/Python/MainModule.cpp
Commit 4f3a92ca0aff115ee17649610c46d8705e550a03 by dblaikie
DebugInfo: Refactor/deduplicate various template argument list emission

Streamline template arguments across types, variables, and functions -
for convenient reuse in experiments related to template argument list
reconstitution (not including template argument lists in the "name" of
those entities, and leaving it to debug info consumers to rebuild the
full template name from the semantic descriptions of the argument lists)

But the change seems like a good refactoring/cleanup anyway.

I'd certainly be open to suggestions about how this might be more
streamlined - like is there no generic way to query template argument
lists across the 3 kinds of entities, rather than needing special case
code?
The file was modifiedclang/lib/CodeGen/CGDebugInfo.h
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp