FailedChanges

Summary

  1. [mlir] NFC: properly align IR in comments (details)
  2. [libc++] Remove the reliance of several <random> tests on <iostream> (details)
  3. [NFC] Fixing comment heading for MachineStableHash.h. (details)
  4. [nfc] [lldb] Refactor DWARFUnit::GetDIE (details)
  5. [mlir] Do not print back 0 alignment in LLVM dialect 'alloca' op (details)
  6. [TargetRegisterInfo] Fix a couple of typos in the comments (details)
  7. [CodeView] Emit static data members as S_CONSTANTs. (details)
  8. [MLIR] Fix AttributeInterface declaration. (details)
  9. IR: Clarify ownership of ConstantDataSequentials, NFC (details)
  10. [cmake] Add LLVM_UBSAN_FLAGS, to allow overriding UBSan flags (details)
  11. [mlir] Document 'ParentOneOf' with the HasParent trait (details)
  12. Fixed release build after D89170 (details)
  13. Explicitly check for entry basic block, rather than relying on MachineBasicBlock::pred_empty. (details)
  14. [mlir][Linalg] Miscalleneous enhancements to cover more fusion cases. (details)
  15. [DebugInfo] Expose Fortran array debug info attributes through DIBuilder. (details)
  16. [profile] Suppress spurious 'expected profile to require unlock' warning (details)
  17. [PowerPC] Implement Set Boolean Condition Instructions (details)
  18. Fix checking for C++98 ICEs in C++11-and-later mode to not consider use (details)
  19. [clang][NFC] Rearrange Comment Token and Lexer fields to reduce padding (details)
  20. [lldb][NativePDB] fix test load-pdb.cpp (details)
  21. [NFC] Use [MC]Register in RegAllocPBQP & RegisterCoalescer (details)
  22. SourceManager: Use the same fake SLocEntry whenever it fails to load (details)
  23. [mlir] Add a conversion pass between PDL and the  PDL Interpreter Dialect (details)
  24. [mlir][Pattern] Refactor the Pattern class into a "metadata only" class (details)
  25. [mlir][NFC] Move around the code related to PatternRewriting to improve layering (details)
  26. [mlir][Pattern] Add a new FrozenRewritePatternList class (details)
  27. IR: Add a comment at missing std::make_unique calls from b2b7cf39d596b1528cd64015575b3f5d1461c011, NFC (details)
  28. [NPM] Port -slsr to NPM (details)
  29. [AMDGPU] Move WQM Pass after MI Scheduler (details)
  30. Teach `-fsanitize=fuzzer` to respect `-static` and `-static-libstdc++` when adding C++ standard libraries. (details)
  31. Update email addresses in CODE_OWNERS. (details)
  32. IR: Simplify two loops walking ConstantDataSequential, NFC (details)
  33. SourceManager: clang-format the SrcMgr namespace, NFC (details)
  34. [LSR] fix typo in comments and rename for a new added hook. (details)
  35. [Clang][OpenMP] Fixed an issue of segment fault when using target nowait (details)
  36. [mlir][StorageUniquer] Refactor parametric storage to use sharded dense sets (details)
  37. [mlir][SymbolTable] Use Identifier instead of StringRef when looking up symbol name attributes (details)
  38. Port -objc-arc-apelim to NPM (details)
  39. Port -objc-arc-expand to NPM (details)
  40. [PlaceSafepoints] Pin tests to legacy PM (details)
  41. [AlwaysInliner] Pass callee AAResults to InlineFunction() (details)
Commit f52b4a65f09caf46413d19417505a5f44b36b931 by antiagainst
[mlir] NFC: properly align IR in comments

Reviewed By: aartbik

Differential Revision: https://reviews.llvm.org/D90164
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorTransforms.h
Commit d1afe2e25c29d040f978d0d0ac93fc5aea797901 by Louis Dionne
[libc++] Remove the reliance of several <random> tests on <iostream>
The file was modifiedlibcxx/test/std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.bin/eval.pass.cpp
The file was modifiedlibcxx/test/std/numerics/rand/rand.eng/rand.eng.mers/discard.pass.cpp
The file was modifiedlibcxx/test/std/numerics/rand/rand.eng/rand.eng.mers/eval.pass.cpp
The file was addedlibcxx/test/std/numerics/rand/rand.dis/rand.dist.bern/rand.dist.bern.bin/eval.PR44847.pass.cpp
The file was modifiedlibcxx/test/std/numerics/rand/rand.eng/rand.eng.mers/default.pass.cpp
Commit 4f98eaf655800720739867da7082edb829d84ffd by plotfi
[NFC] Fixing comment heading for MachineStableHash.h.

Wrong filename and description.
The file was modifiedllvm/include/llvm/CodeGen/MachineStableHash.h
Commit 7611c5bb42a96c13d0e53ade546633bf9ed56f0c by jan.kratochvil
[nfc] [lldb] Refactor DWARFUnit::GetDIE

Reduce indentation of the code by early returns for failed code paths.
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp
Commit 03e6f40cdba61e6fbe0fef00e92ae1ebaf8431a7 by zinenko
[mlir] Do not print back 0 alignment in LLVM dialect 'alloca' op

