SuccessChanges

Summary

  1. AMDGPU/NFC: Replace EF_AMDGPU_MACH_AMDGCN_RESERVED_0X3E with EF_AMDGPU_MACH_AMDGCN_GFX1034 (details)
  2. [clang-repl] Better match the underlying architecture. (details)
  3. [lld][WebAssembly] Enable string tail merging in debug sections (details)
  4. [X86][AVX] createVariablePermute - correctly extend same-sized-vector indices (PR50356) (details)
  5. [lld][WebAssembly] Convert test to assembly. NFC. (details)
  6. [mlir-lsp-server] Add support for recording text document versions (details)
  7. [PDB] Improve error handling when writes fail (details)
  8. [CMake] Use -O0 for unittests under full LTO as well (details)
  9. [OpaquePtr] Make loads and stores work with opaque pointers (details)
  10. [MinGW] Fix the cmake condition for -mbig-obj (details)
  11. [NewPM] Don't mark AA analyses as preserved (details)
  12. [compiler-rt] [builtins] Provide a SEH specific __gcc_personality_seh0 (details)
  13. [SystemZ] [z/OS] Add XPLINK64 Calling Convention to SystemZ (details)
  14. AMDGPU/Docs: Remove reserved MACH 0x3E (it is no longer reserved), sort MACHs by value (details)
  15. [MSan] Set zeroext on call arguments to msan functions with zeroext parameter attribute (details)
  16. [TargetLowering] Only inspect attributes in the arguments for ArgListEntry (details)
  17. [NFC] Use ArgListEntry indirect types more in ISel lowering (details)
  18. [docs] Fix broken docs after 1c7f32334 (details)
  19. [mlir-docs] Add a blurb on recursion during pattern application (details)
  20. [mlir] Allow derived rewrite patterns to define a non-virtual `initialize` hook (details)
  21. [x86] trim zeros from constants for readability; NFC (details)
  22. [x86] add FMF propagation test for target-specific intrinsic; NFC (details)
  23. scudo: Test realloc on increasing size buffers. (details)
  24. [Demangle][Rust] Parse named types (details)
  25. [Demangle][Rust] Parse array type (details)
  26. [Demangle][Rust] Parse slice type (details)
  27. [Demangle][Rust] Parse tuples (details)
Commit 0f544be244e31d3988b2024dfbfe4b91f8e909e1 by kzhuravl_dev
AMDGPU/NFC: Replace EF_AMDGPU_MACH_AMDGCN_RESERVED_0X3E with EF_AMDGPU_MACH_AMDGCN_GFX1034

Differential Revision: https://reviews.llvm.org/D102708
The file was modifiedllvm/include/llvm/BinaryFormat/ELF.h
Commit 8dd5ef01ef13e402784bba47f7a24175f5f00325 by v.g.vassilev
[clang-repl] Better match the underlying architecture.

In cases where -fno-integrated-as is specified we should overwrite the
EmitAssembly action as well.

We also should rely on the target triple from the process at least until we
implement out-of-process execution.

This patch should improve clang-repl on AIX.

Discussion available at: https://reviews.llvm.org/D96033

Differential revision: https://reviews.llvm.org/D102688
The file was modifiedclang/lib/Interpreter/IncrementalParser.cpp
The file was modifiedclang/lib/Interpreter/Interpreter.cpp
Commit 45b7cf995551a0c0743e5d69f611bba7e4072ddf by sbc
[lld][WebAssembly] Enable string tail merging in debug sections

This is a followup to https://reviews.llvm.org/D97657 which
applied string tail merging to data segments.

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

Differential Revision: https://reviews.llvm.org/D102436
The file was modifiedlld/wasm/Driver.cpp
The file was addedlld/test/wasm/Inputs/merge-string-debug2.s
The file was modifiedlld/wasm/Writer.cpp
The file was modifiedlld/wasm/InputFiles.cpp
The file was modifiedllvm/lib/MC/MCObjectFileInfo.cpp
The file was modifiedlld/wasm/Symbols.cpp
The file was modifiedlld/wasm/Symbols.h
The file was modifiedlld/wasm/InputChunks.cpp
The file was modifiedlld/wasm/OutputSections.cpp
The file was modifiedllvm/include/llvm/MC/MCContext.h
The file was modifiedlld/wasm/OutputSegment.cpp
The file was modifiedlld/wasm/OutputSections.h
The file was addedlld/test/wasm/merge-string-debug.s
The file was modifiedlld/wasm/InputChunks.h
The file was modifiedlld/wasm/InputFiles.h
Commit d0902a8665b1e158fb78df7fc5008e3af862939c by llvm-dev
[X86][AVX] createVariablePermute - correctly extend same-sized-vector indices (PR50356)

D101838 incorrectly handled indices vectors of the same size but with higher element counts to just bitcast to the target indices type instead of performing a ZERO_EXTEND_VECTOR_INREG
The file was modifiedllvm/test/CodeGen/X86/var-permute-256.ll
The file was modifiedllvm/test/CodeGen/X86/var-permute-128.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 876d49baad63d14b61ba6134828497512eb668b3 by sbc
[lld][WebAssembly] Convert test to assembly. NFC.

Differential Revision: https://reviews.llvm.org/D102704
The file was addedlld/test/wasm/name-section-mangling.s
The file was removedlld/test/wasm/cxx-mangling.ll
Commit f9ea3ebef2289e64d9df00e58ad57b331244c054 by riddleriver
[mlir-lsp-server] Add support for recording text document versions

The version is used by LSP clients to ignore stale diagnostics, and can be used in a followup to help verify incremental changes.

Differential Revision: https://reviews.llvm.org/D102644
The file was modifiedmlir/lib/Tools/mlir-lsp-server/lsp/Protocol.h
The file was modifiedmlir/lib/Tools/mlir-lsp-server/lsp/Transport.h
The file was modifiedmlir/lib/Tools/mlir-lsp-server/LSPServer.cpp
The file was modifiedmlir/lib/Tools/mlir-lsp-server/MLIRServer.cpp
The file was modifiedmlir/test/mlir-lsp-server/diagnostics.test
The file was modifiedmlir/lib/Tools/mlir-lsp-server/lsp/Protocol.cpp
The file was modifiedmlir/lib/Tools/mlir-lsp-server/lsp/Transport.cpp
The file was modifiedmlir/lib/Tools/mlir-lsp-server/MLIRServer.h
Commit ac2226b0f573226620e8aecdcc079f74612dfe48 by rnk
[PDB] Improve error handling when writes fail

Handle PDB writing errors like any other error in LLD: emit an error and
continue. This allows the linker to print timing data and summary data
after linking, which can be helpful for finding PDB size problems. Also
report how large the file would have been.

Example output:

lld-link: error: Output data is larger than 4 GiB. File size would have been 6,937,108,480
lld-link: error: failed to write PDB file ./chrome.dll.pdb
                                    Summary
--------------------------------------------------------------------------------
          33282 Input OBJ files (expanded from all cmd-line inputs)
              4 PDB type server dependencies
              0 Precomp OBJ dependencies
       33396931 Input type records
... snip ...
  Input File Reading:           59756 ms ( 45.5%)
  GC:                            7500 ms (  5.7%)
  ICF:                           3336 ms (  2.5%)
  Code Layout:                   6329 ms (  4.8%)
  PDB Emission (Cumulative):    46192 ms ( 35.2%)
    Add Objects:                27609 ms ( 21.0%)
      Type Merging:             16740 ms ( 12.8%)
      Symbol Merging:           10761 ms (  8.2%)
    Publics Stream Layout:       9383 ms (  7.1%)
    TPI Stream Layout:           1678 ms (  1.3%)
    Commit to Disk:              3461 ms (  2.6%)
--------------------------------------------------
Total Link Time:               131244 ms (100.0%)

Differential Revision: https://reviews.llvm.org/D102713
The file was modifiedlld/COFF/PDB.cpp
The file was modifiedllvm/lib/DebugInfo/MSF/MSFError.cpp
The file was modifiedllvm/include/llvm/DebugInfo/MSF/MSFError.h
The file was modifiedllvm/lib/DebugInfo/MSF/MSFBuilder.cpp
Commit 832f7af2832ed4c059e2fc2c1b7663b5d0ff9494 by phosek
[CMake] Use -O0 for unittests under full LTO as well

We already use -O0 for unittests under ThinLTO, do the same for full LTO
where the compile time costs to runtime benefits tradeoff is even worse.

Differential Revision: https://reviews.llvm.org/D102718
The file was modifiedllvm/cmake/modules/AddLLVM.cmake
Commit 6013d84392fa1b7683921f9d3b6aedb357233e06 by aeubanks
[OpaquePtr] Make loads and stores work with opaque pointers

Don't check that types match when the pointer operand is an opaque
pointer.

I would separate the Assembler and Verifier changes, but
verify-uselistorder in the Assembler test ends up running the verifier.

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D102450
The file was modifiedllvm/lib/IR/Verifier.cpp
The file was modifiedllvm/include/llvm/IR/DerivedTypes.h
The file was modifiedllvm/lib/IR/Instructions.cpp
The file was addedllvm/test/Verifier/opaque-ptr.ll
The file was modifiedllvm/lib/AsmParser/LLParser.cpp
The file was modifiedllvm/test/Assembler/opaque-ptr.ll
The file was modifiedllvm/lib/Bitcode/Reader/BitcodeReader.cpp
Commit fd5e79ff12204b5850cca364fc669fa10eb9a1a5 by martin
[MinGW] Fix the cmake condition for -mbig-obj

This is a correction to D102419, fixing the condition to the
form that actually works as intended.
The file was modifiedllvm/cmake/modules/HandleLLVMOptions.cmake
Commit 6b9524a05bab21c6b0ba4fe025864cb613605b99 by aeubanks
[NewPM] Don't mark AA analyses as preserved

Currently all AA analyses marked as preserved are stateless, not taking
into account their dependent analyses. So there's no need to mark them
as preserved, they won't be invalidated unless their analyses are.

SCEVAAResults was the one exception to this, it was treated like a
typical analysis result. Make it like the others and don't invalidate
unless SCEV is invalidated.

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D102032
The file was modifiedllvm/lib/Transforms/Scalar/GVNSink.cpp
The file was modifiedllvm/lib/Transforms/Scalar/NewGVN.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VectorCombine.cpp
The file was modifiedllvm/lib/Transforms/Scalar/SROA.cpp
The file was modifiedllvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp
The file was modifiedllvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp
The file was modifiedllvm/lib/Transforms/Scalar/DivRemPairs.cpp
The file was modifiedllvm/unittests/Transforms/Scalar/LoopPassManagerTest.cpp
The file was modifiedllvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
The file was modifiedllvm/lib/Transforms/Scalar/LoopPassManager.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
The file was modifiedllvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
The file was modifiedllvm/lib/Transforms/Scalar/EarlyCSE.cpp
The file was modifiedllvm/lib/CodeGen/ReplaceWithVeclib.cpp
The file was modifiedllvm/lib/Transforms/Scalar/BDCE.cpp
The file was modifiedllvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
The file was modifiedllvm/lib/Transforms/Utils/LCSSA.cpp
The file was modifiedllvm/lib/Transforms/Scalar/JumpThreading.cpp
The file was modifiedllvm/lib/Transforms/Scalar/MergeICmps.cpp
The file was modifiedllvm/lib/Transforms/Scalar/GVN.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp
The file was modifiedllvm/lib/Transforms/Scalar/Reassociate.cpp
The file was modifiedllvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp
The file was modifiedllvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
The file was modifiedllvm/lib/Transforms/Scalar/SCCP.cpp
The file was modifiedllvm/lib/Transforms/Scalar/ADCE.cpp
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
The file was modifiedllvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
The file was modifiedllvm/lib/Transforms/Scalar/GVNHoist.cpp
The file was modifiedllvm/lib/Transforms/Scalar/LoopDistribute.cpp
The file was modifiedllvm/lib/Analysis/LoopAnalysisManager.cpp
The file was modifiedllvm/lib/Transforms/Utils/LoopSimplify.cpp
The file was modifiedllvm/lib/Transforms/Scalar/Float2Int.cpp
The file was modifiedllvm/lib/Transforms/Scalar/ConstraintElimination.cpp
The file was modifiedllvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp
The file was modifiedllvm/include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h
The file was modifiedllvm/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp
Commit 9f57675e5274934a85c43fdb50e2a77328f64a28 by martin
[compiler-rt] [builtins] Provide a SEH specific __gcc_personality_seh0

This matches how __gxx_personality_seh0 is hooked up in libcxxabi.

Differential Revision: https://reviews.llvm.org/D102530
The file was modifiedcompiler-rt/lib/builtins/gcc_personality_v0.c
Commit ec4706be8e72d171b36fb19e0dba1e7be5929c4c by kai.nacke
[SystemZ] [z/OS] Add XPLINK64 Calling Convention to SystemZ

This patch adds the XPLINK64 calling convention to the SystemZ
backend. It specifies and implements the argument passing and
return value conventions.

Reviewed By: uweigand

Differential Revision: https://reviews.llvm.org/D101010
The file was modifiedllvm/lib/Target/SystemZ/SystemZCallingConv.h
The file was modifiedllvm/lib/Target/SystemZ/SystemZCallingConv.cpp
The file was modifiedllvm/lib/Target/SystemZ/SystemZCallingConv.td
Commit 4e297dcd18daacd16076ee523e200061f757a0d9 by kzhuravl_dev
AMDGPU/Docs: Remove reserved MACH 0x3E (it is no longer reserved), sort MACHs by value
The file was modifiedllvm/docs/AMDGPUUsage.rst
Commit b86302e500791481da5f446c700a63693b355024 by aeubanks
[MSan] Set zeroext on call arguments to msan functions with zeroext parameter attribute

ABI attributes need to match between the caller and callee.

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D102667
The file was modifiedllvm/test/Instrumentation/MemorySanitizer/instrumentation-with-call-threshold.ll
The file was modifiedllvm/test/Instrumentation/MemorySanitizer/with-call-type-size.ll
The file was modifiedllvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
Commit 1c7f32334d4becc725b9025fd32291a0e5729acd by aeubanks
[TargetLowering] Only inspect attributes in the arguments for ArgListEntry

Parameter attributes are considered part of the function [1], and like
mismatched calling conventions [2], we can't have the verifier check for
mismatched parameter attributes.

This is a reland after fixing MSan issues in D102667.

[1] https://llvm.org/docs/LangRef.html#parameter-attributes
[2] https://llvm.org/docs/FAQ.html#why-does-instcombine-simplifycfg-turn-a-call-to-a-function-with-a-mismatched-calling-convention-into-unreachable-why-not-make-the-verifier-reject-it

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D101806
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/tailcall-msvc-conventions.ll
The file was modifiedllvm/test/CodeGen/X86/fast-cc-pass-in-regs.ll
The file was modifiedllvm/test/CodeGen/ARM/this-return.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/callee-special-input-vgprs.ll
The file was modifiedllvm/docs/ReleaseNotes.rst
The file was modifiedllvm/test/CodeGen/ARM/ipra-r0-returned.ll
The file was modifiedllvm/test/CodeGen/SystemZ/args-02.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/gfx-callable-argument-types.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/tail-call-amdgpu-gfx.ll
The file was modifiedllvm/test/CodeGen/SystemZ/args-03.ll
The file was modifiedllvm/test/CodeGen/X86/pop-stack-cleanup.ll
The file was modifiedllvm/test/CodeGen/AArch64/arm64-this-return.ll
The file was modifiedllvm/test/CodeGen/ARM/returned-ext.ll
The file was modifiedllvm/test/CodeGen/X86/movtopush.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/call-argument-types.ll
The file was modifiedllvm/test/CodeGen/AArch64/tailcall-explicit-sret.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/callee-special-input-vgprs-packed.ll
The file was modifiedllvm/test/CodeGen/X86/fast-cc-merge-stack-adj.ll
The file was addedllvm/test/CodeGen/X86/mismatched-byval.ll
The file was modifiedllvm/test/CodeGen/X86/preallocated.ll
The file was modifiedllvm/test/CodeGen/SPARC/64abi.ll
The file was modifiedllvm/test/CodeGen/AArch64/bitfield-extract.ll
Commit bc7d15c61da78864b35e3c114294d6e4db645611 by aeubanks
[NFC] Use ArgListEntry indirect types more in ISel lowering

For opaque pointers, we're trying to avoid uses of
PointerType::getElementType().

A couple of ISel places use PointerType::getElementType(). Some of these
are easy to fix by using ArgListEntry's indirect types.

The inalloca type wasn't stored there, as opposed to preallocated and
byval which have their indirect types available, so add it and use it.

This is a reland after an MSan fix in D102667.

Differential Revision: https://reviews.llvm.org/D101713
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/include/llvm/IR/InstrTypes.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FastISel.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
Commit b9d25cc9213887a36d987b7d0057b8aafa6adee4 by aeubanks
[docs] Fix broken docs after 1c7f32334
The file was modifiedllvm/docs/ReleaseNotes.rst
Commit 93cb71a4649ac71b9aca48ba5496f11ffbc4b26d by riddleriver
[mlir-docs] Add a blurb on recursion during pattern application

We currently do not document how the pattern rewriter infra treats recursion when it gets detected. This revision adds a blurb on recursion in patterns, and how patterns can signal that they are equipped to handle it.

Differential Revision: https://reviews.llvm.org/D102439
The file was modifiedmlir/docs/PatternRewriter.md
Commit 2257e4a70e4aabe7255161f3a54922d7dcf1c059 by riddleriver
[mlir] Allow derived rewrite patterns to define a non-virtual `initialize` hook

This is a hook that allows for providing custom initialization of the pattern, e.g. if it has bounded recursion, setting the debug name, etc., without needing to define a custom constructor. A non-virtual hook was chosen to avoid polluting the vtable with code that we really just want to be inlined when constructing the pattern. The alternative to this would be to just define a constructor for each pattern, this unfortunately creates a lot of otherwise unnecessary boiler plate for a lot of patterns and a hook provides a much simpler/cleaner interface for the very common case.

Differential Revision: https://reviews.llvm.org/D102440
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was modifiedmlir/docs/PatternRewriter.md
The file was modifiedmlir/test/lib/Dialect/Test/TestPatterns.cpp
The file was modifiedmlir/include/mlir/IR/PatternMatch.h
Commit 7d15c4941499b1454432d63604dc6bbe56e32ce7 by spatel
[x86] trim zeros from constants for readability; NFC
The file was modifiedllvm/test/CodeGen/X86/fma-fneg-combine.ll
Commit 62eec33616a462c5860cd980450d53c632b123e8 by spatel
[x86] add FMF propagation test for target-specific intrinsic; NFC
The file was modifiedllvm/test/CodeGen/X86/fmf-propagation.ll
Commit 8e93d10633d751a3e9169bf9fa68326925ffa097 by peter
scudo: Test realloc on increasing size buffers.

While developing a change to the allocator I ended up breaking
realloc on secondary allocations with increasing sizes. That didn't
cause any of the unit tests to fail, which indicated that we're
missing some test coverage here. Add a unit test for that case.

Differential Revision: https://reviews.llvm.org/D102716
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/combined_test.cpp
Commit 068332978c672afb7504b2d2856d0df9010f27bf by tomasz.miasko
[Demangle][Rust] Parse named types

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D102571
The file was modifiedllvm/test/Demangle/rust.test
The file was modifiedllvm/lib/Demangle/RustDemangle.cpp
The file was modifiedllvm/include/llvm/Demangle/RustDemangle.h
Commit b42400ccf3be9c8a422f175e16109e358298973c by tomasz.miasko
[Demangle][Rust] Parse array type

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D102573
The file was modifiedllvm/test/Demangle/rust.test
The file was modifiedllvm/lib/Demangle/RustDemangle.cpp
Commit a84c65c204ccbd2647eb567d1f7a9dca4ded977f by tomasz.miasko
[Demangle][Rust] Parse slice type

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D102578
The file was modifiedllvm/lib/Demangle/RustDemangle.cpp
The file was modifiedllvm/test/Demangle/rust.test
Commit 774de7a09bee2e21f3cd7d8f8a001d83e2654483 by tomasz.miasko
[Demangle][Rust] Parse tuples

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D102579
The file was modifiedllvm/test/Demangle/rust.test
The file was modifiedllvm/lib/Demangle/RustDemangle.cpp