Changes

Summary

  1. [clang-cl] Parse the /external: flags (PR36003) (details)
  2. [libc++] NFC: Add regression tests for some <tuple> PRs that have been fixed (details)
  3. [MLIR] Remove LLVM_AnyInteger type constraint (details)
  4. [ELF] Add a GRP_COMDAT test with a local signature symbol (details)
  5. [RISCV] Remove ForceTailAgnostic flag from vmv.s.x, vfmv.s.f and reductions. (details)
  6. Fix a typo in the internals manual (details)
  7. Further improve register allocation for vwadd(u).wv, vwsub(u).wv, vfwadd.wv, and vfwsub.wv. (details)
  8. [Verifier] Speed up and parallelize dominance checking.  NFC (details)
  9. [Core] Add Twine support for StringAttr and Identifier. NFC. (details)
  10. [AMDGPU] Add gfx1013 target (details)
  11. InstrEmitter.cpp - don't dereference a dyn_cast<>. (details)
  12. PPCISelLowering.cpp - don't dereference a dyn_cast<>. (details)
  13. Use llvm_unreachable for unsupported integer types. (details)
  14. Revert "[llvm] Make Sequence reverse-iterable" (details)
  15. [Fuchsia] Update some of the Fuchsia toolchain flags (details)
  16. Add missing header <atomic> in lib/IR/Verifier.cpp (NFC) (details)
  17. [GlobalISel] Handle non-multiples of the base type in narrowScalarInsert (details)
  18. [GlobalISel] Handle non-multiples of the base type in narrowScalarAddSub (details)
  19. [libc++] Add a CI configuration for the modular build (details)
  20. [libcxx] Remove VLA from libcxx locale header (details)
  21. reland [IR] make -stack-alignment= into a module attr (details)
  22. [CMake] Only include LTO on Apple targets (details)
  23. [clang] p1099 using enum part 2 (details)
  24. [FuzzMutate] Fix getWeight of InstDeleterIRStrategy (details)
  25. [RISCV] Remove dead code from fixed-vectors-abs.ll test cases. NFC (details)
  26. [CMake][Fuchsia] Include llvm-otool in Fuchsia toolchain (details)
  27. Add an option to hide "cold" blocks from CFG graph (details)
  28. Add a static assertions for custom Op<> to not defined data members (NFC) (details)
  29. [ARM] A couple of extra VMOVimm tests, useful for showing BE codegen. NFC (details)
  30. GlobalISel: Hide virtual register creation in MIRBuilder (details)
  31. GlobalISel: Avoid use of G_INSERT in insertParts (details)
  32. [SystemZ][z/OS] Pass OpenFlags when creating tmp files (details)
  33. [NFC][compiler-rt][hwasan] Move allocation functions into their own file (details)
  34. [gn build] (semi-manually) port 944b3c53aec5 (details)
  35. [CMake][Fuchsia] Use PIC for Fuchsia runtimes (details)
  36. [CodeGen] remove instcombine from codegen tests; NFC (details)
  37. [lldb][NFC] Refactor name to index maps in Symtab (details)
  38. Fix for failing test mentioned in https://reviews.llvm.org/D103564. (details)
  39. [amdgpu] Add `-enable-ocl-mangling-mismatch-workaround`. (details)
  40. [ms] [llvm-ml] Disambiguate size directives and variable declarations (details)
  41. [ARM] Generate VDUP(Const) from constant buildvectors (details)
  42. Partially revert the Fuchsia changes to avoid the use of PIC (details)
  43. Revert "[DSE] Remove stores in the same loop iteration" (details)
  44. Revert "[AMDGPU] Add gfx1013 target" (details)
  45. [SystemZ] Return true from isMaskAndCmp0FoldingBeneficial(). (details)
  46. [CMake][Fuchsia] Disable vcruntime for first stage as well (details)
  47. Revert "[LoopNest] Fix Wdeprecated-copy warnings" (details)
  48. [libc++] NFC: Rewrite the documentation for the debug mode (details)
  49. [DSE] Add another multiblock loop DSE test. NFC (details)
  50. [lldb] Don't print script output twice in HandleCommand (details)
  51. [scudo] Add Scudo support for Trusty OS (details)
  52. [InstCombine] add FMF tests for fneg-of-select; NFC (details)
  53. [InstCombine] fix nsz (fast-math) propagation from fneg-of-select (details)
  54. [LLDB][NFC] Remove parameter names from forward declarations from hand written expressions used in heap.py (details)
  55. [SystemZ] Return true from convertSetCCLogicToBitwiseLogic for scalar integer. (details)
  56. Update and improve compiler-rt tests for -mllvm -asan_use_after_return=(never|[runtime]|always). (details)
  57. [Polly][Isl] Removing nullptr constructor from C++ bindings. NFC. (details)
  58. Revert "Revert "[LoopNest] Fix Wdeprecated-copy warnings"" (details)
  59. LTO: Export functions referenced by non-canonical CFI jump tables (details)
  60. [NFC] In the future, all intrinsics defined for compatibility with the XL (details)
  61. [mlir][tosa] Temporarily support 2D and 3D tensor types in matmul (details)
  62. [libc][NFC] Use add_library instead of add_llvm_library for a few libraries. (details)
Commit 172fcd9600e13d5365f5cf648105891ff6a0e59d by hans
[clang-cl] Parse the /external: flags (PR36003)

They are still unsupported, but at least this makes clang-cl not mistake
them for being filenames.

As pointed out in the bug, VS 16.10 now uses these flags in new projects
by default.
The file was modifiedclang/include/clang/Driver/Options.td (diff)
The file was modifiedclang/test/Driver/cl-options.c (diff)
Commit d2eccf9bb7f10bd5c9ac0259ee1b03f2e25fb7a1 by Louis Dionne
[libc++] NFC: Add regression tests for some <tuple> PRs that have been fixed
The file was addedlibcxx/test/std/utilities/tuple/tuple.tuple/PR27375.pass.cpp
The file was addedlibcxx/test/std/utilities/tuple/tuple.tuple/PR38601.pass.cpp
Commit cd73af92315ecf25ed47f4991806a054ddfca5ea by kiran.chandramohan
[MLIR] Remove LLVM_AnyInteger type constraint

LLVM Dialect uses builtin-integer types. The existing LLVM_AnyInteger
type constraint is a dupe of AnyInteger. This patch removes LLVM_AnyInteger
and replaces all usage with AnyInteger.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D103839
The file was modifiedmlir/test/Dialect/LLVMIR/invalid.mlir (diff)
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOps.td (diff)
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td (diff)
The file was modifiedmlir/include/mlir/Dialect/OpenMP/OpenMPOps.td (diff)
The file was modifiedmlir/include/mlir/Dialect/AMX/AMX.td (diff)
Commit 928a197d26ffd035bc4279ba533f169190a03574 by i
[ELF] Add a GRP_COMDAT test with a local signature symbol

See https://groups.google.com/g/generic-abi/c/2X6mR-s2zoc