The alignment attribute in the 'alloca' op treats the '0' value as 'unset'.
When parsing the custom form of the 'alloca' op, ignore the alignment attribute
with if its value is '0' instead of actually creating it and producing a
slightly different textually yet equivalent semantically form in the output.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D90179
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
The file was modifiedmlir/include/mlir/IR/OperationSupport.h
The file was modifiedmlir/lib/IR/OperationSupport.cpp
The file was modifiedmlir/test/Dialect/LLVMIR/invalid.mlir
Commit 78a7941e5cff263f20f10c51331f575234417f7e by qcolombet
[TargetRegisterInfo] Fix a couple of typos in the comments

Spotted by Nicolas Guillemot <nguillemot@apple.com>.

Thanks Nicolas!

NFC
The file was modifiedllvm/include/llvm/CodeGen/TargetRegisterInfo.h
Commit 515973222ed29abe49f241e89edb6854f44162d4 by akhuang
[CodeView] Emit static data members as S_CONSTANTs.

We used to only emit static const data members in CodeView as
S_CONSTANTS when they were used; this patch makes it so they are always emitted.

I changed CodeViewDebug.cpp to find the static const members from the
class debug info instead of creating DIGlobalVariables in the IR
whenever a static const data member is used.

Bug: https://bugs.llvm.org/show_bug.cgi?id=47580

Differential Revision: https://reviews.llvm.org/D89072
The file was modifiedllvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
The file was modifiedclang/test/CodeGenCXX/debug-info-static-member.cpp
The file was modifiedllvm/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp
The file was modifiedllvm/test/DebugInfo/COFF/global-constants.ll
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
The file was modifiedllvm/test/DebugInfo/COFF/types-array-unsized.ll
Commit db4863ffd1ff0beaf8b13a50beb81d22c8f1137d by zinenko
[MLIR] Fix AttributeInterface declaration.

Substitues `Type` by `Attribute` in the declaration of AttributeInterface. It
looks like the code was written by copy-pasting the definition of TypeInterface,
but the substitution of Type by Attribute was missing at some places.

Reviewed By: rriddle, ftynse

Differential Revision: https://reviews.llvm.org/D90138
The file was modifiedmlir/include/mlir/IR/Attributes.h
Commit b2b7cf39d596b1528cd64015575b3f5d1461c011 by Duncan P. N. Exon Smith
IR: Clarify ownership of ConstantDataSequentials, NFC

Change `ConstantDataSequential::Next` to a
`unique_ptr<ConstantDataSequential>` and update `CDSConstants` to a
`StringMap<unique_ptr<ConstantDataSequential>>`, making the ownership
more obvious.

Differential Revision: https://reviews.llvm.org/D90083
The file was modifiedllvm/lib/IR/LLVMContextImpl.h
The file was modifiedllvm/lib/IR/Constants.cpp
The file was modifiedllvm/include/llvm/IR/Constants.h
The file was modifiedllvm/lib/IR/LLVMContextImpl.cpp
Commit 905f874c449cc114d74eaeb19639664779fd0b6e by Vedant Kumar
[cmake] Add LLVM_UBSAN_FLAGS, to allow overriding UBSan flags

Allow overriding the default set of flags used to enable UBSan when
building llvm.

This can be used to test new checks or opt out of certain checks.

Differential Revision: https://reviews.llvm.org/D89439
The file was modifiedllvm/CMakeLists.txt
The file was modifiedllvm/docs/CMake.rst
The file was modifiedllvm/cmake/modules/HandleLLVMOptions.cmake
Commit 745c1671b16afd6faac84c660eeab881dd6401cf by stephen.neuendorffer
[mlir] Document 'ParentOneOf' with the HasParent trait

Differential Revision: https://reviews.llvm.org/D90197
The file was modifiedmlir/docs/Traits.md
Commit d176e13ca55353c7ee8d4da23be6eae9f82a64e1 by Stanislav.Mekhanoshin
Fixed release build after D89170
The file was modifiedllvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
Commit 0b2f4cdf2bd4e48974099cd441afaabc18ead227 by rahmanl
Explicitly check for entry basic block, rather than relying on MachineBasicBlock::pred_empty.

Sometimes in unoptimized code, we have dangling unreachable basic blocks with no predecessors. Basic block sections should be emitted for those as well. Without this patch, the included test fails with a fatal error in `AsmPrinter::emitBasicBlockEnd`.

Reviewed By: tmsriram

Differential Revision: https://reviews.llvm.org/D89423
The file was modifiedllvm/lib/CodeGen/MachineBasicBlock.cpp
The file was modifiedllvm/include/llvm/CodeGen/AsmPrinter.h
The file was modifiedllvm/include/llvm/CodeGen/MachineBasicBlock.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
The file was addedllvm/test/CodeGen/X86/basic-block-sections-unreachable.ll
Commit 78f37b74da60ccdca200e457df195d58d76b3b8f by ravishankarm
[mlir][Linalg] Miscalleneous enhancements to cover more fusion cases.

Adds support for
- Dropping unit dimension loops for indexed_generic ops.
- Folding consecutive folding (or expanding) reshapes when the result
  (or src) is a scalar.
