UnstableChanges

Summary

  1. [MLIR] LLVM Dialect: add llvm.cmpxchg and improve llvm.atomicrmw custom (details)
  2. [ARM][MVE] Enable masked scatter (details)
  3. Reapply: [MachO] Add a test for detecting reserved unit length. (details)
  4. [LLD][ELF] Add support for INPUT_SECTION_FLAGS (details)
  5. Regenerate rotated uxt tests (details)
  6. [TargetLowering] SimplifyDemandedBits - Pull out InDemandedMask variable (details)
  7. [llvm-exegesis] Add support for AVX512 explicit rounding operands. (details)
  8. [DAG] Fold extract_vector_elt (scalar_to_vector), K to undef (K != 0) (details)
  9. [llvm-readelf][llvm-readobj] - Fix the indentation when printing dynamic (details)
  10. [analyzer] Enable PlacementNewChecker by default (details)
  11. [ELF] Refactor uses of getInputSections to improve efficiency NFC (details)
  12. [lldb][NFC] Convert LLDB_LOGF to LLDB_LOG in ClangASTSource.cpp (details)
  13. [llvm-exegesis] Fix support for LEA64_32r. (details)
  14. Create a gpu.module operation for the GPU Dialect. (details)
  15. [lldb] Use llvm::stable_sort in Line (details)
  16. [Alignment][NFC] Use Align with CreateMaskedLoad (details)
  17. [llvm-readobj] - Remove rpath.test. (details)
  18. [Alignment][NFC] Use Align with CreateElementUnorderedAtomicMemMove (details)
  19. AMDGPU/GlobalISel: Add some baseline tests for unmerge legalization (details)
  20. [clang-tidy] New check: bugprone-misplaced-pointer-arithmetic-in-alloc (details)
  21. [gn build] Port fccd0da5ee6 (details)
  22. [lldb/DWARF] Fix a leak in line table construction (details)
  23. [lldb/breakpad] Use new line table constructor (details)
  24. [TargetLowering] SimplifyDemandedBits ANY_EXTEND/ANY_EXTEND_VECTOR_INREG (details)
  25. [clangd] Capture the missing injected class names in (details)
  26. [X86] combineBT - use SimplifyDemandedBits instead of GetDemandedBits (details)