Test that a local signature symbol does not suppress COMDAT deduplication.
The file was addedlld/test/ELF/comdat-local-signature.s
Commit c57bce9cc5facbdde52c24fe64fa4f6bf23a8449 by craig.topper
[RISCV] Remove ForceTailAgnostic flag from vmv.s.x, vfmv.s.f and reductions.

In 0.9 these were defined to leave elements other than 0 in the
destination unmodified. They were changed to use the tail policy
in 0.10. I missed that update.

I assume no one has noticed because in order cores treat tail
agnostic the same as tail undisturbed. I believe Spike and QEMU do
the same.

Reviewed By: arcbbb, frasercrmck

Differential Revision: https://reviews.llvm.org/D103736
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredand-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfmv.s.f-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-select-fp.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-unaligned.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredxor-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfmv.s.f-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfredmax-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-mask-buildvec.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredminu-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfwredsum-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfredosum-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfwredosum-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwredsumu-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwredsum-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-insert-i1.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfredsum-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredor-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredmaxu-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredmaxu-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwredsumu-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredminu-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-buildvec.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-cttz.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-bswap.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredsum-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/insertelt-int-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredand-rv64.ll (diff)
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vmv.s.x-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vmv.s.x-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/insertelt-int-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfredosum-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfredmin-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfwredsum-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredmax-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfredmax-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/insertelt-fp-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredmax-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwredsum-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/urem-seteq-illegal-types.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfredmin-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-int.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfwredosum-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-stepvector-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredxor-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredor-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-ctlz.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredmin-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredsum-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfredsum-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/insertelt-fp-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vredmin-rv64.ll (diff)
Commit 71fb98e0c1de97c8ba2aa3292447b0c5d0f248d5 by aaron
Fix a typo in the internals manual
The file was modifiedclang/docs/InternalsManual.rst (diff)
Commit 8b4c80d380a681e6ea6ea60e9d9f9424e7782980 by craig.topper
Further improve register allocation for vwadd(u).wv, vwsub(u).wv, vfwadd.wv, and vfwsub.wv.

The first source has the same EEW as the destination, but we're
using earlyclobber which prevents them from ever being the same
register. This patch attempts to work around this.

-For unmasked .wv, add a special TIED pseudo that pretends like
the first operand and the destination must be the same register. This
disables the earlyclobber for that source. Mark the instruction
as convertible to 3 address form which will switch it to the
original untied pseudo when the TwoAddressInstructionPass decides
that keeping them tied would require an extra copy. This uses
code in RISCVInstrInfo.cpp to do the conversion to the untied
opcode.

The untie test case show that we can generate the untied version.
Not sure it was profitable to do it in this case, but they have
really simple IR.

Reviewed By: arcbbb

Differential Revision: https://reviews.llvm.org/D103552
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwsub.w-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfwsub.w-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfwadd.w-rv64.ll (diff)
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfo.h (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwaddu.w-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwsub.w-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwadd.w-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwsubu.w-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfwadd.w-rv32.ll (diff)
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfo.cpp (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwadd.w-rv32.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwsubu.w-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vfwsub.w-rv64.ll (diff)
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vwaddu.w-rv32.ll (diff)
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td (diff)
Commit 08664d005c02003180371049b19c7e5d01541c58 by clattner
[Verifier] Speed up and parallelize dominance checking.  NFC

One of the key algorithms used in the "mlir::verify(op)" method is the
dominance checker, which ensures that operand values properly dominate
the operations that use them.

The MLIR dominance implementation has a number of algorithmic problems,
and is not really set up in general to answer dense queries: it's constant
factors are really slow with multiple map lookups and scans, even in the
easy cases.  Furthermore, when calling mlir::verify(module) or some other
high level operation, it makes sense to parallelize the dominator
verification of all the functions within the module.

This patch has a few changes to enact this:
1) It splits dominance checking into "IsolatedFromAbove" units.  Instead
    of building a monolithic DominanceInfo for everything in a module,
    for example, it checks dominance for the module to all the functions
    within it (noop, since there are no operands at this level) then each
    function gets their own DominanceInfo for each of their scope.
2) It adds the ability for mlir::DominanceInfo (and post dom) to be
    constrained to an IsolatedFromAbove region.  There is no reason to
    recurse into IsolatedFromAbove regions since use/def relationships
    can't span this region anyway.  This is already checked by the time
    the verifier gets here.
3) It avoids querying DominanceInfo for trivial checks (e.g. intra Block
    references) to eliminate constant factor issues).
4) It switches to lazily constructing DominanceInfo because the trivial
    check case handles the vast majority of the cases and avoids
    constructing DominanceInfo entirely in some cases (e.g. at the module
    level or for many Regions's that contain a single Block).
5) It parallelizes analysis of collections IsolatedFromAbove operations,
    e.g. each of the functions within a Module.

All together this is more than a 10% speedup on `firtool` in circt on a
large design when run in -verify-each mode (our default) since the verifier
is invoked after each pass.

Still todo is to parallelize the main verifier pass.  I decided to split
this out to its own thing since this patch is already large-ish.

Differential Revision: https://reviews.llvm.org/D103373
The file was modifiedmlir/lib/IR/Verifier.cpp (diff)
The file was modifiedmlir/include/mlir/IR/Dominance.h (diff)
Commit 92a79dbe91413f685ab19295fc7a6297dbd6c824 by clattner
[Core] Add Twine support for StringAttr and Identifier. NFC.

This is both more efficient and more ergonomic than going
through an std::string, e.g. when using llvm::utostr and
in string concat cases.

Unfortunately we can't just overload ::get().  This causes an
ambiguity because both twine and stringref implicitly convert
from std::string.

Differential Revision: https://reviews.llvm.org/D103754
The file was modifiedmlir/lib/CAPI/IR/BuiltinAttributes.cpp (diff)
The file was modifiedmlir/lib/Conversion/GPUToVulkan/ConvertGPULaunchFuncToVulkanLaunchFunc.cpp (diff)
The file was modifiedmlir/lib/Dialect/GPU/Transforms/SerializeToBlob.cpp (diff)
The file was modifiedmlir/include/mlir/IR/Identifier.h (diff)
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp (diff)
The file was modifiedmlir/include/mlir/IR/BuiltinAttributes.td (diff)
The file was modifiedmlir/lib/IR/Builders.cpp (diff)
The file was modifiedmlir/include/mlir/IR/Builders.h (diff)
The file was modifiedmlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp (diff)
The file was modifiedmlir/lib/IR/BuiltinAttributes.cpp (diff)
The file was modifiedmlir/lib/IR/MLIRContext.cpp (diff)
Commit ea10a86984ea73fcec3b12d22404a15f2f59b219 by brendon.cahoon
[AMDGPU] Add gfx1013 target

Differential Revision: https://reviews.llvm.org/D103663
The file was modifiedclang/test/CodeGenOpenCL/amdgpu-features.cl (diff)
The file was modifiedclang/test/Driver/amdgpu-macros.cl (diff)
The file was modifiedllvm/test/MC/AMDGPU/dl-insts-err.s (diff)
The file was modifiedllvm/lib/Target/AMDGPU/MIMGInstructions.td (diff)
The file was modifiedclang/lib/Basic/Targets/NVPTX.cpp (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp (diff)
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp (diff)
The file was modifiedllvm/test/MC/AMDGPU/gfx10_unsupported.s (diff)
The file was modifiedllvm/include/llvm/BinaryFormat/ELF.h (diff)
The file was modifiedllvm/test/Object/AMDGPU/elf-header-flags-mach.yaml (diff)
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp (diff)
The file was modifiedclang/lib/Basic/Cuda.cpp (diff)
The file was modifiedllvm/docs/AMDGPUUsage.rst (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.intersect_ray.ll (diff)
The file was modifiedclang/test/Driver/amdgpu-mcpu.cl (diff)
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.intersect_ray.ll (diff)
The file was modifiedllvm/lib/Target/AMDGPU/GCNSubtarget.h (diff)
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp (diff)
The file was modifiedopenmp/libomptarget/plugins/amdgpu/impl/get_elf_mach_gfx_name.cpp (diff)
The file was modifiedllvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp (diff)
The file was modifiedllvm/lib/Support/TargetParser.cpp (diff)
The file was modifiedllvm/lib/Object/ELFObjectFile.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll (diff)
The file was modifiedllvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp (diff)
The file was modifiedclang/include/clang/Basic/Cuda.h (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp (diff)
The file was modifiedllvm/test/tools/llvm-readobj/ELF/amdgpu-elf-headers.test (diff)
The file was modifiedllvm/lib/Target/AMDGPU/GCNProcessors.td (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPU.td (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/directive-amdgcn-target.ll (diff)
The file was modifiedclang/test/Misc/target-invalid-cpu-note.c (diff)
The file was modifiedllvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h (diff)
The file was modifiedclang/lib/Basic/Targets/AMDGPU.cpp (diff)
The file was modifiedllvm/test/tools/llvm-objdump/ELF/AMDGPU/subtarget.ll (diff)
The file was modifiedllvm/include/llvm/Support/TargetParser.h (diff)
Commit 114e712c344fbf8361b97130e78baa2624ff9bca by llvm-dev
InstrEmitter.cpp - don't dereference a dyn_cast<>.

dyn_cast<> can return nullptr which we would then dereference - use cast<> which will assert that the type is correct.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp (diff)
Commit 01b77159e30b38613ab700d8bb128b006822c58c by llvm-dev
PPCISelLowering.cpp - don't dereference a dyn_cast<>.

dyn_cast<> can return nullptr which we would then dereference - use cast<> which will assert that the type is correct.
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp (diff)
Commit 52396577a2d85ef1b18f86e643fe3b1033750e15 by llvm-dev
Use llvm_unreachable for unsupported integer types.

As suggested on rG937c4cffd024, use llvm_unreachable for unhandled integer types (which shouldn't be possible) instead of breaking and dropping down to the existing fatal error handler.

Helps silence static analyzer warnings.
The file was modifiedllvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp (diff)
Commit a4e2cf712af3a3c7a4389e400a29da244b276f96 by joker.eph
Revert "[llvm] Make Sequence reverse-iterable"

This reverts commit e772216e708937988c039420d2c559568f91ae27
(and fixup 7f6c878a2c035eb6325ab228d9bc2d257509d959).

The build is broken with gcc5 host compiler:

In file included from
                 from mlir/lib/Dialect/Utils/StructuredOpsUtils.cpp:9:
tools/mlir/include/mlir/IR/BuiltinAttributes.h.inc:424:57: error: type/value mismatch at argument 1 in template parameter list for 'template<class ItTy, class FuncTy, class FuncReturnTy> class llvm::mapped_iterator'
                               std::function<T(ptrdiff_t)>>;
                                                         ^
tools/mlir/include/mlir/IR/BuiltinAttributes.h.inc:424:57: note:   expected a type, got 'decltype (seq<ptrdiff_t>(0, 0))::const_iterator'
The file was modifiedmlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp (diff)
The file was modifiedllvm/unittests/ADT/SequenceTest.cpp (diff)
The file was modifiedmlir/include/mlir/IR/BuiltinAttributes.td (diff)
The file was modifiedllvm/include/llvm/ADT/Sequence.h (diff)
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp (diff)
Commit 1dba2a026956b0f3918dcf8bb1d3f3483db2de8c by phosek
[Fuchsia] Update some of the Fuchsia toolchain flags

This should make the build more self-contained.

Differential Revision: https://reviews.llvm.org/D103875
The file was modifiedclang/cmake/caches/Fuchsia.cmake (diff)
The file was modifiedclang/cmake/caches/Fuchsia-stage2.cmake (diff)
Commit 30bb5dcb0a5cfe933136340318cbff2ba329a8c4 by joker.eph
Add missing header <atomic> in lib/IR/Verifier.cpp (NFC)

Fix the build on some platform.
The file was modifiedmlir/lib/IR/Verifier.cpp (diff)
Commit 2a7e759734982bea1d08642332a92f687266148f by Justin Bogner
[GlobalISel] Handle non-multiples of the base type in narrowScalarInsert

When narrowing G_INSERT, handle types that aren't a multiple of the
type we're narrowing to. This comes up if we're narrowing something
like an s96 to fit in 64 bit registers and also for non-byte multiple
packed types if they come up.

This implementation handles these cases by extending the extra bits to
the narrow size and truncating the result back to the destination
size.

Differential Revision: https://reviews.llvm.org/D97791
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-inserts.mir (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll (diff)
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (diff)
Commit 4271e1d2c52271ddb9544fa0c76543bffe053937 by Justin Bogner
[GlobalISel] Handle non-multiples of the base type in narrowScalarAddSub

When narrowing G_ADD and G_SUB, handle types that aren't a multiple of
the type we're narrowing to. This allows us to handle types like s96
on 64 bit targets.

Note that the test here has a couple of dead instructions because of
the way the setup legalizes. I wasn't able to come up with a way to
write this test that avoids that easily.

Differential Revision: https://reviews.llvm.org/D97811
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll (diff)
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-add.mir (diff)
Commit 4d680b06c92a0b785da9bb4370cd7d8819b6d726 by Louis Dionne
[libc++] Add a CI configuration for the modular build

Differential Revision: https://reviews.llvm.org/D103559
The file was modifiedlibcxx/utils/ci/buildkite-pipeline.yml (diff)
The file was modifiedlibcxx/utils/libcxx/test/params.py (diff)
The file was modifiedlibcxx/test/libcxx/utilities/utility/pairs/pairs.pair/non_trivial_copy_move_ABI.pass.cpp (diff)
The file was addedlibcxx/cmake/caches/Generic-modules.cmake
The file was modifiedlibcxx/test/libcxx/include_as_c.sh.cpp (diff)
The file was modifiedlibcxx/utils/libcxx/test/format.py (diff)
The file was modifiedlibcxx/utils/libcxx/test/config.py (diff)
The file was modifiedlibcxx/utils/ci/run-buildbot (diff)
Commit ee2a92c29df6d37a4dc5d0f6795f0fe531962b9d by Abhina.Sreeskantharajan
[libcxx] Remove VLA from libcxx locale header

The buffer size (`__nbuf`) in `num_put::do_put` is currently not an
integral/core constant expression. As a result, `__nar` is a Variable Length
Array (VLA). VLAs are a GNU extension and not part of the base C++ standard, so
unless there is good reason to do so they probably shouldn't be used in any of
the standard library headers. The call to `__iob.flags()` is the only thing
keeping `__nbuf` from being a compile time constant, so the solution here is to
simply err on the side of caution and always allocate a buffer large enough to
fit the base prefix.

Note that, while the base prefix for hex (`0x`) is slightly longer than the
base prefix for octal (`0`), this isn't a concern. The difference in the space
needed for the value portion of the string is enough to make up for this.
(Unless we're working with small, oddly sized types such as a hypothetical
`uint9_t`, the space needed for the value portion in octal is at least 1 more
than the space needed for the value portion in hex).

This PR also adds `constexpr` to `__nbuf` to enforce compile time const-ness
going forward.

Reviewed By: Mordante, #libc, Quuxplusone, ldionne

Differential Revision: https://reviews.llvm.org/D103558
The file was modifiedlibcxx/include/locale (diff)
Commit 3787ee457173c3612aac4c9b1a2b6d6ab0202616 by ndesaulniers
reland [IR] make -stack-alignment= into a module attr

Relands commit 433c8d950cb3a1fa0977355ce0367e8c763a3f13 with fixes for
MIPS.

Similar to D102742, specifying the stack alignment via CodegenOpts means
that this flag gets dropped during LTO, unless the command line is
re-specified as a plugin opt. Instead, encode this information as a
module level attribute so that we don't have to expose this llvm
internal flag when linking the Linux kernel with LTO.

Looks like external dependencies might need a fix:
* https://github.com/llvm-hs/llvm-hs/issues/345
* https://github.com/halide/Halide/issues/6079

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

Reviewed By: tejohnson

Differential Revision: https://reviews.llvm.org/D103048
The file was modifiedllvm/lib/IR/Module.cpp (diff)
The file was modifiedllvm/lib/Target/X86/X86TargetMachine.cpp (diff)
The file was modifiedllvm/lib/Target/Mips/MipsCallLowering.cpp (diff)
The file was modifiedllvm/test/CodeGen/X86/x86-64-baseptr.ll (diff)
The file was modifiedllvm/lib/CodeGen/CommandFlags.cpp (diff)
The file was modifiedllvm/test/CodeGen/X86/dynamic-allocas-VLAs.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/hipe-cc64.ll (diff)
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp (diff)
The file was modifiedllvm/test/CodeGen/Mips/stack-alignment.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/pr11468.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/force-align-stack-alloca.ll (diff)
The file was modifiedclang/test/CodeGen/stackrealign-main.c (diff)
The file was modifiedllvm/include/llvm/IR/Module.h (diff)
The file was modifiedllvm/test/CodeGen/Generic/ForceStackAlign.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/x86-64-xmm-spill-unaligned.ll (diff)
The file was modifiedllvm/lib/Target/Mips/MipsTargetMachine.cpp (diff)
The file was modifiedllvm/test/CodeGen/X86/hipe-cc.ll (diff)
The file was modifiedllvm/include/llvm/Target/TargetOptions.h (diff)
The file was modifiedllvm/test/CodeGen/X86/movtopush.ll (diff)
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp (diff)
The file was addedllvm/test/CodeGen/X86/movtopush-stack-align.ll
The file was modifiedllvm/test/CodeGen/X86/unaligned-spill-folding.ll (diff)
The file was addedllvm/test/CodeGen/X86/dynamic-allocas-VLAs-stack-align.ll
The file was modifiedllvm/test/CodeGen/X86/base-pointer-and-cmpxchg.ll (diff)
The file was modifiedllvm/test/CodeGen/X86/base-pointer-and-mwaitx.ll (diff)
The file was addedllvm/test/Linker/stack-alignment.ll
Commit de98da2eced72eee791a93b076b70a7b22175abc by phosek
[CMake] Only include LTO on Apple targets

We only need libLTO when using ld64.

Differential Revision: https://reviews.llvm.org/D103916
The file was modifiedclang/cmake/caches/Fuchsia-stage2.cmake (diff)
The file was modifiedclang/cmake/caches/Fuchsia.cmake (diff)
Commit b2d0c16e91f39def3646b71e5afebfaea262cca1 by nathan
[clang] p1099 using enum part 2

This implements the 'using enum maybe-qualified-enum-tag ;' part of
1099. It introduces a new 'UsingEnumDecl', subclassed from
'BaseUsingDecl'. Much of the diff is the boilerplate needed to get the
new class set up.

There is one case where we accept ill-formed, but I believe this is
merely an extended case of an existing bug, so consider it
orthogonal. AFAICT in class-scope the c++20 rule is that no 2 using
decls can bring in the same target decl ([namespace.udecl]/8). But we
already accept:

struct A { enum { a }; };
struct B : A { using A::a; };
struct C : B { using A::a;
using B::a; }; // same enumerator

this patch permits mixtures of 'using enum Bob;' and 'using Bob::member;' in the same way.

Differential Revision: https://reviews.llvm.org/D102241
The file was modifiedclang/lib/Sema/SemaDeclCXX.cpp (diff)
The file was modifiedclang/include/clang/AST/JSONNodeDumper.h (diff)
The file was modifiedclang/lib/ASTMatchers/Dynamic/Registry.cpp (diff)
The file was modifiedclang/include/clang/Sema/Template.h (diff)
The file was modifiedclang/lib/AST/JSONNodeDumper.cpp (diff)
The file was modifiedclang/lib/AST/ASTImporter.cpp (diff)
The file was modifiedclang/lib/Serialization/ASTWriterDecl.cpp (diff)
The file was modifiedclang/include/clang/AST/RecursiveASTVisitor.h (diff)
The file was modifiedclang/include/clang/AST/ASTContext.h (diff)
The file was modifiedclang/include/clang/ASTMatchers/ASTMatchers.h (diff)
The file was modifiedclang/include/clang/Basic/DiagnosticParseKinds.td (diff)
The file was modifiedclang/include/clang/Sema/Sema.h (diff)
The file was modifiedclang/lib/AST/TextNodeDumper.cpp (diff)
The file was modifiedclang/lib/AST/Decl.cpp (diff)
The file was modifiedclang/lib/AST/ASTContext.cpp (diff)
The file was modifiedclang-tools-extra/clangd/FindTarget.cpp (diff)
The file was modifiedclang/lib/Serialization/ASTCommon.cpp (diff)
The file was modifiedclang/lib/Sema/SemaCXXScopeSpec.cpp (diff)
The file was modifiedclang/unittests/AST/ASTImporterTest.cpp (diff)
The file was modifiedclang/lib/Serialization/ASTReaderDecl.cpp (diff)
The file was modifiedclang/lib/AST/DeclCXX.cpp (diff)
The file was addedclang/test/SemaCXX/cxx20-using-enum.cpp
The file was modifiedclang/lib/AST/DeclBase.cpp (diff)
The file was modifiedclang/include/clang/AST/TextNodeDumper.h (diff)
The file was addedclang/test/AST/ast-dump-using-enum.cpp
The file was modifiedclang/lib/ASTMatchers/ASTMatchersInternal.cpp (diff)
The file was modifiedclang/lib/CodeGen/CGDebugInfo.h (diff)
The file was modifiedclang/lib/CodeGen/CGDecl.cpp (diff)
The file was modifiedclang/include/clang/Serialization/ASTBitCodes.h (diff)
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp (diff)
The file was modifiedclang/tools/libclang/CIndex.cpp (diff)
The file was modifiedclang/lib/Parse/ParseDeclCXX.cpp (diff)
The file was modifiedclang/unittests/ASTMatchers/ASTMatchersNodeTest.cpp (diff)
The file was modifiedclang/lib/Sema/SemaCodeComplete.cpp (diff)
The file was modifiedclang/lib/Index/IndexSymbol.cpp (diff)
The file was modifiedclang/include/clang/Index/IndexSymbol.h (diff)
The file was modifiedclang/lib/AST/DeclPrinter.cpp (diff)
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td (diff)
The file was modifiedclang/include/clang/Basic/DeclNodes.td (diff)
The file was modifiedclang/lib/Sema/SemaTemplateInstantiateDecl.cpp (diff)
The file was modifiedclang/include/clang/AST/DeclCXX.h (diff)
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp (diff)
Commit 7e976cd4568517df4020845682d31f326907a5df by Justin Bogner
[FuzzMutate] Fix getWeight of InstDeleterIRStrategy

The comment states the following, for calculating the Line variable:

> Draw a line starting from when we only have 1k left and increasing
> linearly to double the current weight.

However, the value was not calculated as described. Instead, it would
result in a negative value, which resulted in the function always
returning 0 afterwards.

```
// Invariant: CurrentSize <= MaxSize - 200
// Invariant: CurrentWeight >= 0
int Line = (-2 * CurrentWeight) * (MaxSize - CurrentSize + 1000);
// {Line <= 0}
```

This commit fixes the issue and linearly interpolates as described.

Patch by Loris Reiff. Thanks!

Differential Revision: https://reviews.llvm.org/D96207
The file was modifiedllvm/lib/FuzzMutate/IRMutator.cpp (diff)
Commit c09b37553e7423918ff09c7b6f4d3d2ae17b2bde by craig.topper
[RISCV] Remove dead code from fixed-vectors-abs.ll test cases. NFC

We had two pointer arguments and a dead load presumably copied
from a binary operation test and modified into unary abs.
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-abs.ll (diff)
Commit f673365e1ce16293075c18d03cd2f1ae6264289f by phosek
[CMake][Fuchsia] Include llvm-otool in Fuchsia toolchain

We want to use llvm-otool in our build.

Differential Revision: https://reviews.llvm.org/D103918
The file was modifiedclang/cmake/caches/Fuchsia-stage2.cmake (diff)
Commit 9197bac297f73552882820ba25d245115e29e7af by apilipenko
Add an option to hide "cold" blocks from CFG graph

Introduce a new cl::opt to hide "cold" blocks from CFG DOT graphs.
Use BFI to get block relative frequency. Hide the block if the
frequency is below the threshold set by the command line option value.

Reviewed By: davidxl, hoy
Differential Revision: https://reviews.llvm.org/D103640
The file was modifiedllvm/lib/Analysis/CFGPrinter.cpp (diff)
Commit c0edcec630eb26e12d66dae2f0e1fbf5258cb6ac by joker.eph
Add a static assertions for custom Op<> to not defined data members (NFC)

A common mistake for newcomers to MLIR is to try to store extra member
on the Op class. However these are intended to be thing wrapper around
an Operation*, all the storage is meant to be encoded in attribute on
the underlying Operation. This can be confusing to debug, so better
catch it at build time.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D103869
The file was modifiedmlir/include/mlir/IR/OpDefinition.h (diff)
Commit f44770c32992d51586d11c352f9e825f6aa15fc2 by david.green
[ARM] A couple of extra VMOVimm tests, useful for showing BE codegen. NFC
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vmovimm.ll (diff)
Commit 2927d40f044650e787985235a1d3d76db345cf87 by Matthew.Arsenault
GlobalISel: Hide virtual register creation in MIRBuilder
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (diff)
Commit 31a9659de550b25b6bc0ad5cab73d133095c351f by Matthew.Arsenault
GlobalISel: Avoid use of G_INSERT in insertParts

G_INSERT legalization is incomplete and doesn't work very
well. Instead try to use sequences of G_MERGE_VALUES/G_UNMERGE_VALUES
padding with undef values (although this can get pretty large).

For the case of load/store narrowing, this is still performing the
load/stores in irregularly sized pieces. It might be cleaner to split
this down into equal sized pieces, and rely on load/store merging to
optimize it.
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-add.mir (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-xor.mir (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ashr.mir (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-lshr.mir (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/load-unaligned.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-and.mir (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-private.mir (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/load-constant.96.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-or.mir (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/load-local.96.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-select.mir (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-constant.mir (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-fallback.ll (diff)
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/frem.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-flat.mir (diff)
The file was modifiedllvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-global.mir (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-constant.mir (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-local.mir (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mir (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-zext.mir (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/ds-alignment.ll (diff)
Commit 0e8506debae3ad534b4eecfa922fc6281506a635 by Abhina.Sreeskantharajan
[SystemZ][z/OS] Pass OpenFlags when creating tmp files

This patch https://reviews.llvm.org/D102876 caused some lit regressions on z/OS because tmp files were no longer being opened based on binary/text mode. This patch passes OpenFlags when creating tmp files so we can open files in different modes.

Reviewed By: amccarth

Differential Revision: https://reviews.llvm.org/D103806
The file was modifiedllvm/lib/Support/Path.cpp (diff)
The file was modifiedclang/lib/Frontend/CompilerInstance.cpp (diff)
The file was modifiedllvm/include/llvm/Support/FileSystem.h (diff)
Commit 944b3c53aec54c205d6898ffca548a484309e139 by leonardchan
[NFC][compiler-rt][hwasan] Move allocation functions into their own file

This removes the `__sanitizer_*` allocation function definitions from
`hwasan_interceptors.cpp` and moves them into their own file. This way
implementations that do not use interceptors at all can just ignore
(almost) everything in `hwasan_interceptors.cpp`.

Also remove some unused headers in `hwasan_interceptors.cpp` after the move.

Differential Revision: https://reviews.llvm.org/D103564
The file was modifiedcompiler-rt/lib/hwasan/hwasan.h (diff)
The file was modifiedcompiler-rt/lib/hwasan/CMakeLists.txt (diff)
The file was addedcompiler-rt/lib/hwasan/hwasan_allocation_functions.cpp
The file was modifiedcompiler-rt/lib/hwasan/hwasan_interceptors.cpp (diff)
Commit 9ec6c3bb2ff0ad94edd4c09189f3a0310947fc58 by thakis
[gn build] (semi-manually) port 944b3c53aec5
The file was modifiedllvm/utils/gn/secondary/compiler-rt/lib/hwasan/BUILD.gn (diff)
Commit 2a5afb466553ae4e185d7fa50c9b8df9fe62ecda by phosek
[CMake][Fuchsia] Use PIC for Fuchsia runtimes

Disabling PIC globally also disabled PIC for runtimes which was
undesirable, manually override it.

Differential Revision: https://reviews.llvm.org/D103919
The file was modifiedclang/cmake/caches/Fuchsia.cmake (diff)
The file was modifiedclang/cmake/caches/Fuchsia-stage2.cmake (diff)
Commit d69c4372bfbe81961160a4e6cb238fb53a279515 by spatel
[CodeGen] remove instcombine from codegen tests; NFC

The FileCheck lines in these files are auto-generated and complete,
so there's very little upside (less CHECK lines) from running
-instcombine on them and violating the expected test layering
(optimizer developers shouldn't have to be aware of clang tests).

Running opt passes like this makes it harder to make changes such as:
D93817
The file was modifiedclang/test/CodeGen/aarch64-bf16-dotprod-intrinsics.c (diff)
The file was modifiedclang/test/CodeGen/arm-bf16-convert-intrinsics.c (diff)
The file was modifiedclang/test/CodeGen/aarch64-bf16-lane-intrinsics.c (diff)
The file was modifiedclang/test/CodeGen/arm-bf16-dotprod-intrinsics.c (diff)
The file was modifiedclang/test/CodeGen/arm-bf16-getset-intrinsics.c (diff)
The file was modifiedclang/test/CodeGen/aarch64-bf16-getset-intrinsics.c (diff)
Commit 64576a1be887b7afcacf0534e6c168805fba5677 by apl
[lldb][NFC] Refactor name to index maps in Symtab

The various maps in Symtab lead to some repetative code. This should
improve the situation somewhat.

Differential Revision: https://reviews.llvm.org/D103652
The file was modifiedlldb/source/Symbol/Symtab.cpp (diff)
The file was modifiedlldb/include/lldb/Symbol/Symtab.h (diff)
Commit a9ea0a6a77b30305bfbe1b06c30bf6136f64c1ad by leonardchan
Fix for failing test mentioned in https://reviews.llvm.org/D103564.

This updates the path shown in the stack trace.
The file was modifiedcompiler-rt/test/hwasan/TestCases/use-after-free.c (diff)
Commit 27332968d85e1ad4a58df884030e55abc00e91b1 by michael.hliao
[amdgpu] Add `-enable-ocl-mangling-mismatch-workaround`.

- Add `-enable-ocl-mangling-mismatch-workaround` to work around the
  mismatch on OCL name mangling so far.

Reviewed By: yaxunl, rampitec

Differential Revision: https://reviews.llvm.org/D103920
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/simplify-libcalls.ll (diff)
Commit dc0c3fe5f35eb5fc8d5b36bb79761fb374a87269 by epastor
[ms] [llvm-ml] Disambiguate size directives and variable declarations

MASM allows statements of the form:
<VAR> DWORD 5
to declare a variable with name <VAR>, while:
call dword ptr [<value>]
is a valid instruction. To disambiguate, we recognize size directives by the trailing "ptr" token.

As discussed in https://lists.llvm.org/pipermail/llvm-dev/2021-May/150774.html

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D103257
The file was addedllvm/test/tools/llvm-ml/reserved_words_conflict.asm
The file was modifiedllvm/lib/MC/MCParser/MasmParser.cpp (diff)
Commit d7853bae941006cece63013f09d524e72bbbec45 by david.green
[ARM] Generate VDUP(Const) from constant buildvectors

If we cannot otherwise use a VMOVimm/VMOVFPimm/VMVNimm, fall back to
producing a VDUP(const) as opposed to a constant pool load. This will at
least be smaller codesize and can allow the VDUP to be folded into other
instructions.

Differential Revision: https://reviews.llvm.org/D103808
The file was modifiedllvm/test/CodeGen/Thumb2/mve-pred-vctpvpsel.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/mve-shifts.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/mve-fp16convertloops.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vmovimm.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/predicated-liveout-unknown-lanes.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vmvnimm.ll (diff)
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-scatter-tailpred.ll (diff)
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp (diff)
Commit a7142f5c91ba0e4dbe6dbd36e3f4ac6ccd33a418 by phosek
Partially revert the Fuchsia changes to avoid the use of PIC

This reverts commit:
2a5afb466553ae4e185d7fa50c9b8df9fe62ecda
de98da2eced72eee791a93b076b70a7b22175abc
1dba2a026956b0f3918dcf8bb1d3f3483db2de8c
The file was modifiedclang/cmake/caches/Fuchsia.cmake (diff)
The file was modifiedclang/cmake/caches/Fuchsia-stage2.cmake (diff)
Commit 297088d1add70cae554c8f96dde3a97a3e8d56a5 by david.green
Revert "[DSE] Remove stores in the same loop iteration"

Apparently non-dead stores are being removed, as noted in D100464.

This reverts commit 222aeb4d51a46c5a81c9e4ccb16d1d19dd21ec95.
The file was modifiedllvm/test/Other/opt-O2-pipeline.ll (diff)
The file was modifiedllvm/test/Other/opt-O3-pipeline.ll (diff)
The file was modifiedllvm/test/Other/opt-Os-pipeline.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/multiblock-loops.ll (diff)
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/opt-pipeline.ll (diff)
The file was modifiedllvm/test/Other/opt-O3-pipeline-enable-matrix.ll (diff)
Commit 211e584fa2a4c032e4d573e7cdbffd622aad0a8f by brendon.cahoon
Revert "[AMDGPU] Add gfx1013 target"

This reverts commit ea10a86984ea73fcec3b12d22404a15f2f59b219.

A sanitizer buildbot reports an error.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp (diff)
The file was modifiedllvm/test/MC/AMDGPU/gfx10_unsupported.s (diff)
The file was modifiedllvm/include/llvm/Support/TargetParser.h (diff)
The file was modifiedllvm/lib/ObjectYAML/ELFYAML.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.intersect_ray.ll (diff)
The file was modifiedllvm/docs/AMDGPUUsage.rst (diff)
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp (diff)
The file was modifiedllvm/test/Object/AMDGPU/elf-header-flags-mach.yaml (diff)
The file was modifiedclang/test/CodeGenOpenCL/amdgpu-features.cl (diff)
The file was modifiedclang/include/clang/Basic/Cuda.h (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/elf-header-flags-mach.ll (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPU.td (diff)
The file was modifiedllvm/test/MC/AMDGPU/dl-insts-err.s (diff)
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp (diff)
The file was modifiedllvm/lib/Target/AMDGPU/GCNProcessors.td (diff)
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp (diff)
The file was modifiedllvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h (diff)
The file was modifiedclang/test/Driver/amdgpu-mcpu.cl (diff)
The file was modifiedclang/lib/Basic/Cuda.cpp (diff)
The file was modifiedllvm/lib/Target/AMDGPU/MIMGInstructions.td (diff)
The file was modifiedclang/lib/Basic/Targets/AMDGPU.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.intersect_ray.ll (diff)
The file was modifiedclang/test/Misc/target-invalid-cpu-note.c (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/directive-amdgcn-target.ll (diff)
The file was modifiedllvm/test/tools/llvm-objdump/ELF/AMDGPU/subtarget.ll (diff)
The file was modifiedllvm/test/tools/llvm-readobj/ELF/amdgpu-elf-headers.test (diff)
The file was modifiedopenmp/libomptarget/plugins/amdgpu/impl/get_elf_mach_gfx_name.cpp (diff)
The file was modifiedllvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp (diff)
The file was modifiedllvm/lib/Object/ELFObjectFile.cpp (diff)
The file was modifiedllvm/lib/Target/AMDGPU/GCNSubtarget.h (diff)
The file was modifiedclang/test/Driver/amdgpu-macros.cl (diff)
The file was modifiedllvm/include/llvm/BinaryFormat/ELF.h (diff)
The file was modifiedllvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp (diff)
The file was modifiedclang/lib/Basic/Targets/NVPTX.cpp (diff)
The file was modifiedllvm/lib/Support/TargetParser.cpp (diff)
Commit d5e4f28c0a45a659d45ae8a822c24d68fbadcfbd by paulsson
[SystemZ] Return true from isMaskAndCmp0FoldingBeneficial().

Return true if the mask is a constant uint of 2 bytes, in which case TMLL is
available.

Review: Ulrich Weigand
The file was modifiedllvm/lib/Target/SystemZ/SystemZISelLowering.h (diff)
The file was addedllvm/test/CodeGen/SystemZ/codegenprepare-sink-and-for-tm.ll
Commit 1683dbf0ddb28c829926b18065f692ee670693fc by phosek
[CMake][Fuchsia] Disable vcruntime for first stage as well

Using vcruntime is breaking libc++ headers so don't use it.

Differential Revision: https://reviews.llvm.org/D103926
The file was modifiedclang/cmake/caches/Fuchsia.cmake (diff)
Commit 07ef5805abe5d4576eb5528eab63e75505bfd0bd by whitneyt
Revert "[LoopNest] Fix Wdeprecated-copy warnings"

This reverts commit dee1f0cb348b0a56375d9b563fb4d6918c431ed1.

It appears that this change broke the sanitizer-windows bot:
https://lab.llvm.org/buildbot/#/builders/127/builds/12064

Differential Revision: https://reviews.llvm.org/D103752
The file was modifiedllvm/include/llvm/Analysis/LoopNestAnalysis.h (diff)
Commit 12933ba9eab2a6c0cb63a590d0b7338817fe88ed by Louis Dionne
[libc++] NFC: Rewrite the documentation for the debug mode
The file was modifiedlibcxx/docs/DesignDocs/DebugMode.rst (diff)
Commit 0178ae734ca33265fe051c39deff6d7d530f6239 by david.green
[DSE] Add another multiblock loop DSE test. NFC

As reported in D100464, the stores in these loops should not be removed.
The file was modifiedllvm/test/Transforms/DeadStoreElimination/multiblock-loops.ll (diff)
Commit 1a216fb15a188f9ac7de6d79267b3cfb2946f792 by Jonas Devlieghere
[lldb] Don't print script output twice in HandleCommand

When executing a script command in HandleCommand(s) we currently print
its output twice
You can see this issue in action when adding a breakpoint command:

(lldb) b main
Breakpoint 1: where = main.out`main + 13 at main.cpp:2:3, address = 0x0000000100003fad
(lldb) break command add 1 -o "script print(\"Hey!\")"
(lldb) r
Process 76041 launched: '/tmp/main.out' (x86_64)
Hey!
(lldb)  script print("Hey!")
Hey!
Process 76041 stopped

The issue is caused by HandleCommands using a temporary
CommandReturnObject and one of the commands (`script` in this case)
setting an immediate output stream. This causes the result to be printed
twice: once directly to the immediate output stream and once when
printing the result of HandleCommands.

This patch fixes the issue by introducing a new option to suppress
immediate output for temporary CommandReturnObjects.

Differential revision: https://reviews.llvm.org/D103349
The file was modifiedlldb/test/Shell/ScriptInterpreter/Lua/nested_sessions.test (diff)
The file was modifiedlldb/source/Interpreter/CommandInterpreter.cpp (diff)
The file was modifiedlldb/include/lldb/Interpreter/CommandReturnObject.h (diff)
The file was modifiedlldb/source/Interpreter/CommandReturnObject.cpp (diff)
The file was addedlldb/lldb/test/Shell/Breakpoint/breakpoint-command.test
The file was addedlldb/test/Shell/Breakpoint/breakpoint-command.test
Commit 2551053e8d8df464d5b60e7c9b0add8f85cc1e10 by kostyak
[scudo] Add Scudo support for Trusty OS

trusty.cpp and trusty.h define Trusty implementations of map and other
platform-specific functions. In addition to adding Trusty configurations
in allocator_config.h and size_class_map.h, MapSizeIncrement and
PrimaryEnableRandomOffset are added as configurable options in
allocator_config.h.
Background on Trusty: https://source.android.com/security/trusty

Differential Revision: https://reviews.llvm.org/D103578
The file was modifiedcompiler-rt/lib/scudo/standalone/platform.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/size_class_map.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/primary64.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/primary32.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/common.h (diff)
The file was addedcompiler-rt/lib/scudo/standalone/trusty.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/combined_test.cpp (diff)
The file was addedcompiler-rt/lib/scudo/standalone/trusty.h
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/primary_test.cpp (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/allocator_config.h (diff)
Commit c52ed5c4f1f2a2e54634226dc6bd305f98f0c541 by spatel
[InstCombine] add FMF tests for fneg-of-select; NFC

As noted in the post-commit comments for 3cdd05e519d,
we need to be more careful about FMF propagation.
The file was modifiedllvm/test/Transforms/InstCombine/fneg.ll (diff)
Commit d2012d965d60c3258b3a69d024491698f8aec386 by spatel
[InstCombine] fix nsz (fast-math) propagation from fneg-of-select

As discussed in the post-commit comments for:
3cdd05e519dd

It seems to be safe to propagate all flags from the final fneg
except for 'nsz' to the new select:
https://alive2.llvm.org/ce/z/J_APDc

nsz has unique FMF semantics: it is not poison, it is only
"insignificant" in the calculation according to the LangRef.
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp (diff)
The file was modifiedllvm/test/Transforms/InstCombine/fneg.ll (diff)
Commit ae1a699554cfa01d9fb307a964c3a9f71831a62e by Shafik Yaghmour
[LLDB][NFC] Remove parameter names from forward declarations from hand written expressions used in heap.py

heap.py has a lot of large hand written expressions and each name in the
expression will be looked up by clang during expression parsing. For
function parameters this will be in Sema::ActOnParamDeclarator(...) in order to
catch redeclarations of parameters. The names are not needed and we have seen
some rare cases where since we don't have symbols we end up in
SymbolContext::FindBestGlobalDataSymbol(...) which may conflict with other global
symbols.

There may be a way to make this lookup smarter to avoid these cases but it is
not clear how well tested this path is and how much work it would be to fix it.
So we will go with this fix while we investigate more.

Ref: rdar://78265641
The file was modifiedlldb/examples/darwin/heap_find/heap.py (diff)
Commit 8b32e25bc229f98faed002b1cc90587ca300c92a by paulsson
[SystemZ] Return true from convertSetCCLogicToBitwiseLogic for scalar integer.

Review: Ulrich Weigand
The file was addedllvm/test/CodeGen/SystemZ/int-cmp-61.ll
The file was modifiedllvm/lib/Target/SystemZ/SystemZISelLowering.h (diff)
Commit af8c59e06d281f96db101d87ec227b238045a1d8 by kda
Update and improve compiler-rt tests for -mllvm -asan_use_after_return=(never|[runtime]|always).

In addition:
  - optionally add global flag to capture compile intent for UAR:
    __asan_detect_use_after_return_always.
    The global is a SANITIZER_WEAK_ATTRIBUTE.

for issue: https://github.com/google/sanitizers/issues/1394

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D103304
The file was modifiedcompiler-rt/test/asan/TestCases/uar_and_exceptions.cpp (diff)
The file was modifiedcompiler-rt/test/asan/TestCases/Posix/stack-use-after-return.cpp (diff)
The file was modifiedcompiler-rt/test/asan/TestCases/heavy_uar_test.cpp (diff)
The file was modifiedcompiler-rt/lib/asan/asan_fake_stack.cpp (diff)
The file was modifiedllvm/test/Instrumentation/AddressSanitizer/stack-poisoning.ll (diff)
The file was modifiedcompiler-rt/test/asan/TestCases/pass-struct-byval-uar.cpp (diff)
The file was modifiedllvm/test/Instrumentation/AddressSanitizer/fake-stack.ll (diff)
The file was modifiedcompiler-rt/test/asan/TestCases/scariness_score_test.cpp (diff)
The file was modifiedcompiler-rt/lib/asan/asan_interface.inc (diff)
The file was modifiedcompiler-rt/test/asan/TestCases/Linux/uar_signals.cpp (diff)
The file was modifiedllvm/test/Instrumentation/AddressSanitizer/stack_dynamic_alloca.ll (diff)
The file was modifiedcompiler-rt/test/asan/TestCases/Windows/dll_stack_use_after_return.cpp (diff)
The file was modifiedcompiler-rt/test/asan/TestCases/Windows/stack_use_after_return.cpp (diff)
The file was modifiedllvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp (diff)
Commit 9b41d0958e78c397c702c913d60946dd8c01f0a5 by patacca
[Polly][Isl] Removing nullptr constructor from C++ bindings. NFC.

[Polly][Isl] Removing nullptr constructor from C++ bindings. NFC.

This is part of an effort to reduce the differences between the custom C++ bindings used right now by polly in `lib/External/isl/include/isl/isl-noxceptions.h` and the official isl C++ interface.

Changes made:
- Removed `std::nullptr_t` constructor from all the classes in the isl C++ bindings.
- `isl-noexceptions.h` has been generated by this https://github.com/patacca/isl/commit/a7e00bea38f251a4bcf5c2c6ce5fa7ee5f661528

Reviewed By: Meinersbur

Differential Revision: https://reviews.llvm.org/D103751
The file was modifiedpolly/lib/Transform/ZoneAlgo.cpp (diff)
The file was modifiedpolly/lib/Transform/FlattenSchedule.cpp (diff)
The file was modifiedpolly/lib/Analysis/ScopInfo.cpp (diff)
The file was modifiedpolly/include/polly/ScopInfo.h (diff)
The file was modifiedpolly/lib/CodeGen/PPCGCodeGeneration.cpp (diff)
The file was modifiedpolly/lib/Support/ISLTools.cpp (diff)
The file was modifiedpolly/lib/Transform/ScheduleOptimizer.cpp (diff)
The file was modifiedpolly/lib/CodeGen/IslAst.cpp (diff)
The file was modifiedpolly/lib/Transform/FlattenAlgo.cpp (diff)
The file was modifiedpolly/lib/Analysis/ScopBuilder.cpp (diff)
The file was modifiedpolly/lib/External/isl/include/isl/isl-noexceptions.h (diff)
The file was modifiedpolly/lib/Transform/DeLICM.cpp (diff)
The file was modifiedpolly/lib/Transform/ForwardOpTree.cpp (diff)
The file was modifiedpolly/unittests/DeLICM/DeLICMTest.cpp (diff)
Commit 9b022a679b2ba79b8c7d11135b9297f0149f1433 by whitneyt
Revert "Revert "[LoopNest] Fix Wdeprecated-copy warnings""

This reverts commit 07ef5805abe5d4576eb5528eab63e75505bfd0bd.

The broke of the sanitizer-windows bot:
https://lab.llvm.org/buildbot/#/builders/127/builds/12064
is not caused by the original commit.

Differential Revision: https://reviews.llvm.org/D103752
The file was modifiedllvm/include/llvm/Analysis/LoopNestAnalysis.h (diff)
Commit 2f9ba6aa8b6d805728b5df42b7b049b3c23d28a2 by ndesaulniers
LTO: Export functions referenced by non-canonical CFI jump tables

LowerTypeTests pass adds functions with a non-canonical jump table
to cfiFunctionDecls instead of cfiFunctionDefs. As the jump table
is in the regular LTO object, these functions will also need to be
exported. This change fixes the non-canonical jump table case and
adds a test similar to the existing one for canonical jump tables.

Reviewed By: pcc

Differential Revision: https://reviews.llvm.org/D103120
The file was modifiedllvm/lib/LTO/LTO.cpp (diff)
The file was addedllvm/test/LTO/Resolution/X86/export-jumptable-noncanonical.ll
Commit 898e38a3c1593024cdb8904cdd999a0fe1193427 by albionapc
[NFC] In the future, all intrinsics defined for compatibility with the XL
compiler will be placed in this collection.

This patch has no functional changes.

Differential revision: https://reviews.llvm.org/D103921
The file was modifiedllvm/include/llvm/IR/IntrinsicsPowerPC.td (diff)
Commit 05cadc6f71555319882ccabf631d2e6410e3fea4 by rob.suderman
[mlir][tosa] Temporarily support 2D and 3D tensor types in matmul

Temporarily support 2D and 3D while the TOSA Matmul op is updated to support batched operations.

Reviewed By: rsuderman

Differential Revision: https://reviews.llvm.org/D103854
The file was modifiedmlir/include/mlir/Dialect/Tosa/IR/TosaOps.td (diff)
The file was modifiedmlir/include/mlir/Dialect/Tosa/IR/TosaTypesBase.td (diff)
Commit f4c8fd12d58ed93c447081fd8f499fb503da12ff by sivachandra
[libc][NFC] Use add_library instead of add_llvm_library for a few libraries.

These libraries do not depend on LLVM libraries anymore so they do not
have to be added using add_llvm_library.
The file was modifiedlibc/utils/FPUtil/CMakeLists.txt (diff)
The file was modifiedlibc/utils/testutils/CMakeLists.txt (diff)
The file was modifiedlibc/utils/UnitTest/CMakeLists.txt (diff)