- Fixes to indexed_generic -> generic fusion when zero-dim tensors are
  involved.

Differential Revision: https://reviews.llvm.org/D90118
The file was modifiedmlir/test/Dialect/Linalg/canonicalize.mlir
The file was modifiedmlir/test/Dialect/Linalg/fusion-tensor.mlir
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp
The file was modifiedmlir/test/Dialect/Linalg/drop-unit-extent-dims.mlir
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp
Commit 5b3bf8b453b8cc00efd5269009a1e63c4442a30e by Adrian Prantl
[DebugInfo] Expose Fortran array debug info attributes through DIBuilder.

The support of a few debug info attributes specifically for Fortran
arrays have been added to LLVM recently, but there's no way to take
advantage of them through DIBuilder. This patch extends
DIBuilder::createArrayType to enable the settings of those attributes.

Patch by Chih-Ping Chen!

Differential Revision: https://reviews.llvm.org/D89817
The file was modifiedllvm/lib/IR/DIBuilder.cpp
The file was modifiedllvm/include/llvm/IR/DIBuilder.h
The file was modifiedllvm/unittests/IR/DebugInfoTest.cpp
Commit a77a739abcfa1c5734d374e1afb51cebdb6f36bd by Vedant Kumar
[profile] Suppress spurious 'expected profile to require unlock' warning

In %c (continuous sync) mode, avoid attempting to unlock an
already-unlocked profile.

The profile is only locked when profile merging is enabled.
The file was modifiedcompiler-rt/lib/profile/InstrProfilingFile.c
The file was modifiedcompiler-rt/test/profile/ContinuousSyncMode/multiple-DSOs.c
Commit 803cc3aff2ce7fe07a59289070477d0ea0c9cf09 by amy.kwan1
[PowerPC] Implement Set Boolean Condition Instructions

This patch implements the set boolean condition instructions introduced in
POWER10.

The set boolean condition instructions (set[n]bc[r]) are used during
the following situations:
- sign/zero/any extending i1 to an i32 or i64,
- reg+reg, reg+imm or floating point comparisons being sign/zero extended to i32 or i64,
- spilling CR bits (using the setnbc instruction)

Differential Revision: https://reviews.llvm.org/D87705
The file was addedllvm/test/CodeGen/PowerPC/p10-setboolean-ext-fp.ll
The file was addedllvm/test/CodeGen/PowerPC/p10-spill-crun.ll
The file was addedllvm/test/CodeGen/PowerPC/p10-setbcr-rr.ll
The file was addedllvm/test/CodeGen/PowerPC/p10-spill-creq.ll
The file was addedllvm/test/CodeGen/PowerPC/p10-setbcr-ri.ll
The file was addedllvm/test/CodeGen/PowerPC/p10-spill-crlt.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCRegisterInfo.cpp
The file was addedllvm/test/CodeGen/PowerPC/p10-setnbc-rr.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td
The file was modifiedllvm/test/CodeGen/PowerPC/testComparesi32leu.ll
The file was addedllvm/test/CodeGen/PowerPC/p10-setbc-ri.ll
The file was addedllvm/test/CodeGen/PowerPC/p10-setnbcr-rr.ll
The file was modifiedllvm/test/CodeGen/PowerPC/testComparesi32ltu.ll
The file was modifiedllvm/test/CodeGen/PowerPC/crbits.ll
The file was addedllvm/test/CodeGen/PowerPC/p10-setnbcr-ri.ll
The file was modifiedllvm/test/CodeGen/PowerPC/testComparesi32gtu.ll
The file was modifiedllvm/test/CodeGen/PowerPC/CompareEliminationSpillIssue.ll
The file was addedllvm/test/CodeGen/PowerPC/p10-setbc-rr.ll
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.td
The file was addedllvm/test/CodeGen/PowerPC/p10-spill-crgt.ll
The file was addedllvm/test/CodeGen/PowerPC/p10-setnbc-ri.ll
Commit a5c7b46862ec0531964eb52329cdf009862abecf by richard
Fix checking for C++98 ICEs in C++11-and-later mode to not consider use
of a reference to be acceptable.
The file was modifiedclang/test/SemaCXX/MicrosoftCompatibility.cpp
The file was modifiedclang/lib/AST/ExprConstant.cpp
Commit b698ad00cbc76f34f48bb639ffb1cfee47a9737e by n.james93
[clang][NFC] Rearrange Comment Token and Lexer fields to reduce padding

Rearrange the fields to reduce the size of the classes

Reviewed By: gribozavr2

Differential Revision: https://reviews.llvm.org/D90127
The file was modifiedclang/lib/AST/CommentLexer.cpp
The file was modifiedclang/include/clang/AST/CommentLexer.h
Commit 779deb9750a4853485ac7beca86f518b067ad6d6 by zequanwu
[lldb][NativePDB] fix test load-pdb.cpp
The file was modifiedlldb/test/Shell/SymbolFile/NativePDB/load-pdb.cpp
Commit 17cdba61d4364ac7d89f6be770afdd4cc8daef83 by gjn
[NFC] Use [MC]Register in RegAllocPBQP & RegisterCoalescer

Differential Revision: https://reviews.llvm.org/D90008
The file was modifiedllvm/lib/CodeGen/RegisterCoalescer.cpp
The file was modifiedllvm/include/llvm/CodeGen/MachineRegisterInfo.h
The file was modifiedllvm/include/llvm/CodeGen/RegAllocPBQP.h
The file was modifiedllvm/include/llvm/MC/MCRegister.h
The file was modifiedllvm/lib/CodeGen/RegisterCoalescer.h
The file was modifiedllvm/lib/CodeGen/RegAllocPBQP.cpp
Commit aab50af8c18ab2eb2149bb516c8a0993ffc5abb7 by Duncan P. N. Exon Smith
SourceManager: Use the same fake SLocEntry whenever it fails to load

Instead of putting a fake `SLocEntry` at `LoadedSLocEntryTable[Index]`
when it fails to load in `SourceManager::loadSLocEntry`, allocate a fake
one. Unless someone is sniffing the address of the returned `SLocEntry`
(doubtful), this won't be a functionality change. Note that
`SLocEntryLoaded[Index]` wasn't being set to `true` either before or
after this change so no accessor is every going to look at
`LoadedSLocEntryTable[Index]`.

As a side effect, drop the `mutable` from `LoadedSLocEntryTable`.

Differential Revision: https://reviews.llvm.org/D89748
The file was modifiedclang/lib/Basic/SourceManager.cpp
The file was modifiedclang/include/clang/Basic/SourceManager.h
Commit 8a1ca2cd347cf80b377b36d1a7af3f31ec5b575e by riddleriver
[mlir] Add a conversion pass between PDL and the  PDL Interpreter Dialect

The conversion between PDL and the interpreter is split into several different parts.
** The Matcher:

The matching section of all incoming pdl.pattern operations is converted into a predicate tree and merged. Each pattern is first converted into an ordered list of predicates starting from the root operation. A predicate is composed of three distinct parts:
* Position
  - A position refers to a specific location on the input DAG, i.e. an
    existing MLIR entity being matched. These can be attributes, operands,
    operations, results, and types. Each position also defines a relation to
    its parent. For example, the operand `[0] -> 1` has a parent operation
    position `[0]` (the root).
* Question
  - A question refers to a query on a specific positional value. For
  example, an operation name question checks the name of an operation
  position.
* Answer
  - An answer is the expected result of a question. For example, when
  matching an operation with the name "foo.op". The question would be an
  operation name question, with an expected answer of "foo.op".

After the predicate lists have been created and ordered(based on occurrence of common predicates and other factors), they are formed into a tree of nodes that represent the branching flow of a pattern match. This structure allows for efficient construction and merging of the input patterns. There are currently only 4 simple nodes in the tree:
* ExitNode: Represents the termination of a match
* SuccessNode: Represents a successful match of a specific pattern
* BoolNode/SwitchNode: Branch to a specific child node based on the expected answer to a predicate question.

Once the matcher tree has been generated, this tree is walked to generate the corresponding interpreter operations.

** The Rewriter:
The rewriter portion of a pattern is generated in a very straightforward manor, similarly to lowerings in other dialects. Each PDL operation that may exist within a rewrite has a mapping into the interpreter dialect. The code for the rewriter is generated within a FuncOp, that is invoked by the interpreter on a successful pattern match. Referenced values defined in the matcher become inputs the generated rewriter function.

An example lowering is shown below:

```mlir
// The following high level PDL pattern:
pdl.pattern : benefit(1) {
  %resultType = pdl.type
  %inputOperand = pdl.input
  %root, %results = pdl.operation "foo.op"(%inputOperand) -> %resultType
  pdl.rewrite %root {
    pdl.replace %root with (%inputOperand)
  }
}

// is lowered to the following:
module {
  // The matcher function takes the root operation as an input.
  func @matcher(%arg0: !pdl.operation) {
    pdl_interp.check_operation_name of %arg0 is "foo.op" -> ^bb2, ^bb1
  ^bb1:
    pdl_interp.return
  ^bb2:
    pdl_interp.check_operand_count of %arg0 is 1 -> ^bb3, ^bb1
  ^bb3:
    pdl_interp.check_result_count of %arg0 is 1 -> ^bb4, ^bb1
  ^bb4:
    %0 = pdl_interp.get_operand 0 of %arg0
    pdl_interp.is_not_null %0 : !pdl.value -> ^bb5, ^bb1
  ^bb5:
    %1 = pdl_interp.get_result 0 of %arg0
    pdl_interp.is_not_null %1 : !pdl.value -> ^bb6, ^bb1
  ^bb6:
    // This operation corresponds to a successful pattern match.
    pdl_interp.record_match @rewriters::@rewriter(%0, %arg0 : !pdl.value, !pdl.operation) : benefit(1), loc([%arg0]), root("foo.op") -> ^bb1
  }
  module @rewriters {
    // The inputs to the rewriter from the matcher are passed as arguments.
    func @rewriter(%arg0: !pdl.value, %arg1: !pdl.operation) {
      pdl_interp.replace %arg1 with(%arg0)
      pdl_interp.return
    }
  }
}
```

Differential Revision: https://reviews.llvm.org/D84580
The file was addedmlir/include/mlir/Conversion/PDLToPDLInterp/PDLToPDLInterp.h
The file was addedmlir/test/Conversion/PDLToPDLInterp/pdl-to-pdl-interp-rewriter.mlir
The file was modifiedmlir/include/mlir/Conversion/Passes.td
The file was modifiedmlir/include/mlir/Dialect/PDLInterp/IR/PDLInterpOps.td
The file was addedmlir/lib/Conversion/PDLToPDLInterp/Predicate.h
The file was addedmlir/lib/Conversion/PDLToPDLInterp/Predicate.cpp
The file was modifiedmlir/include/mlir/Support/StorageUniquer.h
The file was modifiedmlir/include/mlir/Conversion/Passes.h
The file was addedmlir/test/Conversion/PDLToPDLInterp/pdl-to-pdl-interp-matcher.mlir
The file was addedmlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp
The file was modifiedmlir/lib/Conversion/CMakeLists.txt
The file was addedmlir/lib/Conversion/PDLToPDLInterp/PredicateTree.h
The file was addedmlir/lib/Conversion/PDLToPDLInterp/PredicateTree.cpp
The file was addedmlir/lib/Conversion/PDLToPDLInterp/CMakeLists.txt
The file was modifiedmlir/lib/Conversion/PassDetail.h
Commit b99bd771626fbbf8b9b29ce312d4151968796826 by riddleriver
[mlir][Pattern] Refactor the Pattern class into a "metadata only" class

The Pattern class was originally intended to be used for solely matching operations, but that use never materialized. All of the pattern infrastructure uses RewritePattern, and the infrastructure for pure matching(Matchers.h) is implemented inline. This means that this class isn't a useful abstraction at the moment, so this revision refactors it to solely encapsulate the "metadata" of a pattern. The metadata includes the various state describing a pattern; benefit, root operation, etc. The API on PatternApplicator is updated to now operate on `Pattern`s as nothing special from `RewritePattern` is necessary.

This refactoring is also necessary for the upcoming use of PDL patterns alongside C++ rewrite patterns.

Differential Revision: https://reviews.llvm.org/D86258
The file was modifiedmlir/lib/Transforms/DialectConversion.cpp
The file was modifiedmlir/docs/PatternRewriter.md
The file was modifiedmlir/lib/IR/PatternMatch.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestPatterns.cpp
The file was modifiedmlir/include/mlir/IR/PatternMatch.h
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
Commit b6eb26fd0e316b36e3750f7cba7ebdb10219790c by riddleriver
[mlir][NFC] Move around the code related to PatternRewriting to improve layering

There are several pieces of pattern rewriting infra in IR/ that really shouldn't be there. This revision moves those pieces to a better location such that they are easier to evolve in the future(e.g. with PDL). More concretely this revision does the following:

* Create a Transforms/GreedyPatternRewriteDriver.h and move the apply*andFold methods there.
The definitions for these methods are already in Transforms/ so it doesn't make sense for the declarations to be in IR.

* Create a new lib/Rewrite library and move PatternApplicator there.
This new library will be focused on applying rewrites, and will also include compiling rewrites with PDL.

Differential Revision: https://reviews.llvm.org/D89103
The file was modifiedmlir/lib/Transforms/Utils/CMakeLists.txt
The file was modifiedmlir/lib/Conversion/StandardToSPIRV/LegalizeStandardForSPIRV.cpp
The file was modifiedmlir/test/lib/Dialect/Affine/TestAffineDataCopy.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
The file was modifiedmlir/test/lib/Transforms/TestExpandTanh.cpp
The file was modifiedmlir/test/lib/Transforms/TestLinalgTransforms.cpp
The file was modifiedmlir/include/mlir/IR/PatternMatch.h
The file was modifiedmlir/test/lib/Transforms/TestLinalgFusionTransforms.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/CodegenStrategy.cpp
The file was modifiedmlir/lib/Transforms/CMakeLists.txt
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Fusion.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp
The file was addedmlir/lib/Transforms/Utils/DialectConversion.cpp
The file was modifiedmlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestPatterns.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Loops.cpp
The file was modifiedmlir/lib/Conversion/ShapeToStandard/ConvertShapeConstraints.cpp
The file was modifiedmlir/lib/Dialect/Affine/Transforms/AffineDataCopyGeneration.cpp
The file was addedmlir/lib/Rewrite/PatternApplicator.cpp
The file was modifiedmlir/lib/Transforms/Canonicalizer.cpp
The file was modifiedmlir/lib/CMakeLists.txt
The file was modifiedmlir/lib/Dialect/Affine/Transforms/SimplifyAffineStructures.cpp
The file was modifiedmlir/lib/Transforms/Inliner.cpp
The file was modifiedmlir/test/lib/Transforms/TestGpuRewrite.cpp
The file was modifiedmlir/lib/IR/PatternMatch.cpp
The file was modifiedmlir/lib/Dialect/Quant/Transforms/ConvertConst.cpp
The file was modifiedmlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp
The file was modifiedmlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
The file was modifiedmlir/lib/Dialect/Shape/Transforms/RemoveShapeConstraints.cpp
The file was removedmlir/lib/Transforms/DialectConversion.cpp
The file was addedmlir/include/mlir/Transforms/GreedyPatternRewriteDriver.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp
The file was modifiedmlir/lib/Dialect/Affine/Utils/Utils.cpp
The file was modifiedmlir/lib/Dialect/Quant/Transforms/ConvertSimQuant.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestTraits.cpp
The file was modifiedmlir/test/lib/Transforms/TestConvVectorization.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
The file was addedmlir/include/mlir/Rewrite/PatternApplicator.h
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was modifiedmlir/lib/Transforms/Utils/LoopUtils.cpp
The file was modifiedmlir/test/lib/Transforms/TestVectorTransforms.cpp
The file was addedmlir/lib/Rewrite/CMakeLists.txt
Commit 3fffffa882c0c3702e1ce4c6eaf8a380ac4ab065 by riddleriver
[mlir][Pattern] Add a new FrozenRewritePatternList class

This class represents a rewrite pattern list that has been frozen, and thus immutable. This replaces the uses of OwningRewritePatternList in pattern driver related API, such as dialect conversion. When PDL becomes more prevalent, this API will allow for optimizing a set of patterns once without the need to do this per run of a pass.

Differential Revision: https://reviews.llvm.org/D89104
The file was modifiedmlir/lib/Conversion/AffineToStandard/AffineToStandard.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp
The file was modifiedmlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp
The file was modifiedmlir/lib/Conversion/VectorToROCDL/VectorToROCDL.cpp
The file was modifiedmlir/test/lib/Transforms/TestGpuRewrite.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp
The file was modifiedmlir/lib/Dialect/Shape/Transforms/RemoveShapeConstraints.cpp
The file was modifiedmlir/test/lib/Transforms/TestConvertCallOp.cpp
The file was modifiedmlir/lib/Dialect/Affine/Utils/Utils.cpp
The file was modifiedmlir/test/lib/Transforms/TestLinalgTransforms.cpp
The file was modifiedmlir/examples/toy/Ch7/mlir/LowerToAffineLoops.cpp
The file was modifiedmlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp
The file was modifiedmlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp
The file was modifiedmlir/test/lib/Transforms/TestConvVectorization.cpp
The file was modifiedmlir/include/mlir/IR/PatternMatch.h
The file was modifiedmlir/lib/Rewrite/CMakeLists.txt
The file was modifiedmlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRVPass.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestPatterns.cpp
The file was modifiedmlir/lib/Dialect/Affine/Transforms/AffineDataCopyGeneration.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/Transforms/DecorateSPIRVCompositeTypeLayoutPass.cpp
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/ConvertLaunchFuncToLLVMCalls.cpp
The file was addedmlir/include/mlir/Rewrite/FrozenRewritePatternList.h
The file was modifiedmlir/lib/Transforms/Inliner.cpp
The file was modifiedmlir/lib/Dialect/StandardOps/Transforms/ExpandAtomic.cpp
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was modifiedmlir/lib/Conversion/LinalgToStandard/LinalgToStandard.cpp
The file was modifiedmlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
The file was modifiedmlir/test/lib/Dialect/SPIRV/TestAvailability.cpp
The file was addedmlir/lib/Rewrite/FrozenRewritePatternList.cpp
The file was modifiedmlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRVPass.cpp
The file was modifiedmlir/examples/toy/Ch6/mlir/LowerToAffineLoops.cpp
The file was modifiedmlir/include/mlir/Rewrite/PatternApplicator.h
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/ConvertSPIRVToLLVMPass.cpp
The file was modifiedmlir/lib/Transforms/Canonicalizer.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/Transforms/LowerABIAttributesPass.cpp
The file was modifiedmlir/lib/Dialect/StandardOps/Transforms/Bufferize.cpp
The file was modifiedmlir/lib/Conversion/SCFToStandard/SCFToStandard.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/CodegenStrategy.cpp
The file was modifiedmlir/examples/toy/Ch5/mlir/LowerToAffineLoops.cpp
The file was modifiedmlir/lib/Dialect/Quant/Transforms/ConvertSimQuant.cpp
The file was modifiedmlir/lib/Conversion/AVX512ToLLVM/ConvertAVX512ToLLVM.cpp
The file was modifiedmlir/lib/Dialect/SCF/Transforms/Bufferize.cpp
The file was modifiedmlir/lib/Conversion/StandardToSPIRV/LegalizeStandardForSPIRV.cpp
The file was modifiedmlir/examples/toy/Ch7/mlir/LowerToLLVM.cpp
The file was modifiedmlir/include/mlir/Transforms/GreedyPatternRewriteDriver.h
The file was modifiedmlir/examples/toy/Ch6/mlir/LowerToLLVM.cpp
The file was modifiedmlir/lib/Dialect/Shape/Transforms/ShapeToShapeLowering.cpp
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Bufferize.cpp
The file was modifiedmlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Tiling.cpp
The file was modifiedmlir/lib/Dialect/Quant/Transforms/ConvertConst.cpp
The file was modifiedmlir/test/lib/Transforms/TestExpandTanh.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
The file was modifiedmlir/test/lib/Transforms/TestVectorTransforms.cpp
The file was modifiedmlir/lib/Conversion/SCFToGPU/SCFToGPUPass.cpp
The file was modifiedmlir/lib/Dialect/Shape/Transforms/Bufferize.cpp
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
The file was modifiedmlir/lib/Transforms/Utils/DialectConversion.cpp
The file was modifiedmlir/lib/Conversion/ShapeToStandard/ShapeToStandard.cpp
The file was modifiedmlir/lib/Rewrite/PatternApplicator.cpp
The file was modifiedmlir/lib/Dialect/Affine/Transforms/SimplifyAffineStructures.cpp
The file was modifiedmlir/lib/Transforms/Utils/GreedyPatternRewriteDriver.cpp
The file was modifiedmlir/lib/Conversion/LinalgToSPIRV/LinalgToSPIRVPass.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Loops.cpp
The file was modifiedmlir/include/mlir/Transforms/DialectConversion.h
The file was modifiedmlir/lib/Conversion/OpenMPToLLVM/OpenMPToLLVM.cpp
The file was modifiedmlir/lib/Conversion/VectorToSPIRV/VectorToSPIRV.cpp
The file was modifiedmlir/test/lib/Transforms/TestBufferPlacement.cpp
The file was modifiedmlir/test/lib/Transforms/TestLinalgFusionTransforms.cpp
The file was modifiedmlir/test/lib/Dialect/Test/TestTraits.cpp
Commit 52821f6a71a568f966427b627839d40641653757 by Duncan P. N. Exon Smith
IR: Add a comment at missing std::make_unique calls from b2b7cf39d596b1528cd64015575b3f5d1461c011, NFC
The file was modifiedllvm/lib/IR/Constants.cpp
Commit 0efbfa38ae009c1d5a47ba84c3ba9b9681689996 by tu.da.wei
[NPM] Port -slsr to NPM

`-separate-const-offset-from-gep` has not yet be ported, so some tests are not updated.

Reviewed By: aeubanks

Differential Revision: https://reviews.llvm.org/D90149
The file was modifiedllvm/test/Transforms/StraightLineStrengthReduce/AMDGPU/pr23975.ll
The file was modifiedllvm/lib/Transforms/Scalar/Scalar.cpp
The file was modifiedllvm/test/Transforms/StraightLineStrengthReduce/X86/no-slsr.ll
The file was modifiedllvm/test/Transforms/StraightLineStrengthReduce/slsr-add.ll
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was addedllvm/include/llvm/Transforms/Scalar/StraightLineStrengthReduce.h
The file was modifiedllvm/include/llvm/InitializePasses.h
The file was modifiedllvm/test/Transforms/StraightLineStrengthReduce/slsr-mul.ll
The file was modifiedllvm/test/Transforms/StraightLineStrengthReduce/slsr-gep.ll
Commit 7a880ab3889227469c5d6f0d5579f32747420234 by carl.ritson
[AMDGPU] Move WQM Pass after MI Scheduler

Exec mask manipulation inserted by SIWholeQuadMode barriers to
instruction scheduling.  Move the entire pass after the machine
instruction scheduler and make changes so pass is correct for
non-SSA operation.  These changes should leave the pass still
usable pre-scheduler, although tests have be updated to reflect
post-scheduler results.

Reviewed By: nhaehnle

Differential Revision: https://reviews.llvm.org/D88081
The file was modifiedllvm/test/CodeGen/AMDGPU/atomic_optimizations_raw_buffer.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.dim.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.gather4.dim.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.a16.dim.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.sample.d16.dim.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.gather4.o.dim.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.image.gather4.a16.dim.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.softwqm.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/wqm.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/wwm-reserved.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.image.gather4.a16.dim.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/atomic_optimizations_buffer.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.ps.live.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/atomic_optimizations_pixelshader.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/atomic_optimizations_struct_buffer.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
Commit aaf7ffd4e1aa81c7f4cc8da4f943982ca2e131f4 by chandlerc
Teach `-fsanitize=fuzzer` to respect `-static` and `-static-libstdc++` when adding C++ standard libraries.

Summary:
Makes linking the sanitizers follow the same logic as the rest of the
driver with respect to the static linking strategy for the C++ standard
library.

Subscribers: mcrosier, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D80488
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.cpp
The file was modifiedclang/test/Driver/fuzzer.c
Commit 470d2d1d28c6ffa45cc40ad8c35cb79851741131 by craig.topper
Update email addresses in CODE_OWNERS.
The file was modifiedllvm/CODE_OWNERS.TXT
Commit ebb4ea1d53aaccd91138bfd6afdc9b39fd784d83 by Duncan P. N. Exon Smith
IR: Simplify two loops walking ConstantDataSequential, NFC

Follow-up to b2b7cf39d596b1528cd64015575b3f5d1461c011.

Differential Revision: https://reviews.llvm.org/D90198
The file was modifiedllvm/lib/IR/Constants.cpp
Commit f057e6dc5e29751dbba700bc62d8c42c57a502b0 by Duncan P. N. Exon Smith
SourceManager: clang-format the SrcMgr namespace, NFC
The file was modifiedclang/include/clang/Basic/SourceManager.h
Commit 00e573cadb2791804fd0859d0ee05b27b702e11e by czhengsz
[LSR] fix typo in comments and rename for a new added hook.
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
The file was modifiedllvm/include/llvm/CodeGen/BasicTTIImpl.h
The file was modifiedllvm/lib/Target/PowerPC/PPCTargetTransformInfo.h
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfoImpl.h
The file was modifiedllvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp
The file was modifiedllvm/include/llvm/Analysis/TargetTransformInfo.h
The file was modifiedllvm/lib/Analysis/TargetTransformInfo.cpp
Commit e20d64c3d9d81cad701f31d8481367222c76c787 by tianshilei1992
[Clang][OpenMP] Fixed an issue of segment fault when using target nowait

The implementation of target nowait just wraps the target region into a task. The essential four parameters (base ptr, ptr, size, mapper) are taken as firstprivate such that they will be copied to the private location. When there is no user-defined mapper, the mapper variable will be nullptr. However, it will be still copied to the corresponding place. Therefore, a memcpy will be generated and the source pointer will be nullptr, causing a segmentation fault. The root cause is when calling `emitOffloadingArraysArgument`, the last argument `Options` has a field about whether it requires a task. It only takes depend clause into account. In this patch, the nowait clause is also included.

There're two things that will be done in another patches:
1. target data nowait has not been supported yet. D90099 added the support.
2. When there is no mapper, the mapper array can be nullptr no matter whether it requires outer task or not. It can avoid an unnecessary data copy. This is an optimization that is covered in D90101.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D89844
The file was addedopenmp/libomptarget/test/offloading/bug47654.cpp
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.cpp
Commit 67f52f35d62b25f929646e972287c7b5397a044e by riddleriver
[mlir][StorageUniquer] Refactor parametric storage to use sharded dense sets

This revisions implements sharding in the storage of parametric instances to decrease lock contention by sharding out the allocator/mutex/etc. to use for a specific storage instance based on the hash key. This is a somewhat common approach to reducing lock contention on data structures, and is used by the concurrent hashmaps provided by folly/java/etc. For several compilations tested, this removed all/most lock contention from profiles and reduced compile time by several seconds.

Differential Revision: https://reviews.llvm.org/D89659
The file was modifiedmlir/include/mlir/Support/StorageUniquer.h
The file was modifiedmlir/lib/Support/StorageUniquer.cpp
Commit eda450bb27c4638ba191deaa92526c5ad0fcb87f by riddleriver
[mlir][SymbolTable] Use Identifier instead of StringRef when looking up symbol name attributes

Using an Identifier is much more efficient for attribute lookups because it uses pointer comparison as opposed to string comparison.

Differential Revision: https://reviews.llvm.org/D89660
The file was modifiedmlir/lib/IR/SymbolTable.cpp
Commit 90c0b0d3d67caf8d64b04b3e2cfb9b7ef0fbbd74 by aeubanks
Port -objc-arc-apelim to NPM

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D90181
The file was modifiedllvm/lib/Transforms/ObjCARC/ObjCARCAPElim.cpp
The file was modifiedllvm/include/llvm/Transforms/ObjCARC.h
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was modifiedllvm/test/Transforms/ObjCARC/apelim.ll
Commit 3dd1c724581ab7aab8bae7bb6e0566c52b1f9a9d by aeubanks
Port -objc-arc-expand to NPM

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D90182
The file was modifiedllvm/include/llvm/Transforms/ObjCARC.h
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was modifiedllvm/lib/Transforms/ObjCARC/ObjCARCExpand.cpp
The file was modifiedllvm/test/Transforms/ObjCARC/expand.ll
Commit a87f618ea7950f096093953b41baba24775b397f by aeubanks
[PlaceSafepoints] Pin tests to legacy PM

This pass isn't used in tree and can be ported to the NPM later on if desired.

Differential Revision: https://reviews.llvm.org/D90189
The file was modifiedllvm/test/Transforms/PlaceSafepoints/statepoint-frameescape.ll
The file was modifiedllvm/test/Transforms/PlaceSafepoints/split-backedge.ll
The file was modifiedllvm/test/Transforms/PlaceSafepoints/finite-loops.ll
The file was modifiedllvm/test/Transforms/PlaceSafepoints/libcall.ll
The file was modifiedllvm/test/Transforms/PlaceSafepoints/no-statepoints.ll
The file was modifiedllvm/test/Transforms/PlaceSafepoints/statepoint-coreclr.ll
The file was modifiedllvm/test/Transforms/PlaceSafepoints/memset.ll
The file was modifiedllvm/test/Transforms/PlaceSafepoints/call-in-loop.ll
The file was modifiedllvm/test/Transforms/PlaceSafepoints/basic.ll
Commit 504fbec7a61cdfbb5f6e1b25cf14afe5195ccaf6 by aeubanks
[AlwaysInliner] Pass callee AAResults to InlineFunction()

Test copied from noalias-calls.ll with small changes.

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D89609
The file was modifiedllvm/lib/Transforms/IPO/AlwaysInliner.cpp
The file was addedllvm/test/Transforms/Inline/noalias-calls-always.ll