Commit fffea2842d2807e6deabeb719774d83e3c490156 by frank.laub
[MLIR] LLVM Dialect: add llvm.cmpxchg and improve llvm.atomicrmw custom
parser
Summary: Add a `llvm.cmpxchg` op as a counterpart to LLVM IR's `cmpxchg`
instruction. Note that the `weak`, `volatile`, and `syncscope`
attributes are not yet supported.
This will be useful for upcoming parallel versions of affine.for and
generally for reduction-like semantics (especially for reductions that
can't make use of `atomicrmw`, e.g. `fmax`).
Reviewers: ftynse, nicolasvasilache
Reviewed By: ftynse
Subscribers: merge_guards_bot, jfb, mehdi_amini, rriddle, jpienaar,
burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox,
liufengdb, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72995
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
The file was modifiedmlir/test/Dialect/LLVMIR/roundtrip.mlir
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
The file was modifiedmlir/test/Target/llvmir.mlir
The file was modifiedmlir/test/Dialect/LLVMIR/invalid.mlir
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMDialect.h
Commit ff9877ce34b86f8f63a773e0e8e383a7ef2bec95 by anna.welker
[ARM][MVE] Enable masked scatter
Extends the gather/scatter pass in MVEGatherScatterLowering.cpp to
enable the transformation of masked scatters into calls to MVE's masked
scatter intrinsic.
Differential Revision: https://reviews.llvm.org/D72856
The file was addedllvm/test/CodeGen/Thumb2/mve-scatter-ind32-scaled.ll
The file was addedllvm/test/CodeGen/Thumb2/mve-scatter-ind32-unscaled.ll
The file was addedllvm/test/CodeGen/Thumb2/mve-scatter-ptrs.ll
The file was addedllvm/test/CodeGen/Thumb2/mve-scatter-ind16-scaled.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-scatter-opt.ll
The file was modifiedllvm/lib/Target/ARM/ARMTargetTransformInfo.h
The file was addedllvm/test/CodeGen/Thumb2/mve-scatter-ind8-unscaled.ll
The file was addedllvm/test/CodeGen/Thumb2/mve-scatter-ind16-unscaled.ll
The file was modifiedllvm/lib/Target/ARM/MVEGatherScatterLowering.cpp
Commit 6b4f86f65f165249cbea1d23611ac97aeec7a082 by ikudrin
Reapply: [MachO] Add a test for detecting reserved unit length.
The test in the origin patch did not create a __debug_str section. An
UBSan check triggered when the corresponding pointer was dereferenced.
Differential Revision: https://reviews.llvm.org/D72695
This reapplies fcc08aa835de1e0c1f3e7e479917575e55433b68 which was
reverted in b16f82ad3b095070729cde2873bd3a2e8ab35c0e.
The file was modifiedlld/unittests/MachOTests/MachONormalizedFileToAtomsTests.cpp
Commit dbd0ad33668ea7b6d5c2c5db1fa290cc08ab99d9 by peter.smith
[LLD][ELF] Add support for INPUT_SECTION_FLAGS
The INPUT_SECTION_FLAGS linker script command is used to constrain the
section pattern matching to sections that match certain combinations of
flags.
There are two ways to express the constraint. withFlags: Section must
have these flags. withoutFlags: Section must not have these flags.
The syntax of the command is: INPUT_SECTION_FLAGS '(' sect_flag_list ')'
sect_flag_list: NAME
| sect_flag_list '&' NAME
Where NAME matches a section flag name such as SHF_EXECINSTR, or the
integer value of a section flag. If the first character of NAME is !
then it means must not contain flag.
We do not support the rare case of { INPUT_SECTION_FLAGS(flags) filespec
} where filespec has no input section description like (.text).
As an example from the ld man page: SECTIONS {
.text : { INPUT_SECTION_FLAGS (SHF_MERGE & SHF_STRINGS) *(.text) }
.text2 :  { INPUT_SECTION_FLAGS (!SHF_WRITE) *(.text) }
}
.text will match sections called .text that have both the SHF_MERGE and
SHF_STRINGS flag.
.text2 will match sections called .text that don't have the SHF_WRITE
flag.
The flag names accepted are the generic to all targets and
SHF_ARM_PURECODE as it is very useful to filter all the pure code
sections into a single program header that can be marked execute never.
fixes PR44265
Differential Revision: https://reviews.llvm.org/D72756
The file was addedlld/test/ELF/input-section-flags-keep.s
The file was addedlld/test/ELF/input-section-flags-diag1.test
The file was addedlld/test/ELF/input-section-flags-diag3.test
The file was modifiedlld/ELF/ScriptParser.cpp
The file was modifiedlld/ELF/LinkerScript.cpp
The file was modifiedlld/ELF/LinkerScript.h
The file was addedlld/test/ELF/input-section-flags-diag2.test
The file was addedlld/test/ELF/input-section-flags.s
Commit a672f579a2f66dbfa72799dec8ac52858b9a0f99 by llvm-dev
Regenerate rotated uxt tests
The file was modifiedllvm/test/CodeGen/ARM/uxt_rot.ll
Commit 8d2e6bdbe144b5855c4ae23d95c7e306075e4fdd by llvm-dev
[TargetLowering] SimplifyDemandedBits - Pull out InDemandedMask variable
to ISD::SHL. NFCI.
Matches ISD::SRA + ISD::SRL variants.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Commit d6f4cfdbd7923bae74d4a45f276f3b7f3e053f39 by courbet
[llvm-exegesis] Add support for AVX512 explicit rounding operands.
Reviewers: gchatelet
Subscribers: tschuett, mstojanovic, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73083
The file was modifiedllvm/unittests/tools/llvm-exegesis/X86/SnippetGeneratorTest.cpp
The file was modifiedllvm/tools/llvm-exegesis/lib/X86/Target.cpp
Commit 5f5f4785648959dfbb5c88d183816f85a0974561 by llvm-dev
[DAG] Fold extract_vector_elt (scalar_to_vector), K to undef (K != 0)
This was unconditionally folding this to the source operand, even if the
access was out of bounds. Use undef instead of the extract is not the
first element.
This helps with some cases where 3-vectors are legalized and avoids
processing the 4th component.
Original Patch by: arsenm (Matt Arsenault)
Differential Revision: https://reviews.llvm.org/D51589
The file was modifiedllvm/test/CodeGen/AMDGPU/cvt_f32_ubyte.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/max.i16.ll
Commit 89e6601fb152b39700977d70e5604309f05475e5 by grimar
[llvm-readelf][llvm-readobj] - Fix the indentation when printing dynamic
tags.
This change is similar to one made for llvm-objdump in D72838.
llvm-readelf/llvm-readobj tools do not align the "Name/Value" column
properly. This patch adds a logic to calculate the size of indentation
on fly to fix such issues.
Differential revision: https://reviews.llvm.org/D72843
The file was modifiedllvm/test/tools/llvm-readobj/ELF/dynamic-tags-machine-specific.test
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
The file was modifiedllvm/test/tools/llvm-readobj/ELF/dynamic-tags.test
Commit bc29069dc401572ba62f7dd692a3474c1ead76c9 by gabor.marton
[analyzer] Enable PlacementNewChecker by default
The file was modifiedclang/include/clang/StaticAnalyzer/Checkers/Checkers.td
The file was modifiedclang/test/Analysis/placement-new.cpp
The file was modifiedclang/test/Analysis/placement-new-user-defined.cpp
Commit 4e8116f4692e9b5787ba91c6b557b113aae7e244 by andrew.ng
[ELF] Refactor uses of getInputSections to improve efficiency NFC
Add new method getFirstInputSection and use instead of getInputSections
where appropriate to avoid creation of an unneeded vector of input
sections.
Differential Revision: https://reviews.llvm.org/D73047
The file was modifiedlld/ELF/OutputSections.h
The file was modifiedlld/ELF/LinkerScript.cpp
The file was modifiedlld/ELF/OutputSections.cpp
Commit 1f7b95d038e687fdaffdff55d32c16934f7bff60 by Raphael Isemann
[lldb][NFC] Convert LLDB_LOGF to LLDB_LOG in ClangASTSource.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
Commit 87632b9e061863b96edb124e66b4f9b526e00438 by courbet
[llvm-exegesis] Fix support for LEA64_32r.
Summary: Add unit test to show the issue: We must select an *aliasing*
output register, not the exact register.
Reviewers: gchatelet
Subscribers: tschuett, mstojanovic, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73095
The file was addedllvm/test/tools/llvm-exegesis/X86/latency-LEA64_32r.s
The file was modifiedllvm/tools/llvm-exegesis/lib/X86/Target.cpp
Commit 9a52ea5cf9ca76d9e90297c9f307afb7f4aeec59 by tpopp
Create a gpu.module operation for the GPU Dialect.
Summary: This is based on the use of code constantly checking for an
attribute on a model and instead represents the distinct operaion with a
different op. Instead, this op can be used to provide better filtering.
Reverts "Revert "[mlir] Create a gpu.module operation for the GPU
Dialect.""
This reverts commit ac446302ca4145cdc89f377c0c364c29ee303be5 after
fixing internal Google issues.
This additionally updates ROCDL lowering to use the new gpu.module.
Reviewers: herhut, mravishankar, antiagainst, nicolasvasilache
Subscribers: jholewinski, mgorny, mehdi_amini, jpienaar, burmako,
shauheen, csigg, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb,
llvm-commits, mravishankar, rriddle, antiagainst, bkramer
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72921
The file was modifiedmlir/include/mlir/Dialect/GPU/GPUOps.td
The file was modifiedmlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
The file was modifiedmlir/lib/Dialect/GPU/IR/GPUDialect.cpp
The file was modifiedmlir/test/Conversion/GPUToSPIRV/load-store.mlir
The file was modifiedmlir/tools/mlir-cuda-runner/mlir-cuda-runner.cpp
The file was modifiedmlir/test/Conversion/GPUToCUDA/lower-launch-func-to-cuda.mlir
The file was modifiedmlir/include/mlir/Conversion/GPUToNVVM/GPUToNVVMPass.h
The file was modifiedmlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRVPass.cpp
The file was addedmlir/lib/Conversion/GPUToSPIRV/GPUToSPIRV.td
The file was modifiedmlir/test/Conversion/GPUToSPIRV/builtins.mlir
The file was modifiedmlir/test/Conversion/GPUToSPIRV/loop.mlir
The file was modifiedmlir/test/Dialect/GPU/ops.mlir
The file was modifiedmlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt
The file was modifiedmlir/test/Dialect/GPU/invalid.mlir
The file was modifiedmlir/test/Conversion/GPUToCUDA/lower-nvvm-kernel-to-cubin.mlir
The file was modifiedmlir/test/Conversion/GPUToROCDL/gpu-to-rocdl.mlir
The file was modifiedmlir/include/mlir/Conversion/GPUToCUDA/GPUToCUDAPass.h
The file was modifiedmlir/test/Conversion/GPUToNVVM/gpu-to-nvvm.mlir
The file was modifiedmlir/include/mlir/Conversion/GPUToROCDL/GPUToROCDLPass.h
The file was modifiedmlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRV.cpp
The file was modifiedmlir/test/Conversion/GPUToSPIRV/if.mlir
The file was modifiedmlir/lib/Conversion/GPUToCUDA/ConvertLaunchFuncToCudaCalls.cpp
The file was modifiedmlir/test/Dialect/GPU/outlining.mlir
The file was modifiedmlir/test/Conversion/GPUToNVVM/memory-attrbution.mlir
The file was modifiedmlir/lib/Dialect/GPU/Transforms/KernelOutlining.cpp
The file was modifiedmlir/lib/Conversion/GPUToCUDA/ConvertKernelFuncToCubin.cpp
The file was modifiedmlir/test/Conversion/GPUToSPIRV/simple.mlir
The file was modifiedmlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp
Commit 3f9b6b270f87430c28fb2ff811d3b58dbf8bfdde by pavel
[lldb] Use llvm::stable_sort in Line
This addresses some post-commit feedback on D72909.
The file was modifiedlldb/source/Symbol/LineTable.cpp
Commit bc8a1ab26fba5d5635467b9d0fd7ad9a0fd5bc6e by gchatelet
[Alignment][NFC] Use Align with CreateMaskedLoad
Summary: This is patch is part of a series to introduce an Alignment
type. See this thread for context:
http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this
patch for the introduction of the type: https://reviews.llvm.org/D64790
Reviewers: courbet
Subscribers: hiraditya, cfe-commits, llvm-commits
Tags: #clang, #llvm
Differential Revision: https://reviews.llvm.org/D73087
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
The file was modifiedllvm/include/llvm/Analysis/VectorUtils.h
The file was modifiedllvm/lib/IR/AutoUpgrade.cpp
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedllvm/include/llvm/IR/IRBuilder.h
The file was modifiedllvm/lib/IR/IRBuilder.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Commit 295aea807892d087f0ff8e465b7ea9ebcdaed3fa by grimar
[llvm-readobj] - Remove rpath.test.
rpath.test checks that DT_RPATH is dumped.
We have dynamic-tags.test that tests all dynamic tags and it is better,
because also checks llvm-readelf and does not use precompiled binaries.
Differential revision: https://reviews.llvm.org/D73093
The file was removedllvm/test/tools/llvm-readobj/ELF/Inputs/rpath.exe.elf-x86_64
The file was removedllvm/test/tools/llvm-readobj/ELF/rpath.test
Commit 139771f8b02d4885c2ab50032e0c9356d60a2b05 by gchatelet
[Alignment][NFC] Use Align with CreateElementUnorderedAtomicMemMove
Summary: This is patch is part of a series to introduce an Alignment
type. See this thread for context:
http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this
patch for the introduction of the type: https://reviews.llvm.org/D64790
Reviewers: courbet
Subscribers: hiraditya, jfb, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73050
The file was modifiedllvm/include/llvm/IR/IRBuilder.h
The file was modifiedllvm/lib/IR/IRBuilder.cpp
Commit 5181c67febc8d4c69559055fe2bee086aae61996 by arsenm2
AMDGPU/GlobalISel: Add some baseline tests for unmerge legalization
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-unmerge-values.mir
Commit fccd0da5ee6f4e337395f287edcf824a009e1b7e by adam.balogh
[clang-tidy] New check: bugprone-misplaced-pointer-arithmetic-in-alloc
Finds cases where an integer expression is added to the result of a
memory allocation function instead of its argument.
Differential Revision: https://reviews.llvm.org/D71001
The file was addedclang-tools-extra/docs/clang-tidy/checks/bugprone-misplaced-pointer-arithmetic-in-alloc.rst
The file was modifiedclang-tools-extra/clang-tidy/bugprone/CMakeLists.txt
The file was addedclang-tools-extra/clang-tidy/bugprone/MisplacedPointerArithmeticInAllocCheck.h
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was addedclang-tools-extra/clang-tidy/bugprone/MisplacedPointerArithmeticInAllocCheck.cpp
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/list.rst
The file was addedclang-tools-extra/test/clang-tidy/checkers/bugprone-misplaced-pointer-arithmetic-in-alloc.cpp
The file was addedclang-tools-extra/test/clang-tidy/checkers/bugprone-misplaced-pointer-arithmetic-in-alloc.c
The file was modifiedclang-tools-extra/clang-tidy/bugprone/BugproneTidyModule.cpp
Commit 65a31a97b4595c0e75b63c670b1adf8de1c80f4b by llvmgnsyncbot
[gn build] Port fccd0da5ee6
The file was modifiedllvm/utils/gn/secondary/clang-tools-extra/clang-tidy/bugprone/BUILD.gn
Commit 18a96fd573b134fed7d8ea6b87930e7a059d6c90 by pavel
[lldb/DWARF] Fix a leak in line table construction
We were creating a bunch of LineSequence objects but never deleting
them.
This fixes the leak and changes the code to use std::unique_ptr, to make
it harder to make the same mistake again.
The file was modifiedlldb/source/Symbol/LineTable.cpp
The file was modifiedlldb/include/lldb/Symbol/LineTable.h
The file was modifiedlldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
Commit 5e70f4bdc15960730d0ff2aa167399e36bc64278 by pavel
[lldb/breakpad] Use new line table constructor
The old construction method can be quadratic for some inputs. This
approach guarantees a reasonable performance.
The file was modifiedlldb/source/Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.cpp
Commit 651fa669a237730324d484d4675987a921c7562c by llvm-dev
[TargetLowering] SimplifyDemandedBits ANY_EXTEND/ANY_EXTEND_VECTOR_INREG
multi-use handling
Call SimplifyMultipleUseDemandedBits to peek through extended source
args with multiple uses
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/vector-sext.ll
Commit f651c402a221a20f3bc6ea43f70b29326a357010 by hokein.wu
[clangd] Capture the missing injected class names in
findExplicitReferences.
Summary: Fixes https://github.com/clangd/clangd/issues/237.
Reviewers: kadircet, kbobyrev
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95,
cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D73088
The file was modifiedclang-tools-extra/clangd/FindTarget.cpp
The file was modifiedclang-tools-extra/clangd/unittests/FindTargetTests.cpp
The file was modifiedclang-tools-extra/clangd/unittests/RenameTests.cpp
The file was modifiedclang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp
Commit b065902ed4587faec5358e8aaef4570d3da83d40 by llvm-dev
[X86] combineBT - use SimplifyDemandedBits instead of GetDemandedBits
Another step towards removing SelectionDAG::GetDemandedBits entirely
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp