SuccessChanges

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

Summary

  1. [zorg] Add polly test-suite builder. (details)
Commit 712a02574ee1866ca4f635b17a67560cd2a087a5 by llvm-zorg
[zorg] Add polly test-suite builder.

Add a builder for compiling and running the test-suite using polly.

Reviewed By: gkistanova

Differential Revision: https://reviews.llvm.org/D78955
The file was modifiedbuildbot/osuosl/master/config/builders.py
The file was modifiedzorg/buildbot/builders/PollyBuilder.py

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

Summary

  1. PseudoSourceValue.h - reduce GlobalValue.h include to forward declaration. NFC. (details)
  2. GenericDomTreeConstruction.h - reorder includes. NFC. (details)
  3. [mlir] NFC: rename tests related to SCF dialect from Loops to SCF (details)
  4. [clang] FastMathFlags.allowContract should be initialized only from FPFeatures.allowFPContractAcrossStatement (details)
  5. [lldb][NFC] Minor NamespaceMap refactor (details)
  6. [AMDGPU] Add the test from D49097. (details)
  7. DIPrinter.h - reduce unnecessary includes to forward declarations. NFC. (details)
  8. MachineMemOperand.h - replace Type.h with full GlobalValue.h include to fix -Wundefined-inline warnings. (details)
  9. [mlir][Linalg] Refactor linalg tiling (details)
  10. [mlir][Linalg] NFC - Simplify GenericNestLoop builder (details)
  11. [mlir] Toy tutorial: insert terminators at the end of the loop during rewrite (details)
  12. [mlir] DialectConversion: avoid double-free when rolling back op creation (details)
  13. [mlir] DialectConversion: support erasing blocks (details)
  14. [mlir] Erase or clear blocks through ConversionPatternRewriter when applicable (details)
  15. [mlir] SCFToStandard: support any ops in and around the control flow ops (details)
  16. [mlir] ensureRegionTerminator: take OpBuilder (details)
  17. [OPENMP][DOCS]Update status of implemented features, NFC. (details)
  18. [mlir][Vector] Add option to fully unroll for VectorTransfer to SCF lowering (details)
  19. AMDGPU/GlobalISel: Fix splitting 64-bit extensions (details)
  20. [lldb/Reproducers] Update macosx remote tests for passive replay (details)
  21. [mlir][Linalg] Add producer-consumer fusion when producer is a ConstantOp (details)
  22. [lldb/Reproducers] Support reproducers for PlatformRemoteGDBServer (details)
  23. [X86] Codegen for preallocated (details)
  24. GenericError.h - remove unused StringRef.h include. NFC. (details)
  25. FormatAdapters.h - remove unused SmallString.h include. NFC. (details)
  26. [lldb/Driver] Error out when encountering unknown arguments (details)
  27. [ProfileSummary] Refactor getFromMD to prepare for another optional field. NFC. (details)
  28. [InstCombine] add tests for reassociative fsub/fadd expressions; NFC (details)
  29. [clang][asm goto][slh] Warn if asm goto + SLH (details)
  30. [lldb/Reproducers] Skip another test that uses lldb::FileSP under the hood (details)
  31. Add some dependencies to the compiler-rt symbolizer build (details)
  32. Revert "[X86] Codegen for preallocated" (details)
  33. [lldb/Reproducers] Make SBStream::Print an API instead of a SWIG extension (details)
  34. Reland [X86] Codegen for preallocated (details)
  35. [libcxx] Remove swap for std::span (details)
  36. [llvm] [CodeGen] [X86] Fix issues with v4i1 instruction selection (details)
  37. [libcxx][test] Portability fix for some locale-dependent tests. (details)
  38. [NFC][InstCombine] Negator: tests for extractelement negation (details)
  39. [InstCombine] Negator: `extractelement` is negatible if src is negatible (details)
  40. [NFC][InstCombine] Negator: tests for insertelement negation (details)
  41. [InstCombine] `insertelement` is negatible if both sources are negatible (details)
  42. [mlir][spirv] Adapt subview legalization to the updated op semantics. (details)
  43. [OPENMP]Fix PR45911: Data sharing and lambda capture. (details)
  44. [lldb] Allows customizing libxml2 for darwin (details)
  45. [lldb] Cleans up system_libs (details)
  46. [lldb/Driver] Print snippet before exiting with unknown argument. (details)
  47. [sanitizer_symbolizer] Add __isinf to symbols list. (details)
  48. [lldb/Reproducers] Add instrumentation to SBEnvironment (details)
  49. [clang-format] Set of unit test to begin to validate that we don't change defaults (details)
  50. Give microsoftDemangle() an outparam for how many input bytes were consumed. (details)
  51. [clang-format] Added new option IndentExternBlock (details)
  52. [lit] GoogleTest framework should report failures if test binary crashes (details)
  53. [mlir] NFC - Appease GCC 5 again.. (details)
  54. [lldb/Test] Support arbitrary file extensions in TestPositionalArgs.test (details)
  55. [mlir][gpu] Refactor ConvertGpuLaunchFuncToCudaCalls pass. (details)
  56. [mlir][gpu] Refactor functions for workgroup and private buffer attributions. (details)
  57. [mlir] NFC - Appease GCC 5 again.. (details)
  58. [LegalizeVectorTypes] Create correct memoperands in SplitVecRes_INSERT_SUBVECTOR. (details)
  59. [AMDGPU] Always expand ext/insertelement with divergent idx (details)
  60. [AArch64] Provide Darwin variants of most calling conventions (details)
  61. [analyzer] Fix a null FunctionDecl dereference bug after D75432 (details)
  62. [LLD] Make scoped timers thread safe (details)
  63. [AArch64] Fix GlobalISel tests on non-darwin platforms (details)
  64. Make Value::getPointerAlignment() return an Align, not a MaybeAlign. (details)
  65. [AArch64] Fix unwind info generated by outliner. (details)
  66. [analyzer] Make buildbots happy (details)
  67. [clang-format][docfix] Update predefined styles in docs (details)
  68. Add CanonicalizeFreezeInLoops pass (details)
  69. [gn build] Port d9a4a244138 (details)
  70. add a test for D77524 (details)
Commit dd60ad0b79e0f35a9c670bfa14846de577c1230c by llvm-dev
PseudoSourceValue.h - reduce GlobalValue.h include to forward declaration. NFC.

Exposes an implicit dependency on Type.h in MachineMemOperand.h
The file was modifiedllvm/include/llvm/CodeGen/MachineMemOperand.h
The file was modifiedllvm/include/llvm/CodeGen/PseudoSourceValue.h
Commit 219f8d6c9f5104d4df6a2dff81c6827d4bbae1c8 by llvm-dev
GenericDomTreeConstruction.h - reorder includes. NFC.
The file was modifiedllvm/include/llvm/Support/GenericDomTreeConstruction.h
Commit eab4a199d16851fd8ad8308364d7b1b87bdbb430 by zinenko
[mlir] NFC: rename tests related to SCF dialect from Loops to SCF

The dialect and conversions from/to it were renamed in previous commits.

Differential Revision: https://reviews.llvm.org/D80216
The file was removedmlir/test/Conversion/LoopsToGPU/linalg_to_gpu.mlir
The file was removedmlir/test/Conversion/LoopsToGPU/perfect_1D_setlaunch.mlir
The file was removedmlir/test/Conversion/LoopsToGPU/imperfect_3D.mlir
The file was removedmlir/test/Conversion/LoopsToGPU/no_blocks_no_threads.mlir
The file was addedmlir/test/Conversion/SCFToGPU/linalg_to_gpu.mlir
The file was addedmlir/test/Conversion/SCFToGPU/parallel_loop.mlir
The file was addedmlir/test/Conversion/SCFToGPU/step_positive.mlir
The file was removedmlir/test/Conversion/LoopsToGPU/step_one.mlir
The file was removedmlir/test/Conversion/VectorToLoops/vector-to-loops.mlir
The file was addedmlir/test/Conversion/SCFToGPU/imperfect_4D.mlir
The file was addedmlir/test/Conversion/SCFToGPU/perfect_1D_setlaunch.mlir
The file was addedmlir/test/Conversion/SCFToGPU/imperfect_linalg.mlir
The file was addedmlir/test/Conversion/SCFToGPU/step_one.mlir
The file was addedmlir/test/Conversion/VectorToSCF/vector-to-loops.mlir
The file was removedmlir/test/Conversion/LoopsToGPU/imperfect_2D.mlir
The file was removedmlir/test/Conversion/convert-to-cfg.mlir
The file was addedmlir/test/Conversion/SCFToGPU/no_blocks_no_threads.mlir
The file was removedmlir/test/Conversion/LoopsToGPU/parallel_loop.mlir
The file was removedmlir/test/Conversion/LoopsToGPU/step_positive.mlir
The file was removedmlir/test/Conversion/LoopsToGPU/imperfect_4D.mlir
The file was addedmlir/test/Conversion/SCFToGPU/imperfect_2D.mlir
The file was addedmlir/test/Conversion/SCFToStandard/convert-to-cfg.mlir
The file was addedmlir/test/Conversion/SCFToGPU/imperfect_3D.mlir
The file was removedmlir/test/Conversion/LoopsToGPU/imperfect_linalg.mlir
Commit 827be690dce158924924a70fda79b35a9d7ad1cc by melanie.blower
[clang] FastMathFlags.allowContract should be initialized only from FPFeatures.allowFPContractAcrossStatement

Summary: Fix bug introduced in D72841 adding support for pragma float_control

Reviewers: rjmccall, Anastasia

Differential Revision: https://reviews.llvm.org/D79903
The file was modifiedclang/test/CodeGen/fp-floatcontrol-class.cpp
The file was modifiedclang/test/CodeGenOpenCL/single-precision-constant.cl
The file was modifiedclang/test/CodeGen/fp-floatcontrol-stack.cpp
The file was modifiedclang/test/CodeGen/fp-contract-on-pragma.cpp
The file was modifiedclang/test/CodeGen/fp-floatcontrol-pragma.cpp
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/lib/CodeGen/CGExprScalar.cpp
The file was modifiedclang/test/CodeGen/fp-contract-pragma.cpp
The file was modifiedclang/test/CodeGenOpenCL/relaxed-fpmath.cl
The file was modifiedclang/test/CodeGen/constrained-math-builtins.c
Commit aa04ce761793bfff6de398091125823476a6e924 by Raphael Isemann
[lldb][NFC] Minor NamespaceMap refactor
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTImporter.h
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
Commit 3c843538048e6439426a555698917051c1f3f3e1 by jay.foad
[AMDGPU] Add the test from D49097.
The file was addedllvm/test/CodeGen/AMDGPU/coalescing-subreg-was-undef-but-became-def.mir
Commit cb51c0549e0c14ec73a5e174b705d812b6ea0de6 by llvm-dev
DIPrinter.h - reduce unnecessary includes to forward declarations. NFC.
The file was modifiedllvm/include/llvm/DebugInfo/Symbolize/DIPrinter.h
Commit f0daf240c153022dae25e0da2903593484f344be by llvm-dev
MachineMemOperand.h - replace Type.h with full GlobalValue.h include to fix -Wundefined-inline warnings.
The file was modifiedllvm/include/llvm/CodeGen/MachineMemOperand.h
Commit 004a3d4f56c26a30d2a65818e2bfc03b74ec8123 by ntv
[mlir][Linalg] Refactor linalg tiling

Summary:
This revision refactors the Linalg tiling pass to be written as pattern applications and retires the use of the folder in Linalg tiling.
In the early days, tiling was written as a pass that would create (partially) folded and canonicalized operations on the fly for better composability.
As this evolves towards composition of patterns, the pass-specific folder is counter-productive and is retired.
The tiling options struct evolves to take a tile size creation function which allows materializing tile sizes on the fly (in particular constant tile sizes). This plays better with folding and DCE.

With the folder going away in Tiling, the check on whether subviews are the same in linalg fusion needs to be more robust. This revision also implements such a check.

In the current form, there are still some canonicalizations missing due to  AffineMin/Max ops fed by scf::ForOp. These will be improved at a later time.

Differential Revision: https://reviews.llvm.org/D80267
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
The file was modifiedmlir/test/Dialect/Linalg/tile_conv.mlir
The file was modifiedmlir/test/Dialect/Linalg/tile_parallel.mlir
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
The file was modifiedmlir/test/Dialect/Linalg/tile_conv_padding.mlir
The file was modifiedmlir/lib/Dialect/Linalg/EDSC/Builders.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
The file was modifiedmlir/test/Dialect/Linalg/tile.mlir
The file was modifiedmlir/test/lib/Transforms/TestLinalgTransforms.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/EDSC/Builders.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
The file was modifiedmlir/test/Dialect/Linalg/tile_indexed_generic.mlir
Commit 19e5b2bccb4c93f85ca098528f9fa42344e8312f by ntv
[mlir][Linalg] NFC - Simplify GenericNestLoop builder

Summary: This revision trims unnecessary complexity.

Differential Revision: https://reviews.llvm.org/D80290
The file was modifiedmlir/include/mlir/Dialect/Linalg/EDSC/Builders.h
The file was modifiedmlir/lib/Dialect/Linalg/EDSC/Builders.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Loops.cpp
The file was modifiedmlir/lib/Dialect/SCF/EDSC/Builders.cpp
The file was modifiedmlir/include/mlir/Dialect/SCF/EDSC/Builders.h
Commit a655144f57f8b6a9d5f4ab42b425b1f284353487 by zinenko
[mlir] Toy tutorial: insert terminators at the end of the loop during rewrite

When creating temporary `scf.for` loops in `toy.print` lowering, the block
insertion point was erronously set up to the beginning of the block rather than
to its end, contradicting the comment just above the insertion point change.
The code was nevertheless operational because `scf.for` was setting up its
`scf.yield` terminator in an opaque to the pattern rewriting infrastructure
way. Now that it is about to change, the problem would have been exposed and
lead to conversion failures.

Differential Revision: https://reviews.llvm.org/D80133
The file was modifiedmlir/examples/toy/Ch6/mlir/LowerToLLVM.cpp
The file was modifiedmlir/examples/toy/Ch7/mlir/LowerToLLVM.cpp
Commit 5d5df06aac58cfa83ae3d22d01cfc1b25b7a656c by zinenko
[mlir] DialectConversion: avoid double-free when rolling back op creation

Dialect conversion infrastructure may roll back op creation by erasing the
operations in the reverse order of their creation. While this guarantees uses
of values will be deleted before their definitions, this does not guarantee
that a parent operation will not be deleted before its child. (This may happen
in case of block inlining or if child operations, such as terminators, are
created in the parent's `build` function before the parent itself.) Handle the
parent/child relationship between ops by removing all child ops from the blocks
before erasing the parent. The child ops remain live, detached from a block,
and will be safely destroyed in their turn, which may come later than that of
the parent.

Differential Revision: https://reviews.llvm.org/D80134
The file was modifiedmlir/lib/Transforms/DialectConversion.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was modifiedmlir/test/Transforms/test-legalizer.mlir
The file was modifiedmlir/test/lib/Dialect/Test/TestPatterns.cpp
Commit df48026b4c30d88cc1221883631ac8aa7c4c376b by zinenko
[mlir] DialectConversion: support erasing blocks

PatternRewriter has support for erasing a Block from its parent region, but
this feature has not been implemented for ConversionPatternRewriter that needs
to keep track of and be able to undo block actions. Introduce support for
undoing block erasure in the ConversionPatternRewriter by marking all the ops
it contains for erasure and by detaching the block from its parent region. The
detached block is stored in the action description and is not actually deleted
until the rewrites are applied.

Differential Revision: https://reviews.llvm.org/D80135
The file was modifiedmlir/lib/Transforms/DialectConversion.cpp
The file was modifiedmlir/test/Transforms/test-legalizer.mlir
The file was modifiedmlir/test/lib/Dialect/Test/TestPatterns.cpp
Commit 57cbeaa8b5de01cf72e739df467fb47f3867e1af by zinenko
[mlir] Erase or clear blocks through ConversionPatternRewriter when applicable

Multiple places in the code base were erasing Blocks or operations in them
using in-place modifications (`Block::erase` or `Block::clear`) unknown to
ConversionPatternRewriter. These operations could not be undone if the pattern
failed and could lead to inconsistent in-memory state of the IR with dangling
pointers. Use `ConversionPatternRewriter::eraseOp` and `::eraseBlock` instead.

Differential Revision: https://reviews.llvm.org/D80136
The file was modifiedmlir/examples/toy/Ch5/mlir/LowerToAffineLoops.cpp
The file was modifiedmlir/examples/toy/Ch6/mlir/LowerToLLVM.cpp
The file was modifiedmlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRV.cpp
The file was modifiedmlir/examples/toy/Ch7/mlir/LowerToAffineLoops.cpp
The file was modifiedmlir/examples/toy/Ch6/mlir/LowerToAffineLoops.cpp
The file was modifiedmlir/lib/Conversion/AffineToStandard/AffineToStandard.cpp
The file was modifiedmlir/examples/toy/Ch7/mlir/LowerToLLVM.cpp
Commit a7d88a90386d6c4b456a68710ea48069b5d3a0bb by zinenko
[mlir] SCFToStandard: support any ops in and around the control flow ops

Originally, the SCFToStandard conversion only declared Ops from the Standard
dialect as legal after conversion. This is undesirable as it would fail the
conversion if the SCF ops contained ops from any other dialect. Furthermore,
this would be problematic for progressive lowering of `scf.parallel` to
`scf.for` after `ensureRegionTerminator` is made aware of the pattern rewriting
infrastructure because it creates temporary `scf.yield` operations declared
illegal. Change the legalization target to declare any op other than `scf.for`,
`scf.if` and `scf.parallel` legal.

Differential Revision: https://reviews.llvm.org/D80137
The file was modifiedmlir/lib/Conversion/SCFToStandard/SCFToStandard.cpp
The file was modifiedmlir/test/Conversion/SCFToStandard/convert-to-cfg.mlir
Commit 3ccf4a5bd1099bfba544bec7ddbe610cc9531bb2 by zinenko
[mlir] ensureRegionTerminator: take OpBuilder

The SingleBlockImplicitTerminator op trait provides a function
`ensureRegionTerminator` that injects an appropriate terminator into the block
if necessary, which is used during operation constructing and parsing.
Currently, this function directly modifies the IR using low-level APIs on
Operation and Block. If this function is called from a conversion pattern,
these manipulations are not reflected in the ConversionPatternRewriter and thus
cannot be undone or, worse, lead to tricky memory errors and malformed IR.
Change `ensureRegionTerminator` to take an instance of `OpBuilder` instead of
`Builder`, and use it to construct the block and the terminator when required.
Maintain overloads taking an instance of `Builder` and creating a simple
`OpBuilder` to use in parsers, which don't have an `OpBuilder` and cannot
interact with the dialect conversion mechanism. This change was one of the
reasons to make `<OpTy>::build` accept an `OpBuilder`.

Differential Revision: https://reviews.llvm.org/D80138
The file was modifiedmlir/lib/IR/Operation.cpp
The file was modifiedmlir/include/mlir/IR/OpDefinition.h
Commit c8a869c5e025dcee3bd7393b14a0d55c1ee326e5 by a.bataev
[OPENMP][DOCS]Update status of implemented features, NFC.
The file was modifiedclang/docs/OpenMPSupport.rst
Commit 7c3c5b11b1fa285443573e6e8ecc2383fcda6554 by ntv
[mlir][Vector] Add option to fully unroll for VectorTransfer to SCF lowering

Summary:
Previously, the only support partial lowering from vector transfers to SCF was
going through loops. This requires a dedicated allocation and extra memory
roundtrips because LLVM aggregates cannot be indexed dynamically (for more
details see the [deep-dive](https://mlir.llvm.org/docs/Dialects/Vector/#deeperdive)).

This revision allows specifying full unrolling which removes this additional roundtrip.
This should be used carefully though because full unrolling will spill, negating the
benefits of removing the interim alloc in the first place.

Proper heuristics are left for a later time.

Differential Revision: https://reviews.llvm.org/D80100
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp
The file was modifiedmlir/lib/Dialect/Vector/VectorUtils.cpp
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.td
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
The file was modifiedmlir/lib/Dialect/Vector/VectorOps.cpp
The file was modifiedmlir/test/lib/Transforms/TestVectorToSCFConversion.cpp
The file was modifiedmlir/test/Conversion/VectorToSCF/vector-to-loops.mlir
The file was modifiedmlir/include/mlir/Conversion/VectorToSCF/VectorToSCF.h
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorUtils.h
Commit e8f6b0e583cbf97a08c26b2219faaa5e433a67ab by Matthew.Arsenault
AMDGPU/GlobalISel: Fix splitting 64-bit extensions

This was replicating the low bits into the high bits for G_ZEXT,
rather than using 0.
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-anyext.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-zext.mir
Commit 667be3319d9eff4fbcf1cb1714a1205e84c9b848 by Jonas Devlieghere
[lldb/Reproducers] Update macosx remote tests for passive replay

Skip tests or part thereof that are not supposed to work with replay.
The file was modifiedlldb/test/API/macosx/function-starts/TestFunctionStarts.py
The file was modifiedlldb/test/API/macosx/thread-names/TestInterruptThreadNames.py
The file was modifiedlldb/test/API/macosx/profile_vrs_detach/TestDetachVrsProfile.py
The file was modifiedlldb/test/API/macosx/dyld-trie-symbols/TestDyldTrieSymbols.py
Commit 071358e08224b9971f6b7fc49a5e014a5662187c by ravishankarm
[mlir][Linalg] Add producer-consumer fusion when producer is a ConstantOp
and Consumer is a GenericOp.

Differential Revision: https://reviews.llvm.org/D79838
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
The file was modifiedmlir/test/Dialect/Linalg/fusion-tensor.mlir
Commit d57b80e13ebd140f0b9acefa02423e1bc4a835d4 by Jonas Devlieghere
[lldb/Reproducers] Support reproducers for PlatformRemoteGDBServer

Add reproducer support to PlatformRemoteGDBServer. The logic is
essentially the same as for ProcessGDBRemote. During capture we record
the GDB packets and during replay we connect to a replay server.

This fixes TestPlatformClient.py when run form a reproducer.

Differential Revision: https://reviews.llvm.org/D80224
The file was modifiedlldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp
The file was modifiedlldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h
Commit 810567dc691a57c8c13fef06368d7549f7d9c064 by aeubanks
[X86] Codegen for preallocated

See https://reviews.llvm.org/D74651 for the preallocated IR constructs
and LangRef changes.

In X86TargetLowering::LowerCall(), if a call is preallocated, record
each argument's offset from the stack pointer and the total stack
adjustment. Associate the call Value with an integer index. Store the
info in X86MachineFunctionInfo with the integer index as the key.

This adds two new target independent ISDOpcodes and two new target
dependent Opcodes corresponding to @llvm.call.preallocated.{setup,arg}.

The setup ISelDAG node takes in a chain and outputs a chain and a
SrcValue of the preallocated call Value. It is lowered to a target
dependent node with the SrcValue replaced with the integer index key by
looking in X86MachineFunctionInfo. In
X86TargetLowering::EmitInstrWithCustomInserter() this is lowered to an
%esp adjustment, the exact amount determined by looking in
X86MachineFunctionInfo with the integer index key.

The arg ISelDAG node takes in a chain, a SrcValue of the preallocated
call Value, and the arg index int constant. It produces a chain and the
pointer fo the arg. It is lowered to a target dependent node with the
SrcValue replaced with the integer index key by looking in
X86MachineFunctionInfo. In
X86TargetLowering::EmitInstrWithCustomInserter() this is lowered to a
lea of the stack pointer plus an offset determined by looking in
X86MachineFunctionInfo with the integer index key.

Force any function containing a preallocated call to use the frame
pointer.

Does not yet handle a setup without a call, or a conditional call.
Does not yet handle musttail. That requires a LangRef change first.

Tried to look at all references to inalloca and see if they apply to
preallocated. I've made preallocated versions of tests testing inalloca
whenever possible and when they make sense (e.g. not alloca related,
inalloca edge cases).

Aside from the tests added here, I checked that this codegen produces
correct code for something like

```
struct A {
        A();
        A(A&&);
        ~A();
};

void bar() {
        foo(foo(foo(foo(foo(A(), 4), 5), 6), 7), 8);
}
```

by replacing the inalloca version of the .ll file with the appropriate
preallocated code. Running the executable produces the same results as
using the current inalloca implementation.

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77689
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
The file was modifiedllvm/lib/Target/X86/X86CallingConv.td
The file was modifiedllvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
The file was modifiedllvm/test/CodeGen/X86/shrink-wrap-chkstk.ll
The file was modifiedllvm/lib/Transforms/Coroutines/CoroSplit.cpp
The file was modifiedllvm/test/CodeGen/X86/tail-call-mutable-memarg.ll
The file was modifiedllvm/lib/Target/X86/X86FastISel.cpp
The file was modifiedllvm/test/CodeGen/X86/musttail-indirect.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify.ll
The file was modifiedllvm/lib/Transforms/IPO/GlobalOpt.cpp
The file was modifiedllvm/test/CodeGen/X86/musttail-thiscall.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple-todo.ll
The file was modifiedllvm/lib/IR/Function.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedllvm/lib/Target/X86/X86RegisterInfo.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FastISel.cpp
The file was modifiedllvm/include/llvm/Target/TargetCallingConv.td
The file was modifiedllvm/lib/Target/X86/X86FrameLowering.cpp
The file was addedllvm/test/CodeGen/X86/preallocated.ll
The file was modifiedllvm/include/llvm/CodeGen/TargetCallingConv.h
The file was modifiedllvm/test/Transforms/GlobalOpt/fastcc.ll
The file was modifiedllvm/include/llvm/CodeGen/ISDOpcodes.h
The file was modifiedllvm/include/llvm/IR/InstrTypes.h
The file was modifiedllvm/lib/IR/Attributes.cpp
The file was modifiedllvm/lib/Transforms/IPO/FunctionAttrs.cpp
The file was addedllvm/test/CodeGen/X86/preallocated-x64.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/readattrs.ll
The file was modifiedllvm/include/llvm/Target/Target.td
The file was addedllvm/test/Transforms/InstCombine/call-cast-target-preallocated.ll
The file was modifiedllvm/test/CodeGen/X86/arg-copy-elide.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/include/llvm/IR/Argument.h
The file was modifiedllvm/lib/Target/X86/X86ISelDAGToDAG.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/CallLowering.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/lib/Target/X86/X86MachineFunctionInfo.h
The file was addedllvm/test/CodeGen/X86/preallocated-nocall.ll
The file was modifiedllvm/test/Transforms/DeadArgElim/keepalive.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/test/Transforms/DeadStoreElimination/simple.ll
The file was modifiedllvm/include/llvm/IR/Attributes.h
The file was modifiedllvm/include/llvm/Support/TargetOpcodes.def
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 30d5e53077c689e7361b72b20e918b4a7c258eaa by llvm-dev
GenericError.h - remove unused StringRef.h include. NFC.
The file was modifiedllvm/include/llvm/DebugInfo/PDB/GenericError.h
Commit c14699570d3b220a46316ec1ceeec33100e0f9b9 by llvm-dev
FormatAdapters.h - remove unused SmallString.h include. NFC.
The file was modifiedllvm/include/llvm/Support/FormatAdapters.h
Commit 5b5b81bcdccb43164e86cfc6a0ac966afc3a143c by Jonas Devlieghere
[lldb/Driver] Error out when encountering unknown arguments

There appears to be consensus in D80165 that this is the desired
behavior and I personally agree.

Differential revision: https://reviews.llvm.org/D80226
The file was modifiedlldb/test/Shell/Driver/TestPositionalArgs.test
The file was modifiedlldb/tools/driver/Driver.cpp
Commit f9a6163f64726df458df522eb2ab4d140fe6ae2e by yamauchi
[ProfileSummary] Refactor getFromMD to prepare for another optional field. NFC.

Summary:
Rename 'i' to 'I'.
Factor out the optional field handling to getOptionalVal().
Split out of D79951.

Reviewers: davidxl

Subscribers: eraman, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D80230
The file was modifiedllvm/lib/IR/ProfileSummary.cpp
Commit ad953a1ae156eda3740a99a3c874eda3f29f4eb2 by spatel
[InstCombine] add tests for reassociative fsub/fadd expressions; NFC
The file was modifiedllvm/test/Transforms/InstCombine/fsub.ll
Commit 60ee885990982197013c71ff965a81e938184fd2 by zbrid
[clang][asm goto][slh] Warn if asm goto + SLH

Summary:
Asm goto is not supported by SLH. Warn if an instance of asm goto is detected
while SLH is enabled.

Test included.

Reviewed By: jyu2

Differential Revision: https://reviews.llvm.org/D79743
The file was modifiedclang/include/clang/Basic/DiagnosticCommonKinds.td
The file was addedclang/test/Parser/slh-asm-goto-no-warn.cpp
The file was addedclang/test/Parser/slh-asm-goto.cpp
The file was modifiedclang/lib/Parse/ParseStmtAsm.cpp
Commit 4b17702434af9631e5e5a16449a93c9734be0c7e by Jonas Devlieghere
[lldb/Reproducers] Skip another test that uses lldb::FileSP under the hood
The file was modifiedlldb/test/API/python_api/default-constructor/TestDefaultConstructorForAPIObjects.py
Commit b11c2e2feb51e6cd5ab34d4e384a025fc396b1c0 by akhuang
Add some dependencies to the compiler-rt symbolizer build
The file was modifiedcompiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh
Commit b8cbff51d39b1f96d827adac569b8a64200ea7bb by aeubanks
Revert "[X86] Codegen for preallocated"

This reverts commit 810567dc691a57c8c13fef06368d7549f7d9c064.

Some tests are unexpectedly passing
The file was modifiedllvm/test/Transforms/GlobalOpt/fastcc.ll
The file was removedllvm/test/Transforms/InstCombine/call-cast-target-preallocated.ll
The file was modifiedllvm/lib/IR/Attributes.cpp
The file was modifiedllvm/test/Transforms/FunctionAttrs/readattrs.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple-todo.ll
The file was modifiedllvm/lib/Target/X86/X86FastISel.cpp
The file was removedllvm/test/CodeGen/X86/preallocated-nocall.ll
The file was modifiedllvm/lib/Transforms/IPO/GlobalOpt.cpp
The file was modifiedllvm/test/CodeGen/X86/musttail-indirect.ll
The file was modifiedllvm/include/llvm/IR/Argument.h
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/test/Transforms/DeadArgElim/keepalive.ll
The file was modifiedllvm/include/llvm/IR/Attributes.h
The file was modifiedllvm/lib/Transforms/Coroutines/CoroSplit.cpp
The file was modifiedllvm/test/Transforms/DeadStoreElimination/simple.ll
The file was modifiedllvm/include/llvm/CodeGen/TargetCallingConv.h
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was removedllvm/test/CodeGen/X86/preallocated-x64.ll
The file was modifiedllvm/test/CodeGen/X86/shrink-wrap-chkstk.ll
The file was modifiedllvm/lib/CodeGen/GlobalISel/CallLowering.cpp
The file was modifiedllvm/lib/Target/X86/X86FrameLowering.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/lib/Transforms/IPO/FunctionAttrs.cpp
The file was modifiedllvm/lib/Target/X86/X86MachineFunctionInfo.h
The file was modifiedllvm/test/Transforms/Attributor/value-simplify.ll
The file was modifiedllvm/lib/Target/X86/X86ISelDAGToDAG.cpp
The file was modifiedllvm/test/CodeGen/X86/musttail-thiscall.ll
The file was modifiedllvm/include/llvm/CodeGen/ISDOpcodes.h
The file was modifiedllvm/test/CodeGen/X86/arg-copy-elide.ll
The file was removedllvm/test/CodeGen/X86/preallocated.ll
The file was modifiedllvm/include/llvm/Target/TargetCallingConv.td
The file was modifiedllvm/include/llvm/IR/InstrTypes.h
The file was modifiedllvm/lib/IR/Function.cpp
The file was modifiedllvm/lib/Target/X86/X86RegisterInfo.cpp
The file was modifiedllvm/include/llvm/Support/TargetOpcodes.def
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/include/llvm/Target/Target.td
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FastISel.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
The file was modifiedllvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
The file was modifiedllvm/test/CodeGen/X86/tail-call-mutable-memarg.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/lib/Target/X86/X86CallingConv.td
Commit bfb278372633c50ae595f0b89241a143090c967e by Jonas Devlieghere
[lldb/Reproducers] Make SBStream::Print an API instead of a SWIG extension

This makes it possible to instrument the call for the reproducers. This
fixes TestStructuredDataAPI.py with reproducer replay.

Differential revision: https://reviews.llvm.org/D80312
The file was modifiedlldb/source/API/SBStream.cpp
The file was modifiedlldb/include/lldb/API/SBStream.h
The file was modifiedlldb/bindings/interface/SBStream.i
Commit 8a88755610d0f7ae630b5e6124cc0579cb1c32c8 by aeubanks
Reland [X86] Codegen for preallocated

See https://reviews.llvm.org/D74651 for the preallocated IR constructs
and LangRef changes.

In X86TargetLowering::LowerCall(), if a call is preallocated, record
each argument's offset from the stack pointer and the total stack
adjustment. Associate the call Value with an integer index. Store the
info in X86MachineFunctionInfo with the integer index as the key.

This adds two new target independent ISDOpcodes and two new target
dependent Opcodes corresponding to @llvm.call.preallocated.{setup,arg}.

The setup ISelDAG node takes in a chain and outputs a chain and a
SrcValue of the preallocated call Value. It is lowered to a target
dependent node with the SrcValue replaced with the integer index key by
looking in X86MachineFunctionInfo. In
X86TargetLowering::EmitInstrWithCustomInserter() this is lowered to an
%esp adjustment, the exact amount determined by looking in
X86MachineFunctionInfo with the integer index key.

The arg ISelDAG node takes in a chain, a SrcValue of the preallocated
call Value, and the arg index int constant. It produces a chain and the
pointer fo the arg. It is lowered to a target dependent node with the
SrcValue replaced with the integer index key by looking in
X86MachineFunctionInfo. In
X86TargetLowering::EmitInstrWithCustomInserter() this is lowered to a
lea of the stack pointer plus an offset determined by looking in
X86MachineFunctionInfo with the integer index key.

Force any function containing a preallocated call to use the frame
pointer.

Does not yet handle a setup without a call, or a conditional call.
Does not yet handle musttail. That requires a LangRef change first.

Tried to look at all references to inalloca and see if they apply to
preallocated. I've made preallocated versions of tests testing inalloca
whenever possible and when they make sense (e.g. not alloca related,
inalloca edge cases).

Aside from the tests added here, I checked that this codegen produces
correct code for something like

```
struct A {
        A();
        A(A&&);
        ~A();
};

void bar() {
        foo(foo(foo(foo(foo(A(), 4), 5), 6), 7), 8);
}
```

by replacing the inalloca version of the .ll file with the appropriate
preallocated code. Running the executable produces the same results as
using the current inalloca implementation.

Reverted due to unexpectedly passing tests, added REQUIRES: asserts for reland.

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77689
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/include/llvm/Support/TargetOpcodes.def
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FastISel.cpp
The file was modifiedllvm/lib/Target/X86/X86MachineFunctionInfo.h
The file was modifiedllvm/test/Transforms/DeadArgElim/keepalive.ll
The file was modifiedllvm/lib/IR/Attributes.cpp
The file was addedllvm/test/CodeGen/X86/preallocated.ll
The file was modifiedllvm/include/llvm/CodeGen/ISDOpcodes.h
The file was modifiedllvm/include/llvm/Target/Target.td
The file was modifiedllvm/test/CodeGen/X86/shrink-wrap-chkstk.ll
The file was modifiedllvm/test/CodeGen/X86/musttail-thiscall.ll
The file was modifiedllvm/test/CodeGen/X86/musttail-indirect.ll
The file was modifiedllvm/include/llvm/IR/Argument.h
The file was modifiedllvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was addedllvm/test/CodeGen/X86/preallocated-nocall.ll
The file was modifiedllvm/lib/IR/Function.cpp
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/test/Transforms/FunctionAttrs/readattrs.ll
The file was modifiedllvm/lib/Target/X86/X86FastISel.cpp
The file was addedllvm/test/CodeGen/X86/preallocated-x64.ll
The file was modifiedllvm/lib/Transforms/IPO/FunctionAttrs.cpp
The file was modifiedllvm/test/CodeGen/X86/tail-call-mutable-memarg.ll
The file was addedllvm/test/Transforms/InstCombine/call-cast-target-preallocated.ll
The file was modifiedllvm/include/llvm/Target/TargetCallingConv.td
The file was modifiedllvm/lib/Target/X86/X86ISelDAGToDAG.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/lib/Target/X86/X86RegisterInfo.cpp
The file was modifiedllvm/include/llvm/IR/Attributes.h
The file was modifiedllvm/lib/CodeGen/GlobalISel/CallLowering.cpp
The file was modifiedllvm/test/Transforms/DeadStoreElimination/simple.ll
The file was modifiedllvm/test/Transforms/GlobalOpt/fastcc.ll
The file was modifiedllvm/lib/Target/X86/X86FrameLowering.cpp
The file was modifiedllvm/test/Transforms/Attributor/value-simplify.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple-todo.ll
The file was modifiedllvm/lib/Transforms/IPO/GlobalOpt.cpp
The file was modifiedllvm/include/llvm/IR/InstrTypes.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/include/llvm/CodeGen/TargetCallingConv.h
The file was modifiedllvm/lib/Transforms/Coroutines/CoroSplit.cpp
The file was modifiedllvm/test/CodeGen/X86/arg-copy-elide.ll
The file was modifiedllvm/lib/Target/X86/X86CallingConv.td
Commit 416b1560c597455dfae9e58d2a249d4061d729bf by Louis Dionne
[libcxx] Remove swap for std::span

This change removes both the member function swap and the free function
overload of swap for std::span. While swap is a member and overloaded
for every other container in the standard library [1], it is neither a
member function nor a free function overload for std::span [2].
Thus the corresponding implementation should be removed.

[1] https://eel.is/c++draft/libraryindex#:swap
[2] https://eel.is/c++draft/span.overview

Differential Revision: https://reviews.llvm.org/D69827
The file was modifiedlibcxx/include/span
Commit 645bba8d3d776841c3eda4b31dd9a908f1140bba by ajcbik
[llvm] [CodeGen] [X86] Fix issues with v4i1 instruction selection

Summary:
Fixes issue
https://bugs.llvm.org/show_bug.cgi?id=45995

Reviewers: mehdi_amini, nicolasvasilache, reidtatge, craig.topper, ftynse, bkramer

Reviewed By: craig.topper

Subscribers: RKSimon, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D80231
The file was addedllvm/test/CodeGen/X86/pr45995-2.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was addedllvm/test/CodeGen/X86/pr45995.ll
Commit 9f19cc8cac893a887e1952ce764bb6b09a6785df by Louis Dionne
[libcxx][test] Portability fix for some locale-dependent tests.

Tests for `std::system_error` constructor marked as slightly non-portable.
One (but not the only one) reason for such non-portability is that these
tests assume the default locale to be set to "C" (or "POSIX").

However, the default locale for the process depends on OS and
environment. This patch adds explicit setting of the correct
locale expected by the tests.

Thanks to Andrey Maksimov for the patch.

Differential Revision: https://reviews.llvm.org/D72456
The file was modifiedlibcxx/test/std/diagnostics/syserr/syserr.syserr/syserr.syserr.members/ctor_int_error_category_const_char_pointer.pass.cpp
The file was modifiedlibcxx/test/std/diagnostics/syserr/syserr.syserr/syserr.syserr.members/ctor_int_error_category.pass.cpp
The file was modifiedlibcxx/test/std/diagnostics/syserr/syserr.syserr/syserr.syserr.members/ctor_error_code_const_char_pointer.pass.cpp
The file was modifiedlibcxx/test/std/diagnostics/syserr/syserr.syserr/syserr.syserr.members/ctor_error_code.pass.cpp
The file was modifiedlibcxx/test/std/diagnostics/syserr/syserr.syserr/syserr.syserr.members/ctor_error_code_string.pass.cpp
The file was modifiedlibcxx/test/std/diagnostics/syserr/syserr.syserr/syserr.syserr.members/ctor_int_error_category_string.pass.cpp
Commit 952e7106b34097ba447326a58e51778af25f070f by lebedev.ri
[NFC][InstCombine] Negator: tests for extractelement negation
The file was modifiedllvm/test/Transforms/InstCombine/sub-of-negatible.ll
Commit ebed96fdbf26c081ecbff990fc7f5ae35e9ad2c7 by lebedev.ri
[InstCombine] Negator: `extractelement` is negatible if src is negatible

----------------------------------------
define i4 @negate_extractelement(<2 x i4> %x, i32 %y, i4 %z) {
%0:
  %t0 = sub <2 x i4> { 0, 0 }, %x
  call void @use_v2i4(<2 x i4> %t0)
  %t1 = extractelement <2 x i4> %t0, i32 %y
  %t2 = sub i4 %z, %t1
  ret i4 %t2
}
=>
define i4 @negate_extractelement(<2 x i4> %x, i32 %y, i4 %z) {
%0:
  %t0 = sub <2 x i4> { 0, 0 }, %x
  call void @use_v2i4(<2 x i4> %t0)
  %t1.neg = extractelement <2 x i4> %x, i32 %y
  %t2 = add i4 %t1.neg, %z
  ret i4 %t2
}
Transformation seems to be correct!
The file was modifiedllvm/test/Transforms/InstCombine/sub-of-negatible.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineNegator.cpp
Commit a6097cebe9cd0887478cb81f9b09f1c48ae13b4f by lebedev.ri
[NFC][InstCombine] Negator: tests for insertelement negation
The file was modifiedllvm/test/Transforms/InstCombine/sub-of-negatible.ll
Commit 55430f53f397e942b91d8379b5dbae5d2c852986 by lebedev.ri
[InstCombine] `insertelement` is negatible if both sources are negatible

----------------------------------------
define <2 x i4> @negate_insertelement(<2 x i4> %src, i4 %a, i32 %x, <2 x i4> %b) {
%0:
  %t0 = sub <2 x i4> { 0, 0 }, %src
  %t1 = sub i4 0, %a
  %t2 = insertelement <2 x i4> %t0, i4 %t1, i32 %x
  %t3 = sub <2 x i4> %b, %t2
  ret <2 x i4> %t3
}
=>
define <2 x i4> @negate_insertelement(<2 x i4> %src, i4 %a, i32 %x, <2 x i4> %b) {
%0:
  %t2.neg = insertelement <2 x i4> %src, i4 %a, i32 %x
  %t3 = add <2 x i4> %t2.neg, %b
  ret <2 x i4> %t3
}
Transformation seems to be correct!
The file was modifiedllvm/test/Transforms/InstCombine/sub-of-negatible.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineNegator.cpp
Commit 0e88eb5c514ab59d63c7503b6055a2ced62a870b by ravishankarm
[mlir][spirv] Adapt subview legalization to the updated op semantics.

The subview semantics changes recently to allow for more natural
representation of constant offsets and strides. The legalization of
subview op for lowering to SPIR-V needs to account for this.
Also change the linearization to use the strides from the affine map
of a memref.

Differential Revision: https://reviews.llvm.org/D80270
The file was modifiedmlir/test/Conversion/StandardToSPIRV/subview-to-spirv.mlir
The file was modifiedmlir/lib/Conversion/StandardToSPIRV/LegalizeStandardForSPIRV.cpp
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
The file was modifiedmlir/test/Conversion/GPUToSPIRV/load-store.mlir
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
The file was modifiedmlir/test/Conversion/GPUToSPIRV/loop.mlir
Commit 414afdf940e8473db4156d0c1bc500ec527f1a1f by a.bataev
[OPENMP]Fix PR45911: Data sharing and lambda capture.

Summary:
No need to generate inlined OpenMP region for variables captured in
lambdas or block decls, only for implicitly captured variables in the
OpenMP region.

Reviewers: jdoerfert

Subscribers: yaxunl, guansong, cfe-commits, caomhin

Tags: #clang

Differential Revision: https://reviews.llvm.org/D79966
The file was modifiedclang/test/OpenMP/task_firstprivate_codegen.cpp
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.cpp
Commit 780d7d77327c3537cc2c2aa9314aa2ad92cfe070 by hhb
[lldb] Allows customizing libxml2 for darwin

Summary:
This changes allows to disable or use customized libxml2 for lldb.

1. Removes redundant include_directories. The one in LLDBConfig.cmake should be enough.

2. Link to ${LIBXML2_LIBRARIES} if xml2 is enabled.

Subscribers: mgorny, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D80257
The file was modifiedlldb/source/Plugins/Process/gdb-remote/CMakeLists.txt
The file was modifiedlldb/cmake/modules/LLDBConfig.cmake
The file was modifiedlldb/source/Plugins/SymbolVendor/MacOSX/CMakeLists.txt
The file was modifiedlldb/source/Host/CMakeLists.txt
The file was modifiedlldb/source/Plugins/Platform/MacOSX/CMakeLists.txt
Commit 04daba967031b7e3a72935613f23cb0051b56fc8 by hhb
[lldb] Cleans up system_libs

Summary:
Long long ago system_libs was appended to LLDB_SYSTEM_LIBS in
cmake/LLDBDependencies.cmake. After that file was removed, system_libs
is orphaned.

Currently the only user is source/Utility. Move the logic there and
remove system_libs.

Subscribers: mgorny, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D80253
The file was modifiedlldb/cmake/modules/LLDBConfig.cmake
The file was modifiedlldb/source/Utility/CMakeLists.txt
Commit ce19664d94b7dacc7291e947b19f5ccab0bba981 by Jonas Devlieghere
[lldb/Driver] Print snippet before exiting with unknown argument.

Print a little snippet before exiting when passed unrecognized
arguments. The goal is twofold:

- Point users to lldb --help.
- Make it clear that we exited the debugger.
The file was modifiedlldb/tools/driver/Driver.cpp
The file was modifiedlldb/test/Shell/Driver/TestPositionalArgs.test
Commit 8817e6ab31e46bb92081cf4b5497f42297623e42 by mascasa
[sanitizer_symbolizer] Add __isinf to symbols list.
The file was modifiedcompiler-rt/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt
Commit 690993a09a0df0d54a5cec7f06fffb6e2210ab8b by Jonas Devlieghere
[lldb/Reproducers] Add instrumentation to SBEnvironment

This class should've been instrumented when it landed. Whether the class
is "highly mutable" or not doesn't affect that.

With this patch TestSBEnvironment.py now passes when replayed.
The file was modifiedlldb/source/API/SBReproducer.cpp
The file was modifiedlldb/source/API/SBEnvironment.cpp
Commit 166ebefd27ac71e3f911f3d7ba0e168464d372af by mydeveloperday
[clang-format] Set of unit test to begin to validate that we don't change defaults

Summary:
This revision is to complement {D75791} so we can be sure that we don't change any default behavior.

For now just add rules to cover AfterExternBlock, but in the future we should add cases to cover the other BraceWrapping rules for each style. This will help guard us when we change code inside of the various getXXXStyle() functions to ensure we are not breaking everyone.

Reviewed By: MarcusJohnson91

Subscribers: cfe-commits

Tags: #clang, #clang-format

Differential Revision: https:
The file was modifiedclang/unittests/Format/FormatTest.cpp
Commit bc1c3655bfd67a0b4ccece465729c39d769e9707 by thakis
Give microsoftDemangle() an outparam for how many input bytes were consumed.

Demangling Itanium symbols either consumes the whole input or fails,
but Microsoft symbols can be successfully demangled with just some
of the input.

Add an outparam that enables clients to know how much of the input was
consumed, and use this flag to give llvm-undname an opt-in warning
on partially consumed symbols.

Differential Revision: https://reviews.llvm.org/D80173
The file was modifiedllvm/lib/DebugInfo/Symbolize/Symbolize.cpp
The file was modifiedllvm/lib/Demangle/MicrosoftDemangle.cpp
The file was addedllvm/test/Demangle/warn-trailing.test
The file was modifiedllvm/lib/Demangle/Demangle.cpp
The file was modifiedllvm/tools/llvm-objdump/COFFDump.cpp
The file was modifiedllvm/tools/llvm-undname/llvm-undname.cpp
The file was modifiedllvm/tools/llvm-microsoft-demangle-fuzzer/llvm-microsoft-demangle-fuzzer.cpp
The file was modifiedlldb/source/Core/Mangled.cpp
The file was modifiedllvm/include/llvm/Demangle/Demangle.h
Commit 6ef45b0426a8c7b9764e102fb1a49561a3a2c118 by mydeveloperday
[clang-format] Added new option IndentExternBlock

Reviewers: MyDeveloperDay, krasimir, klimek, mitchell-stellar, Abpostelnicu

Patch By: MarcusJohnson91

Reviewed By: MyDeveloperDay, Abpostelnicu

Subscribers: sylvestre.ledru, Abpostelnicu, cfe-commits

Tags: #clang, #clang-format, #clang-tools-extra

Differential Revision: https://reviews.llvm.org/D75791
The file was modifiedclang/docs/ClangFormatStyleOptions.rst
The file was modifiedclang/include/clang/Format/Format.h
The file was modifiedclang/lib/Format/UnwrappedLineParser.cpp
The file was modifiedclang/lib/Format/Format.cpp
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/unittests/Format/FormatTest.cpp
Commit ef2103182244c96f5206b02164b62b9c9e0cbce8 by stephen.neuendorffer
[lit] GoogleTest framework should report failures if test binary crashes

lit runs a gtest executable multiple times. First it runs it to
discover tests, then later it runs the executable again for each test.
However, if the discovery fails (perhaps because of a broken
executable), then no tests were previously run and no failures were
reported.  This patch creates a dummy test if discovery fails, which
will later fail when test are run and be reported as a failure.

Differential Revision: https://reviews.llvm.org/D80096
The file was modifiedllvm/utils/lit/lit/formats/googletest.py
The file was addedllvm/utils/lit/tests/Inputs/googletest-discovery-failed/subdir/OneTest.py
The file was addedllvm/utils/lit/tests/Inputs/googletest-discovery-failed/lit.cfg
The file was addedllvm/utils/lit/tests/googletest-discovery-failed.py
Commit ebf14d9b6d8bd33a1f684e9c74bf7eebc00b6ff1 by ntv
[mlir] NFC - Appease GCC 5 again..
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
Commit 8723f841aad8815c6d4ab199ad591f6eafdaad83 by Jonas Devlieghere
[lldb/Test] Support arbitrary file extensions in TestPositionalArgs.test

On Windows the line must match:

  Use 'lldb.exe --help' for a complete list of options.
The file was modifiedlldb/test/Shell/Driver/TestPositionalArgs.test
Commit cdb6f05e2d5f0132956020e6b4990af0206c066f by whchung
[mlir][gpu] Refactor ConvertGpuLaunchFuncToCudaCalls pass.

Due to similar APIs between CUDA and ROCm (HIP),
ConvertGpuLaunchFuncToCudaCalls pass could be used on both platforms with some
refactoring.

In this commit:

- Migrate ConvertLaunchFuncToCudaCalls from GPUToCUDA to GPUCommon, and rename.
- Rename runtime wrapper APIs be platform-neutral.
- Let GPU binary annotation attribute be specifiable as a PassOption.
- Naming changes within the implementation and tests.

Subsequent patches would introduce ROCm-specific tests and runtime wrapper
APIs.

Differential Revision: https://reviews.llvm.org/D80167
The file was removedmlir/lib/Conversion/GPUToCUDA/ConvertLaunchFuncToCudaCalls.cpp
The file was modifiedmlir/lib/Conversion/GPUToCUDA/CMakeLists.txt
The file was removedmlir/test/Conversion/GPUToCUDA/lower-launch-func-to-cuda.mlir
The file was addedmlir/test/Conversion/GPUCommon/lower-launch-func-to-gpu-runtime-calls.mlir
The file was modifiedmlir/include/mlir/Conversion/GPUToCUDA/GPUToCUDAPass.h
The file was addedmlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp
The file was addedmlir/lib/Conversion/GPUCommon/CMakeLists.txt
The file was modifiedmlir/tools/mlir-cuda-runner/mlir-cuda-runner.cpp
The file was modifiedmlir/include/mlir/Conversion/Passes.td
The file was modifiedmlir/tools/mlir-cuda-runner/cuda-runtime-wrappers.cpp
The file was modifiedmlir/include/mlir/InitAllPasses.h
The file was addedmlir/include/mlir/Conversion/GPUCommon/GPUCommonPass.h
The file was modifiedmlir/lib/Conversion/CMakeLists.txt
Commit ad398164bac0e4a63588005e7061537518557eab by whchung
[mlir][gpu] Refactor functions for workgroup and private buffer attributions.

Summary:

Consolidate interfaces adding workgroup and private buffer attributions in GPU
dialect.

Note all private buffer attributions must follow workgroup buffer attributions.

Reviewers: herhut

Subscribers: mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, nicolasvasilache, csigg, arpith-jacob, mgester, lucyrfox, liufengdb, stephenneuendorffer, Joonsoo, grosul1, frgossen, Kayjukh, llvm-commits

Tags: #llvm, #mlir

Differential Revision: https://reviews.llvm.org/D79508
The file was modifiedmlir/lib/Dialect/GPU/Transforms/AllReduceLowering.cpp
The file was modifiedmlir/include/mlir/Dialect/GPU/GPUOps.td
The file was modifiedmlir/lib/Dialect/GPU/IR/GPUDialect.cpp
The file was modifiedmlir/lib/Dialect/GPU/Transforms/MemoryPromotion.cpp
Commit 3393cc4cebf9969db94dc424b7a2b6195589c33b by ntv
[mlir] NFC - Appease GCC 5 again..
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
Commit 17bd86bc9bf0e696fb914ae5befb68ea9a847c82 by craig.topper
[LegalizeVectorTypes] Create correct memoperands in SplitVecRes_INSERT_SUBVECTOR.

Previously this code just used a default constructed
MachinePointerInfo. But we know the accesses are to a fixed stack
object or at least somewhere on the stack.

While there fix the alignment passed to the full vector load/stores.

I don't think this function is currently exercised in tree so I
don't know how to test it. I just noticed it when I removed
non-constant index support in this function.

Differential Revision: https://reviews.llvm.org/D80058
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
Commit 4eecf171645e064ff251ea3f706d3252b54da2f8 by Stanislav.Mekhanoshin
[AMDGPU] Always expand ext/insertelement with divergent idx

Even though series of cmd/cndmask can produce quite a lot of
code that is still better than a loop. In case of doubles we
would even produce two loops.

Differential Revision: https://reviews.llvm.org/D80032
The file was modifiedllvm/test/CodeGen/AMDGPU/insert_vector_dynelt.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/scratch-simple.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/indirect-addressing-si.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/indirect-addressing-si-gfx9.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/indirect-addressing-si-pregfx9.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/extract_vector_dynelt.ll
Commit 161122ea1c61bbd2de22b86e5c5299e8f4b066ef by francisvm
[AArch64] Provide Darwin variants of most calling conventions

With the new SVE stack layout, we now need to provide a Darwin variant
for all the calling conventions based on the main AAPCS CSR save order.

This also changes APCS_SwiftError to have a Darwin and a non-Darwin
version, assuming it could be used on other platforms these days, and
restricts the AArch64_CXX_TLS calling convention to Darwin.

Differential Revision: https://reviews.llvm.org/D73805
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/irtranslator-exceptions.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-memcpy-with-debug-info.mir
The file was modifiedllvm/lib/Target/AArch64/AArch64RegisterInfo.h
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-s128-div.mir
The file was modifiedllvm/lib/Target/AArch64/AArch64CallingConvention.td
The file was modifiedllvm/test/CodeGen/AArch64/shadow-call-stack.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-pow.mir
The file was addedllvm/test/CodeGen/AArch64/arm64-darwin-cc.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-callingconv-ios.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/integration-shuffle-vector.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-memcpy-et-al.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-rem.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/call-translator-tail-call-weak.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/call-translator-tail-call.ll
Commit 1d393eac8f6907074138612e18d5d1da803b4ad0 by dkszelethus
[analyzer] Fix a null FunctionDecl dereference bug after D75432
The file was modifiedclang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
The file was modifiedclang/test/Analysis/malloc.c
Commit 3508c1d8fbe9b053d32330b6995c88c57a82e33f by rnk
[LLD] Make scoped timers thread safe

Summary:
This is a pre-requisite to parallelizing PDB symbol and type merging.
Currently this timer usage would not be thread safe.

Reviewers: aganea, MaskRay

Subscribers: jfb, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D80298
The file was modifiedlld/COFF/Driver.cpp
The file was modifiedlld/include/lld/Common/Timer.h
The file was modifiedlld/Common/Timer.cpp
Commit 770ba4f0516e9af7279767ae90e283c3755c0c97 by francisvm
[AArch64] Fix GlobalISel tests on non-darwin platforms

http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-debian/builds/6998
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-pow.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-memcpy-with-debug-info.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-rem.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-memcpy-et-al.mir
Commit f26bdb539e8acef23e2a0370408521a6458001ee by efriedma
Make Value::getPointerAlignment() return an Align, not a MaybeAlign.

If we don't know anything about the alignment of a pointer, Align(1) is
still correct: all pointers are at least 1-byte aligned.

Included in this patch is a bugfix for an issue discovered during this
cleanup: pointers with "dereferenceable" attributes/metadata were
assumed to be aligned according to the type of the pointer.  This
wasn't intentional, as far as I can tell, so Loads.cpp was fixed to
stop making this assumption. Frontends may need to be updated.  I
updated clang's handling of C++ references, and added a release note for
this.

Differential Revision: https://reviews.llvm.org/D80072
The file was modifiedllvm/docs/ReleaseNotes.rst
The file was modifiedllvm/test/Transforms/GVN/PRE/load-pre-licm.ll
The file was modifiedllvm/test/Transforms/GVN/PRE/pre-load.ll
The file was modifiedllvm/test/Transforms/LICM/hoist-deref-load.ll
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/include/llvm/IR/Value.h
The file was modifiedllvm/test/Analysis/ValueTracking/memory-dereferenceable.ll
The file was modifiedllvm/test/Transforms/InstCombine/call-guard.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/SpeculativeExec.ll
The file was modifiedllvm/test/Transforms/InstCombine/masked_intrinsics.ll
The file was modifiedpolly/test/ScopInfo/invariant_load_dereferenceable.ll
The file was modifiedllvm/lib/IR/ConstantFold.cpp
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
The file was modifiedllvm/lib/Analysis/Loads.cpp
The file was modifiedllvm/test/Transforms/TailCallElim/reorder_load.ll
The file was modifiedllvm/lib/IR/Value.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.td
The file was modifiedllvm/unittests/IR/FunctionTest.cpp
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
The file was modifiedllvm/lib/CodeGen/ExpandMemCmp.cpp
Commit b4f9b34701b4d81c9c93028168ad83176f70e3af by efriedma
[AArch64] Fix unwind info generated by outliner.

The offsets were wrong. The result is now the same as what the compiler
would generate for a function that spills lr normally.

Differential Revision: https://reviews.llvm.org/D80238
The file was modifiedllvm/test/CodeGen/AArch64/machine-outliner-calls.mir
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.cpp
Commit 48a8c7dcbfb90e917920e90fa2b3ec402e72f4cd by dkszelethus
[analyzer] Make buildbots happy
The file was modifiedclang/test/Analysis/malloc.c
Commit 51dbda54384827533dcfcb712f918cee7acc3185 by Jake.Merdich
[clang-format][docfix] Update predefined styles in docs

Summary:
The predefined styles that clang-format supports are listed in two
places, and neither is up-to-date. GNU style isn't mentioned at all!

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D80309
The file was modifiedclang/docs/LibFormat.rst
The file was modifiedclang/docs/ClangFormatStyleOptions.rst
Commit d9a4a244138c4ec7dcc1b316e2ca57c9c833bf6c by aqjune
Add CanonicalizeFreezeInLoops pass

Summary:
If an induction variable is frozen and used, SCEV yields imprecise result
because it doesn't say anything about frozen variables.

Due to this reason, performance degradation happened after
https://reviews.llvm.org/D76483 is merged, causing
SCEV yield imprecise result and preventing LSR to optimize a loop.

The suggested solution here is to add a pass which canonicalizes frozen variables
inside a loop. To be specific, it pushes freezes out of the loop by freezing
the initial value and step values instead & dropping nsw/nuw flags from instructions used by freeze.
This solution was also mentioned at https://reviews.llvm.org/D70623 .

Reviewers: spatel, efriedma, lebedev.ri, fhahn, jdoerfert

Reviewed By: fhahn

Subscribers: nikic, mgorny, hiraditya, javed.absar, llvm-commits, sanwou01, nlopes

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77523
The file was addedllvm/lib/Transforms/Utils/CanonicalizeFreezeInLoops.cpp
The file was modifiedllvm/lib/Transforms/Utils/Utils.cpp
The file was addedllvm/test/Transforms/CanonicalizeFreezeInLoops/onephi.ll
The file was modifiedllvm/include/llvm/InitializePasses.h
The file was addedllvm/test/Transforms/CanonicalizeFreezeInLoops/phis.ll
The file was addedllvm/include/llvm/Transforms/Utils/CanonicalizeFreezeInLoops.h
The file was addedllvm/test/Transforms/CanonicalizeFreezeInLoops/nonsteps-preserve-flags.ll
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was addedllvm/test/Transforms/CanonicalizeFreezeInLoops/func_from_mcf_r.ll
The file was modifiedllvm/include/llvm/Transforms/Utils.h
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/lib/Transforms/Utils/CMakeLists.txt
Commit ca85d5a848b8b619e185740864464639f690fd95 by llvmgnsyncbot
[gn build] Port d9a4a244138
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Transforms/Utils/BUILD.gn
Commit 58f7c938a12fb4f332b58594a64d96e7945c3246 by aqjune
add a test for D77524
The file was addedllvm/test/Transforms/CanonicalizeFreezeInLoops/aarch64.ll