SuccessChanges

Summary

  1. [StackSafety,NFC] Add debug counters (details)
  2. [StackSafety,NFC] Sort llvm-lto2 resolutions in tests (details)
  3. [StackSafety,NFC] Add more tests (details)
  4. [Attributor] Check violation of returned position nonnull and noundef attribute in AAUndefinedBehavior (details)
  5. [flang] Improve message for assignment to subprogram (details)
  6. [StackSafety,NFC] Fix tests in debug (details)
  7. [AArch64][NFC] require aarch64 support for hwasan test (details)
  8. [Polly] Support linking ScopPassManager against LLVM dylib (details)
  9. [Scheduling] Create the missing dependency edges for store cluster (details)
  10. [PowerPC] Support constrained fp operation for setcc (details)
  11. [PowerPC] Implement Vector Extract Low/High Order Builtins in LLVM/Clang (details)
  12. [LLDB] Mark test_launch_simple as a no-debug-info test (details)
  13. [SVE][CodeGen] Fix bug with store of unpacked FP scalable vectors (details)
  14. [NFC] Add the stats for load/store cluster (details)
  15. [clangd] Highlight structured bindings at local scope as LocalVariable (details)
  16. [Test] Add one more test on IndVars that was failing on one of older builds (details)
  17. Revert "[CMake] Simplify CMake handling for zlib" (details)
  18. [clang, test, Darwin] Fix tests expecting Darwin target (details)
  19. [Attributor] AAPotentialValues Interface (details)
  20. [SyntaxTree][NFC] remove redundant namespace-specifiers (details)
  21. [DebugInfo] Clean up DIEUnit. NFC. (details)
  22. [DebugInfo] Remove DwarfUnit::getDwarfVersion(). NFC. (details)
  23. [AST][RecoveryExpr] Fix the missing type when rebuilding RecoveryExpr in TreeTransform. (details)
  24. [VE] Remove obsoleted getVEAsmModeForCPU function (details)
  25. [VE] Change to expand multiply related instructions (details)
  26. [NFC] Replace hasName in loop for hasAnyName (details)
  27. [clangd] Include the underlying decls in go-to-definition. (details)
  28. [AArch64] Disable waitid.cpp test for AArch64 (details)
  29. [Test] Added test showing missing range check elimination opportunity in IndVars (details)
  30. [mlir][Vector] Add 2-D vector contract lowering to ReduceOp (details)
  31. [NFC][Test] Format the test with script update_llc_test_checks.py (details)
  32. [SLP][X86] Add abs/smax/smin/umax/umin intrinsic vectorization tests (details)
  33. Remove unreachable return (PR47026) (details)
  34. [Sema][BFloat] Forbid arithmetic on vectors of bfloat. (details)
  35. Remove unreachable return (PR47028) (details)
  36. [SLP][X86] Add smax intrinsic reduction tests (details)
  37. Remove duplicate/unreachable break (PR47029) (details)
  38. Remove unreachable break. NFC (details)
  39. [DAG] GetDemandedBits - remove custom AND handling. (details)
  40. [mlir] take LLVMContext in MLIR-to-LLVM-IR translation (details)
  41. [mlir] do not require LLVMDialect in conversion from LLVM IR (details)
  42. [mlir] Remove llvm::LLVMContext and llvm::Module from mlir::LLVMDialectImpl (details)
  43. BEGIN_PUBLIC (details)
  44. [macho2yaml] Remove unused functions. NFC. (details)
  45. [Sema] Add casting check for fixed to fixed point conversions (details)
  46. [clangd] Fix a typo, NFC. (details)
  47. [LangRef] Minor fixes to intrinsic headers and descriptions. NFC. (details)
  48. [Intrinsic] Add sshl.sat/ushl.sat, saturated shift intrinsics. (details)
  49. [Fixed Point] Add fixed-point shift operations and consteval. (details)
  50. [NFC][GVN] Fix "avaliable" typos (details)
  51. [PowerPC] Add compatibility check for PPC PLT stubs (details)
  52. [OPENMP]Simplify representation for atomic, critical, master and section (details)
  53. [PowerPC][PCRelative] Set TLS unsupported with PC relative memops (details)
  54. Revisit Dialect registration: require and store a TypeID on dialects (details)
  55. [PowerPC] Add Vector Extract/Expand/Count with Mask, Move to VSR Mask Instruction Definitions and MC Tests (details)
  56. [ARM] Extra reduction plus tailpredication tests. NFC (details)
  57. [mlir] [VectorOps] Improve lowering of extract_strided_slice (and friends like shape_cast) (details)
  58. [NFC] Add utility to sum/merge stats files (details)
  59. [flang] Remove extra CMAKE_CXX_FLAGS in Lower and Optimizer (details)
  60. [analyzer] pr47030: MoveChecker: Unforget a comma in the suppression list. (details)
  61. Make clang HIP headers compatible with C++98 (details)
  62. Revert "Reland D64327 [MC][ELF] Allow STT_SECTION referencing SHF_MERGE on REL targets" (details)
  63. [NewPM] Only verify loop for nonskipped user loop pass (details)
  64. [NewPM][CodeGen] Introduce machine pass and machine pass manager (details)
  65. [lld-macho] Ensure .tbss sections are also considered as ZeroFilled (details)
  66. [lld-macho] Support static linking of thread-locals (details)
  67. [lld-macho] Add .tbd support for frameworks (details)
  68. [SyntaxTree] Use simplified grammar rule for `NestedNameSpecifier` grammar nodes (details)
  69. [Clang] Add note for bad conversion when expression is pointer to forward-declared type (details)
  70. [lldb] Store the Apple SDK in dotest's configuration. (details)
  71. [AMDGPU] Fix not rescheduling without clustering (details)
  72. [NFC] Use value initializer for OVERLAPPED (details)
  73. [gn build] Port 911565d1085 (details)
  74. [PPC] Rename bool-ret-to-int -> ppc-bool-ret-to-int (details)
  75. [mlir] Introduce AffineMinSCF folding as a pattern (details)
  76. Reduce dropTriviallyDeadConstantArrays cumulative time percentage from 17% to 4% (details)
  77. [mlir][SCF] Add utility to outline the then and else branches of an scf.IfOp (details)
  78. Revert "[NewPM][CodeGen] Introduce machine pass and machine pass manager" (details)
  79. [gn build] Port 320eab2d558 (details)
  80. [flang][NFC] Reformat files with current clang-format (details)
  81. [mlir][spirv] Add correct handling of Kernel and Addresses capabilities (details)
  82. [MLIR] Add getSizeInBits() for tensor of complex (details)
  83. Revert "[MSAN] Instrument libatomic load/store calls" (details)
  84. [llvm-install-name-tool] Adds docs for llvm-install-name-tool (details)
  85. [lldb] Only check for --apple-sdk argument on Darwin (details)
  86. [flang] Descriptor-based I/O data item transfers (details)
  87. [libc] Add strcpsn and strpbrk implementation. (details)
  88. [flang] Support DATA statement initialization of numeric with Hollerith/CHARACTER (details)
  89. [FileCheck] Add docs for --allow-empty (details)
  90. lldbutil: add a retry mechanism for the ios simulator (details)
  91. GlobalISel: Handle zext(sext x) in artifact combiner (details)
  92. [ELF]: --icf: don't fold sections referencing sections with LCDA after D84610 (details)
  93. [mlir] Refactor StorageUniquer to require registration of possible storage types (details)
  94. [mlir] Add a utility class, ThreadLocalCache, for storing non static thread local objects. (details)
  95. [mlir][Types] Remove the subclass data from Type (details)
  96. [mlir] Remove the need to define `kindof` on attribute and type classes. (details)
  97. [mlir][Attribute] Remove usages of Attribute::getKind (details)
  98. [mlir][Type] Remove usages of Type::getKind (details)
  99. [flang] Update FirOpsDialect constructor to pass its TypeID (details)
  100. Add symlinks for `libtool` and `install_name_tool` (details)
  101. [OpenMP] Split OpenMP/target_map_codegen test [NFC] (details)
  102. [OpenMP,MLIR] Translation of parallel operation: num_threads, if clauses 3/n (details)
  103. [StackSafety,NFC] Add Stats counters (details)
  104. Revert "[StackSafety] Skip ambiguous lifetime analysis" (details)
Commit 58b95c9b2bb7d3a1422f79e6d53f5e0c5a4a0387 by Vitaly Buka
[StackSafety,NFC] Add debug counters
The file was modifiedllvm/lib/Analysis/StackSafetyAnalysis.cpp (diff)
Commit d97636196af1835d16c75a4786b6ebede2bf4cfc by Vitaly Buka
[StackSafety,NFC] Sort llvm-lto2 resolutions in tests
The file was modifiedllvm/test/Analysis/StackSafetyAnalysis/ipa.ll (diff)
The file was modifiedllvm/test/Analysis/StackSafetyAnalysis/ipa-alias.ll (diff)
Commit 39cbcbe1b1e58cbc51755522f69d1c9d43fc709f by Vitaly Buka
[StackSafety,NFC] Add more tests
The file was modifiedllvm/test/Analysis/StackSafetyAnalysis/ipa.ll (diff)
The file was modifiedllvm/test/Analysis/StackSafetyAnalysis/Inputs/ipa.ll (diff)
Commit f13f2e16f00e8d23b49b0dfc58d63adc052d0222 by okuraofvegetable
[Attributor] Check violation of returned position nonnull and noundef attribute in AAUndefinedBehavior

This patch is a follow up of D84733.
If a function has noundef attribute in returned position, instructions that return undef or poison value cause UB.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D85178
The file was modifiedllvm/test/Transforms/Attributor/undefined_behavior.ll (diff)
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp (diff)
Commit d8713523a2f5847ca69c8ef172578a915c129fe8 by tkeith
[flang] Improve message for assignment to subprogram

In the example below we were producing the error message
"Assignment to constant 'f' is not allowed":
```
function f() result(r)
  f = 1.0
end
```

This changes it to a more helpful message when the LHS is a subprogram
name and also mentions the function result name when it's a function.

Differential Revision: https://reviews.llvm.org/D85483
The file was modifiedflang/lib/Semantics/expression.cpp (diff)
The file was modifiedflang/test/Semantics/assign04.f90 (diff)
Commit 7fb9de2c6f575d807e614ed6021736ba701876a8 by Vitaly Buka
[StackSafety,NFC] Fix tests in debug
The file was modifiedllvm/test/Analysis/StackSafetyAnalysis/ipa.ll (diff)
The file was modifiedllvm/lib/Analysis/StackSafetyAnalysis.cpp (diff)
Commit c530539badd58e11eb5c1aa426d8e3eba96f07d3 by sameer.sahasrabuddhe
[AArch64][NFC] require aarch64 support for hwasan test

This was breaking builds where the target is not enabled.

Reviewed By: danielkiss, eugenis

Differential Revision: https://reviews.llvm.org/D85412
The file was modifiedcompiler-rt/test/hwasan/TestCases/exported-tagged-global.c (diff)
Commit 96b02808afa7eb043b9968b07424cc96bc8d94a6 by mgorny
[Polly] Support linking ScopPassManager against LLVM dylib

Link ScopPassManager to LLVM dylib target if LLVM_LINK_LLVM_DYLIB
is enabled.  This fixes build failures on systems where static LLVM
libraries are not installed.

Differential Revision: https://reviews.llvm.org/D85281
The file was modifiedpolly/unittests/ScopPassManager/CMakeLists.txt (diff)
Commit 3359ea62edcc5f1d5831bebc2075746031cd22c5 by qshanz
[Scheduling] Create the missing dependency edges for store cluster

If it is load cluster, we don't need to create the dependency edges(SUb->reg) from SUb to SUa
as they both depend on the base register "reg"

     +-------+
+---->  reg  |
|    +---+---+
|        ^
|        |
|        |
|        |
|    +---+---+
|    |  SUa  |  Load 0(reg)
|    +---+---+
|        ^
|        |
|        |
|    +---+---+
+----+  SUb  |  Load 4(reg)
     +-------+

But if it is store cluster, we need to create it as follow shows to avoid the instruction store
depend on scheduled in-between SUb and SUa.

     +-------+
+---->  reg  |
|    +---+---+
|        ^
|        |         Missing       +-------+
|        | +-------------------->+   y   |
|        | |                     +---+---+
|    +---+-+-+                       ^
|    |  SUa  |  Store x 0(reg)       |
|    +---+---+                       |
|        ^                           |
|        |  +------------------------+
|        |  |
|    +---+--++
+----+  SUb  |  Store y 4(reg)
     +-------+

Reviewed By: evandro, arsenm, rampitec, foad, fhahn

Differential Revision: https://reviews.llvm.org/D72031
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/extractelement-stack-lower.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/store-weird-sizes.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/call-argument-types.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/callee-special-input-vgprs.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/insertelement-stack-lower.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/aarch64-stp-cluster.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/fshr.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/stack-realign.ll (diff)
The file was modifiedllvm/lib/CodeGen/MachineScheduler.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/half.ll (diff)
Commit 55de46f3b2c5651b06e4739209907f14ab781d89 by qshanz
[PowerPC] Support constrained fp operation for setcc

The constrained fp operation fcmp was added by https://reviews.llvm.org/D69281.
This patch is trying to add the support for PowerPC backend.

Reviewed By: uweigand

Differential Revision: https://reviews.llvm.org/D81727
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrInfo.td (diff)
The file was modifiedllvm/include/llvm/Target/TargetSelectionDAG.td (diff)
The file was modifiedllvm/lib/Target/PowerPC/P9InstrResources.td (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp (diff)
The file was addedllvm/test/CodeGen/PowerPC/fp-strict-fcmp.ll
Commit cce1b0e8919e9b0036f5debe60865575520df1c7 by biplmish
[PowerPC] Implement Vector Extract Low/High Order Builtins in LLVM/Clang

This patch implements the function prototypes vec_extractl and vec_extracth in altivec.h to utilize the vector extract double element instructions introduced in Power10.

Differential Revision: https://reviews.llvm.org/D84622
The file was modifiedclang/test/CodeGen/builtins-ppc-p10vector.c (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td (diff)
The file was modifiedllvm/test/CodeGen/PowerPC/builtins-ppc-p10permute.ll (diff)
The file was modifiedclang/include/clang/Basic/BuiltinsPPC.def (diff)
The file was modifiedllvm/include/llvm/IR/IntrinsicsPowerPC.td (diff)
The file was modifiedclang/lib/Headers/altivec.h (diff)
Commit dbf44b833067cfe59056d07130e7afcb8fc149c7 by Jonas Devlieghere
[LLDB] Mark test_launch_simple as a no-debug-info test

No need to run this test with the multiple variants.
The file was modifiedlldb/test/API/python_api/target/TestTargetAPI.py (diff)
Commit 0905d9f31ead399d054c5d2a2c353e690f5c8daa by david.sherwood
[SVE][CodeGen] Fix bug with store of unpacked FP scalable vectors

Fixed an incorrect pattern in lib/Target/AArch64/AArch64SVEInstrInfo.td
for storing out <vscale x 2 x f32> unpacked scalable vectors. Added
a couple of tests to

  test/CodeGen/AArch64/sve-st1-addressing-mode-reg-imm.ll

Differential Revision: https://reviews.llvm.org/D85441
The file was modifiedllvm/test/CodeGen/AArch64/sve-st1-addressing-mode-reg-imm.ll (diff)
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td (diff)
Commit 2b2bfdb474da0bf070a8e5a06f704a37a06500d6 by qshanz
[NFC] Add the stats for load/store cluster

We have the stats for MacroFusion but miss it for load/store cluster.
The file was modifiedllvm/lib/CodeGen/MachineScheduler.cpp (diff)
Commit 57f9518bf032d773c35c86ec99983a47849fd322 by zeratul976
[clangd] Highlight structured bindings at local scope as LocalVariable

Differential Revision: https://reviews.llvm.org/D85500
The file was modifiedclang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp (diff)
The file was modifiedclang-tools-extra/clangd/SemanticHighlighting.cpp (diff)
Commit 9b49a4d30120801aca5962504fc039c3fd6b2007 by mkazantsev
[Test] Add one more test on IndVars that was failing on one of older builds
The file was addedllvm/test/Transforms/IndVarSimplify/sentinel.ll
Commit f3cc4df51da4331b170065e01a6a80ee05ed0c23 by kuhnel
Revert "[CMake] Simplify CMake handling for zlib"

This reverts commit 1adc494bce44f6004994deed61b30d4b71fe1d05.
This patch broke the Windows compilation on buildbot and pre-merge testing:
http://lab.llvm.org:8011/builders/mlir-windows/builds/5945
https://buildkite.com/llvm-project/llvm-master-build/builds/780
The file was modifiedclang/test/CMakeLists.txt (diff)
The file was modifiedllvm/test/CMakeLists.txt (diff)
The file was modifiedclang/test/lit.site.cfg.py.in (diff)
The file was modifiedlld/test/CMakeLists.txt (diff)
The file was modifiedllvm/utils/gn/secondary/llvm/test/BUILD.gn (diff)
The file was modifiedllvm/utils/gn/secondary/compiler-rt/test/BUILD.gn (diff)
The file was modifiedlld/test/lit.site.cfg.py.in (diff)
The file was modifiedllvm/include/llvm/Config/config.h.cmake (diff)
The file was modifiedllvm/utils/gn/secondary/lld/test/BUILD.gn (diff)
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp (diff)
The file was modifiedllvm/cmake/modules/LLVMConfig.cmake.in (diff)
The file was modifiedllvm/lib/Support/CMakeLists.txt (diff)
The file was modifiedllvm/lib/Support/CRC.cpp (diff)
The file was modifiedcompiler-rt/test/lit.common.configured.in (diff)
The file was modifiedlldb/cmake/modules/LLDBStandalone.cmake (diff)
The file was modifiedllvm/test/lit.site.cfg.py.in (diff)
The file was modifiedllvm/cmake/config-ix.cmake (diff)
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp (diff)
The file was modifiedllvm/unittests/Support/CompressionTest.cpp (diff)
The file was modifiedllvm/utils/gn/secondary/clang/test/BUILD.gn (diff)
The file was modifiedllvm/lib/Support/Compression.cpp (diff)
The file was modifiedllvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn (diff)
Commit 6dc863cd858f32ef0060c46edda2ab56a3cf76b4 by thomasp
[clang, test, Darwin] Fix tests expecting Darwin target

Clang tests Driver/apple-arm64-arch.c and
Driver/darwin-warning-options.c test Darwin driver functionality but
only require the host system to be Darwin. This leads the tests to fail
when building a cross-compiler on Darwin and to be marked unsupported
when cross-compiling to Darwin from another system. This commit changes
the requirements for those tests to require the target to be Darwin.

Reviewed By: steven_wu

Differential Revision: https://reviews.llvm.org/D85367
The file was modifiedclang/test/Driver/darwin-warning-options.c (diff)
The file was modifiedclang/test/Driver/apple-arm64-arch.c (diff)
Commit c575ba28de2f24cb2fd602780029bdaa8e0ce4a5 by okuraofvegetable
[Attributor] AAPotentialValues Interface

This is a split patch of D80991.
This patch introduces AAPotentialValues and its interface only.
For more detail of AAPotentialValues abstract attribute, see the original patch.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D83283
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h (diff)
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp (diff)
The file was addedllvm/test/Transforms/Attributor/potential.ll
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp (diff)
Commit ba41a0f7339c8cbd065f032cc5f8c1d87a74e124 by ecaldas
[SyntaxTree][NFC] remove redundant namespace-specifiers

Differential Revision: https://reviews.llvm.org/D85427
The file was modifiedclang/lib/Tooling/Syntax/Nodes.cpp (diff)
The file was modifiedclang/unittests/Tooling/Syntax/TreeTest.cpp (diff)
The file was modifiedclang/include/clang/Tooling/Syntax/Nodes.h (diff)
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp (diff)
The file was modifiedclang/lib/Tooling/Syntax/Tree.cpp (diff)
The file was modifiedclang/include/clang/Tooling/Syntax/Tree.h (diff)
Commit b6b0ff18a3126500361223088aabafa8ea74d779 by ikudrin
[DebugInfo] Clean up DIEUnit. NFC.

This removes members of the DIEUnit class which were used only in unit
tests. Note also that child classes shadowed some of these methods,
namely, getDwarfVersion() was overridden in DwartfUnit and getLength()
was overridden in DwarfCompileUnit.

Differential Revision: https://reviews.llvm.org/D85436
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DIE.cpp (diff)
The file was modifiedllvm/unittests/DebugInfo/DWARF/DwarfGenerator.h (diff)
The file was modifiedllvm/include/llvm/DWARFLinker/DWARFLinkerCompileUnit.h (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp (diff)
The file was modifiedllvm/include/llvm/CodeGen/DIE.h (diff)
Commit 1eade73d8b0d8a08e7f3a62856a1f2004a046efb by ikudrin
[DebugInfo] Remove DwarfUnit::getDwarfVersion(). NFC.

This helper method was used only in one place, which can easily use the
direct call.

Differential revision: https://reviews.llvm.org/D85438
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp (diff)
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.h (diff)
Commit 67174765db527ed1911f33109a34026f3913601d by hokein.wu
[AST][RecoveryExpr] Fix the missing type when rebuilding RecoveryExpr in TreeTransform.

Differential Revision: https://reviews.llvm.org/D85423
The file was addedclang/test/SemaTemplate/recovery-tree-transform-crash.cpp
The file was modifiedclang/lib/Sema/TreeTransform.h (diff)
Commit 3ac1eb6358b172f54788def4125f80ddd9170d8e by marukawa
[VE] Remove obsoleted getVEAsmModeForCPU function

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D85507
The file was modifiedclang/lib/Driver/ToolChains/Arch/VE.cpp (diff)
The file was modifiedclang/lib/Driver/ToolChains/Arch/VE.h (diff)
Commit 63bc5d7863296acbf4a824b0178e80c073c08726 by marukawa
[VE] Change to expand multiply related instructions

Change to expand MULHU/MULHS/UMUL_LOHI/SMUL_LOHI for i32 and i64 since
those instructions are not available on Aurora SX VE.  Some of them
are used in expansion of i128 multiply, so need to modify them to
support i128.  Then, update basic arithmetic regression tests of
i128 and signed/unsigned i32 typed integer values.

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D85490
The file was modifiedllvm/test/CodeGen/VE/multiply.ll (diff)
The file was modifiedllvm/test/CodeGen/VE/rem.ll (diff)
The file was modifiedllvm/test/CodeGen/VE/addition.ll (diff)
The file was modifiedllvm/test/CodeGen/VE/subtraction.ll (diff)
The file was modifiedllvm/lib/Target/VE/VEISelLowering.cpp (diff)
The file was modifiedllvm/test/CodeGen/VE/div.ll (diff)
Commit 01bc708126c55c94495d0b55cb2003f67b9b24bf by n.james93
[NFC] Replace hasName in loop for hasAnyName
The file was modifiedclang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp (diff)
Commit a70161808bcd6560e268aecf90138ff68f41fe54 by hokein.wu
[clangd] Include the underlying decls in go-to-definition.

Fixes https://github.com/clangd/clangd/issues/277

Reviewed By: sammccall

Differential Revision: https://reviews.llvm.org/D74054
The file was modifiedclang-tools-extra/clangd/unittests/XRefsTests.cpp (diff)
The file was modifiedclang-tools-extra/clangd/XRefs.cpp (diff)
Commit be8b3f0c22048519f8a226e46f6a616806a8e558 by oliver.stannard
[AArch64] Disable waitid.cpp test for AArch64

This test is failing intermittently on the AArch64 build bots, disable
it for now to keep the bots green while we investigate it.
The file was modifiedcompiler-rt/test/asan/TestCases/Posix/waitid.cpp (diff)
Commit da9e7b1ab03be92b0c3060cf149ab882d61e634f by mkazantsev
[Test] Added test showing missing range check elimination opportunity in IndVars

Seems that SCEV is not powerful enough to handle this.
The file was addedllvm/test/Analysis/ScalarEvolution/predicated_ranges.ll
Commit 3f906c54a2def26ba0c407a309c7c30ce0e0cc83 by ntv
[mlir][Vector] Add 2-D vector contract lowering to ReduceOp

This new pattern mixes vector.transpose and direct lowering to vector.reduce.
This allows more progressive lowering than immediately going to insert/extract and
composes more nicely with other canonicalizations.
This has 2 use cases:
1. for very wide vectors the generated IR may be much smaller
2. when we have a custom lowering for transpose ops we can target it directly
rather than rely LLVM

Differential Revision: https://reviews.llvm.org/D85428
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp (diff)
The file was modifiedmlir/include/mlir/Interfaces/VectorInterfaces.td (diff)
The file was modifiedmlir/test/Dialect/Vector/vector-contract-transforms.mlir (diff)
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorTransforms.h (diff)
Commit 1ffb468369607e0ccf6e6790965471019dbb7357 by qshanz
[NFC][Test] Format the test with script update_llc_test_checks.py
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.round.f64.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/sgpr-control-flow.ll (diff)
Commit aa38e97ad5e44a933760a026e7a5239bb400d72b by llvm-dev
[SLP][X86] Add abs/smax/smin/umax/umin intrinsic vectorization tests
The file was addedllvm/test/Transforms/SLPVectorizer/X86/arith-umax.ll
The file was addedllvm/test/Transforms/SLPVectorizer/X86/arith-smin.ll
The file was addedllvm/test/Transforms/SLPVectorizer/X86/arith-umin.ll
The file was addedllvm/test/Transforms/SLPVectorizer/X86/arith-abs.ll
The file was addedllvm/test/Transforms/SLPVectorizer/X86/arith-smax.ll
Commit 24cca30f7f0de49e77af7e8c7719680daec2418e by llvm-dev
Remove unreachable return (PR47026)
The file was modifiedclang/lib/Basic/Targets/Mips.cpp (diff)
Commit 1d782942500b2cbc9765ccf16264bb498850cefb by simon.tatham
[Sema][BFloat] Forbid arithmetic on vectors of bfloat.

Vectors of bfloat are a storage format only; you're supposed to
explicitly convert them to a wider type to do arithmetic on them.
But currently, if you write something like

  bfloat16x4_t test(bfloat16x4_t a, bfloat16x4_t b) { return a + b; }

then the clang frontend accepts it without error, and (ARM or AArch64)
isel fails to generate code for it.

Added a rule in Sema that forbids the attempt from even being made,
and tests that check it. In particular, we also outlaw arithmetic
between vectors of bfloat and any other vector type.

Patch by Luke Cheeseman.

Reviewed By: LukeGeeson

Differential Revision: https://reviews.llvm.org/D85009
The file was modifiedclang/test/Sema/arm-bfloat.cpp (diff)
The file was modifiedclang/lib/Sema/SemaExpr.cpp (diff)
Commit ffd258f7bbba2a65800970fcea6648fb285d95f4 by llvm-dev
Remove unreachable return (PR47028)
The file was modifiedclang/lib/Driver/ToolChains/Arch/Mips.cpp (diff)
Commit f35992b75b4e437fc34a008bbf7b9cacf042a5bc by llvm-dev
[SLP][X86] Add smax intrinsic reduction tests

SLP currently only matches the ICMP+SELECT patterns for min/max reductions
The file was addedllvm/test/Transforms/SLPVectorizer/X86/horizontal-smax.ll
Commit 18212cbcdadd130e5b2d1bc2bb38e4396ef8a46f by llvm-dev
Remove duplicate/unreachable break (PR47029)
The file was modifiedclang/lib/Sema/SemaType.cpp (diff)
Commit fcefb532225110be5e73ba0f6285cb869bb56148 by llvm-dev
Remove unreachable break. NFC
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (diff)
Commit 66a163f32817faa63e3717eb8ff1fe4188626c75 by llvm-dev
[DAG] GetDemandedBits - remove custom AND handling.

As mentioned on D85463, we should be using SimplifyMultipleUseDemandedBits (which is the default fallback).

The minor regression in illegal-bitfield-loadstore.ll will be addressed properly by D77804.
The file was modifiedllvm/test/CodeGen/ARM/illegal-bitfield-loadstore.ll (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (diff)
Commit db1c197bf8247d8dced41ae2f579168c7b54d9ef by zinenko
[mlir] take LLVMContext in MLIR-to-LLVM-IR translation

Due to the original type system implementation, LLVMDialect in MLIR contains an
LLVMContext in which the relevant objects (types, metadata) are created. When
an MLIR module using the LLVM dialect (and related intrinsic-based dialects
NVVM, ROCDL, AVX512) is converted to LLVM IR, it could only live in the
LLVMContext owned by the dialect. The type system no longer relies on the
LLVMContext, so this limitation can be removed. Instead, translation functions
now take a reference to an LLVMContext in which the LLVM IR module should be
constructed. The caller of the translation functions is responsible for
ensuring the same LLVMContext is not used concurrently as the translation no
longer uses a dialect-wide context lock.

As an additional bonus, this change removes the need to recreate the LLVM IR
module in a different LLVMContext through printing and parsing back, decreasing
the compilation overhead in JIT and GPU-kernel-to-blob passes.

Reviewed By: rriddle, mehdi_amini

Differential Revision: https://reviews.llvm.org/D85443
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp (diff)
The file was modifiedmlir/include/mlir/Target/LLVMIR.h (diff)
The file was modifiedmlir/examples/toy/Ch6/toyc.cpp (diff)
The file was modifiedmlir/lib/Target/LLVMIR/ConvertToROCDLIR.cpp (diff)
The file was modifiedmlir/include/mlir/Conversion/GPUCommon/GPUCommonPass.h (diff)
The file was modifiedmlir/include/mlir/Target/NVVMIR.h (diff)
The file was modifiedmlir/lib/Target/LLVMIR/ConvertToLLVMIR.cpp (diff)
The file was modifiedmlir/lib/Target/LLVMIR/ConvertToNVVMIR.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMDialect.h (diff)
The file was modifiedmlir/lib/Target/LLVMIR/ModuleTranslation.cpp (diff)
The file was modifiedmlir/include/mlir/Target/LLVMIR/ModuleTranslation.h (diff)
The file was modifiedmlir/tools/mlir-rocm-runner/mlir-rocm-runner.cpp (diff)
The file was modifiedmlir/docs/Tutorials/Toy/Ch-6.md (diff)
The file was modifiedmlir/include/mlir/Target/ROCDLIR.h (diff)
The file was modifiedmlir/lib/Target/LLVMIR/LLVMAVX512Intr.cpp (diff)
The file was modifiedmlir/examples/toy/Ch7/toyc.cpp (diff)
The file was modifiedmlir/lib/Conversion/GPUCommon/ConvertKernelFuncToBlob.cpp (diff)
The file was modifiedmlir/lib/ExecutionEngine/ExecutionEngine.cpp (diff)
Commit 16b02253778caf1723b63c8ee482bb68ccae0a90 by zinenko
[mlir] do not require LLVMDialect in conversion from LLVM IR

Historically, LLVMDialect has been required in the conversion from LLVM IR in
order to be able to construct types. This is no longer necessary with the new
type model and the dialect can be replaced with a local LLVM context.

Reviewed By: rriddle, mehdi_amini

Differential Revision: https://reviews.llvm.org/D85444
The file was modifiedmlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp (diff)
Commit 87a89e0f7753711ef5f2741a1494e7a44da99d21 by zinenko
[mlir] Remove llvm::LLVMContext and llvm::Module from mlir::LLVMDialectImpl

Original modeling of LLVM IR types in the MLIR LLVM dialect had been wrapping
LLVM IR types and therefore required the LLVMContext in which they were created
to outlive them, which was solved by placing the LLVMContext inside the dialect
and thus having the lifetime of MLIRContext. This has led to numerous issues
caused by the lack of thread-safety of LLVMContext and the need to re-create
LLVM IR modules, obtained by translating from MLIR, in different LLVM contexts
to enable parallel compilation. Similarly, llvm::Module had been introduced to
keep track of identified structure types that could not be modeled properly.

A recent series of commits changed the modeling of LLVM IR types in the MLIR
LLVM dialect so that it no longer wraps LLVM IR types and has no dependence on
LLVMContext and changed the ownership model of the translated LLVM IR modules.
Remove LLVMContext and LLVM modules from the implementation of MLIR LLVM
dialect and clean up the remaining uses.

The only part of LLVM IR that remains necessary for the LLVM dialect is the
data layout. It should be moved from the dialect level to the module level and
replaced with an MLIR-based representation to remove the dependency of the
LLVMDialect on LLVM IR library.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D85445
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td (diff)
The file was modifiedmlir/include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h (diff)
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp (diff)
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp (diff)
Commit 9c94908320549a1a2328c758d6bbb694466021e7 by pifon
BEGIN_PUBLIC
[mlir] Add support for unranked case for `tensor_store` and `tensor_load` ops.
END_PUBLIC

Differential Revision: https://reviews.llvm.org/D85518
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td (diff)
The file was modifiedmlir/test/IR/core-ops.mlir (diff)
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp (diff)
Commit 100e1f911c0e80360af2fa676f832a6f2b52c59d by Xing
[macho2yaml] Remove unused functions. NFC.

dumpDebugStrings() and dumpDebugAbbrev() are no longer used in
macho2yaml. This patch helps remove them.

Reviewed By: grimar

Differential Revision: https://reviews.llvm.org/D85496
The file was modifiedllvm/tools/obj2yaml/macho2yaml.cpp (diff)
Commit 351aac09854399dfb3abb581ef1762a9cd2e4991 by vince.a.bridgers
[Sema] Add casting check for fixed to fixed point conversions

This change squelches the warning for a cast from fixed to fixed point
conversions when -Wbad-function-cast is enabled.

Fixes:

cast from function call of type '_Fract' to non-matching type '_Fract'
[-Wbad-function-cast]

Reviewed By: bjope

Differential Revision: https://reviews.llvm.org/D85157
The file was modifiedclang/lib/Sema/SemaCast.cpp (diff)
The file was modifiedclang/test/Sema/warn-bad-function-cast.c (diff)
Commit 90d1c66c7ce48fdaabd842786034e301fdd40fff by hokein.wu
[clangd] Fix a typo, NFC.
The file was modifiedclang-tools-extra/clangd/ParsedAST.h (diff)
Commit 177735aac7fcac2b1085bfcdcf589681248b5ec8 by bevin.hansson
[LangRef] Minor fixes to intrinsic headers and descriptions. NFC.
The file was modifiedllvm/docs/LangRef.rst (diff)
Commit 5de6c56f7e862958cfc6de1abae49c07f6e8c7ed by bevin.hansson
[Intrinsic] Add sshl.sat/ushl.sat, saturated shift intrinsics.

Summary:
This patch adds two intrinsics, llvm.sshl.sat and llvm.ushl.sat,
which perform signed and unsigned saturating left shift,
respectively.

These are useful for implementing the Embedded-C fixed point
support in Clang, originally discussed in
http://lists.llvm.org/pipermail/llvm-dev/2018-August/125433.html
and
http://lists.llvm.org/pipermail/cfe-dev/2018-May/058019.html

Reviewers: leonardchan, craig.topper, bjope, jdoerfert

Subscribers: hiraditya, jdoerfert, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D83216
The file was modifiedllvm/include/llvm/Target/TargetSelectionDAG.td (diff)
The file was modifiedllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp (diff)
The file was addedllvm/test/CodeGen/X86/sshl_sat.ll
The file was addedllvm/test/CodeGen/X86/sshl_sat_vec.ll
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h (diff)
The file was addedllvm/test/CodeGen/X86/ushl_sat.ll
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (diff)
The file was modifiedllvm/lib/CodeGen/TargetLoweringBase.cpp (diff)
The file was modifiedllvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp (diff)
The file was modifiedllvm/include/llvm/IR/Intrinsics.td (diff)
The file was modifiedllvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff)
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp (diff)
The file was modifiedllvm/include/llvm/Support/TargetOpcodes.def (diff)
The file was modifiedllvm/include/llvm/CodeGen/ISDOpcodes.h (diff)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp (diff)
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-ushlsat.mir
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/legalize-sshlsat.mir
The file was modifiedllvm/docs/LangRef.rst (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir (diff)
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h (diff)
The file was modifiedllvm/include/llvm/Target/GenericOpcodes.td (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-sat.ll (diff)
The file was modifiedllvm/lib/IR/Verifier.cpp (diff)
The file was modifiedllvm/docs/GlobalISel/GenericOpcode.rst (diff)
The file was addedllvm/test/CodeGen/X86/ushl_sat_vec.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp (diff)
Commit aa0d19a0c8f5ebccb5768411dfc4feddff7bed08 by bevin.hansson
[Fixed Point] Add fixed-point shift operations and consteval.

Reviewers: rjmccall, leonardchan, bjope

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D83212
The file was modifiedclang/lib/AST/ExprConstant.cpp (diff)
The file was modifiedclang/lib/Sema/SemaExpr.cpp (diff)
The file was modifiedclang/lib/Basic/FixedPoint.cpp (diff)
The file was modifiedclang/include/clang/Basic/FixedPoint.h (diff)
The file was modifiedclang/test/Frontend/fixed_point_errors.c (diff)
The file was addedclang/test/Frontend/fixed_point_shift.c
Commit ffe1edfc53d81aa7d3721365cbeedef029f36577 by jay.foad
[NFC][GVN] Fix "avaliable" typos

Differential Revision: https://reviews.llvm.org/D85520
The file was modifiedllvm/lib/Transforms/Scalar/GVN.cpp (diff)
Commit 6c64f05b905effa3ebd56bf8b7e678c4340d1e95 by wei.huang
[PowerPC] Add compatibility check for PPC PLT stubs

Compatibility checks for PPC64PltCallStub and PPC64PCRelPLTStub are
added in this patch to prevent the usage of incompatible thunk/stub.

Reviewed By: sfertile, nemanjai, stefanp

Differential Revision: https://reviews.llvm.org/D85459
The file was modifiedlld/ELF/Thunks.cpp (diff)
The file was addedlld/test/ELF/ppc64-plt-stub-compatible.s
Commit 4a7aedb843a591900b419e86dcf46d9bec4c5526 by a.bataev
[OPENMP]Simplify representation for atomic, critical, master and section
constrcut.

Several constructs may be represented wityout relying on CapturedStmt.
It saves memory and improves compilation speed.
The file was modifiedclang/test/AST/ast-dump-openmp-atomic.c (diff)
The file was modifiedclang/test/OpenMP/atomic_messages.c (diff)
The file was modifiedclang/lib/CodeGen/CGStmtOpenMP.cpp (diff)
The file was modifiedclang/test/OpenMP/atomic_messages.cpp (diff)
The file was modifiedclang/lib/Sema/TreeTransform.h (diff)
The file was modifiedclang/lib/Sema/JumpDiagnostics.cpp (diff)
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp (diff)
The file was modifiedclang/test/AST/ast-dump-openmp-master.c (diff)
The file was modifiedclang/test/OpenMP/sections_misc_messages.c (diff)
The file was modifiedclang/lib/AST/StmtPrinter.cpp (diff)
The file was modifiedclang/test/AST/ast-dump-openmp-section.c (diff)
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td (diff)
The file was modifiedclang/test/OpenMP/parallel_sections_misc_messages.c (diff)
The file was modifiedclang/lib/Analysis/CFG.cpp (diff)
The file was modifiedclang/test/OpenMP/critical_messages.cpp (diff)
The file was modifiedclang/test/OpenMP/master_messages.cpp (diff)
The file was modifiedclang/test/AST/ast-dump-openmp-critical.c (diff)
The file was modifiedclang/test/OpenMP/critical_codegen.cpp (diff)
Commit d8c6d083c954b03855700e16c81b483d2ae654d0 by kamau.bridgeman
[PowerPC][PCRelative] Set TLS unsupported with PC relative memops

Introduce a fatal error if any thread local storage code is compiled
using pc relative memory operations as well as a hidden override
option `-enable-ppc-pcrel-tls` so that this support can be incrementally
added if possible.

Reviewed By: #powerpc, nemanjai

Differential Revision: https://reviews.llvm.org/D85448
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp (diff)
The file was addedllvm/test/CodeGen/PowerPC/pcrel-tls.ll
Commit 575b22b5d11bc4c4eb85dde456d9ac7f3cfa3924 by joker.eph
Revisit Dialect registration: require and store a TypeID on dialects

This patch moves the registration to a method in the MLIRContext: getOrCreateDialect<ConcreteDialect>()

This method requires dialect to provide a static getDialectNamespace()
and store a TypeID on the Dialect itself, which allows to lazyily
create a dialect when not yet loaded in the context.
As a side effect, it means that duplicated registration of the same
dialect is not an issue anymore.

To limit the boilerplate, TableGen dialect generation is modified to
emit the constructor entirely and invoke separately a "init()" method
that the user implements.

Differential Revision: https://reviews.llvm.org/D85495
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp (diff)
The file was modifiedmlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp (diff)
The file was modifiedmlir/lib/IR/MLIRContext.cpp (diff)
The file was modifiedmlir/examples/toy/Ch5/mlir/Dialect.cpp (diff)
The file was modifiedmlir/lib/Dialect/Quant/IR/QuantOps.cpp (diff)
The file was modifiedmlir/examples/toy/Ch3/mlir/Dialect.cpp (diff)
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp (diff)
The file was modifiedmlir/lib/Dialect/Affine/IR/AffineOps.cpp (diff)
The file was modifiedmlir/tools/mlir-tblgen/DialectGen.cpp (diff)
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgTypes.cpp (diff)
The file was modifiedmlir/include/mlir/IR/Dialect.h (diff)
The file was modifiedmlir/lib/Dialect/AVX512/IR/AVX512Dialect.cpp (diff)
The file was modifiedmlir/examples/standalone/lib/Standalone/StandaloneDialect.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td (diff)
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp (diff)
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp (diff)
The file was modifiedmlir/lib/IR/Dialect.cpp (diff)
The file was modifiedmlir/unittests/IR/DialectTest.cpp (diff)
The file was modifiedmlir/lib/Dialect/GPU/IR/GPUDialect.cpp (diff)
The file was modifiedmlir/examples/toy/Ch7/mlir/Dialect.cpp (diff)
The file was modifiedmlir/lib/Dialect/SCF/SCF.cpp (diff)
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp (diff)
The file was modifiedmlir/lib/Dialect/Shape/IR/Shape.cpp (diff)
The file was modifiedmlir/lib/Dialect/Vector/VectorOps.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/SDBM/SDBMDialect.h (diff)
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMAVX512Dialect.cpp (diff)
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVDialect.cpp (diff)
The file was modifiedmlir/examples/toy/Ch2/mlir/Dialect.cpp (diff)
The file was modifiedmlir/examples/toy/Ch4/mlir/Dialect.cpp (diff)
The file was modifiedmlir/examples/toy/Ch6/mlir/Dialect.cpp (diff)
The file was modifiedmlir/include/mlir/IR/MLIRContext.h (diff)
Commit 98eccec3ae3e6bd9b6ecd7a132d936c9d70893d1 by amy.kwan1
[PowerPC] Add Vector Extract/Expand/Count with Mask, Move to VSR Mask Instruction Definitions and MC Tests

This patch adds the instruction definitions and assembly/disassembly tests for
the following set of instructions:

Vector Extract [byte | half | word | doubleword | quad] with mask
Vector Expand [byte | half | word | doubleword | quad] with mask
Move to VSR [byte | byte immediate | half | word | doubleword | quad] with mask
Vector Count Mask Bits [byte | half | word | doubleword]

Differential Revision: https://reviews.llvm.org/D83724
The file was modifiedllvm/lib/Target/PowerPC/PPCInstrPrefix.td (diff)
The file was modifiedllvm/test/MC/Disassembler/PowerPC/ppc64-encoding-ISA31.txt (diff)
The file was modifiedllvm/test/MC/PowerPC/ppc64-encoding-ISA31.s (diff)
Commit 25e38c3f3c2a814797f53d0f08a687b3b4a028e4 by david.green
[ARM] Extra reduction plus tailpredication tests. NFC
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vecreduce-loops.ll (diff)
Commit c3c95b9c808519662afe8b9053aa88b5be451d1d by ajcbik
[mlir] [VectorOps] Improve lowering of extract_strided_slice (and friends like shape_cast)

Using a shuffle for the last recursive step in progressive lowering not only
results in much more compact IR, but also more efficient code (since the
backend is no longer confused on subvector aliasing for longer vectors).

E.g. the following

  %f = vector.shape_cast %v0: vector<1024xf32> to vector<32x32xf32>

yields much better x86-64 code that runs 3x faster than the original.

Reviewed By: bkramer, nicolasvasilache

Differential Revision: https://reviews.llvm.org/D85482
The file was modifiedmlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir (diff)
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp (diff)
Commit 7d0f69118e61a86f4565ae372d6125cae4bc8d83 by tyker
[NFC] Add utility to sum/merge stats files

Add a small script to sum *.stats file given as input and output the totals
usage example:
    merge-stats.py $(find ./builddir/ -name "*.stats") > total.stats

Reviewed By: lebedev.ri

Differential Revision: https://reviews.llvm.org/D83505
The file was addedllvm/utils/merge-stats.py
Commit cf03bcf92922c483e1ecd4691263e01d14557c3e by tkeith
[flang] Remove extra CMAKE_CXX_FLAGS in Lower and Optimizer

`-Wno-error` and `-Wno-unused-parameter` appear to no longer be needed
for Lower and Optimizer.

Differential Revision: https://reviews.llvm.org/D85465
The file was modifiedflang/lib/Optimizer/CMakeLists.txt (diff)
The file was modifiedflang/lib/Lower/CMakeLists.txt (diff)
Commit 47cadd6106c0a9218f653760dd045cbd16df0fd6 by Artem Dergachev
[analyzer] pr47030: MoveChecker: Unforget a comma in the suppression list.
The file was modifiedclang/test/Analysis/Inputs/system-header-simulator-cxx.h (diff)
The file was modifiedclang/test/Analysis/use-after-move.cpp (diff)
The file was modifiedclang/lib/StaticAnalyzer/Checkers/MoveChecker.cpp (diff)
Commit ac3e720dc1af9555c5591017bd2b6c7f6641a34d by Yaxun.Liu
Make clang HIP headers compatible with C++98

Automation to detect compiler features, such as CMake's target_compile_features,
would attempt to detect compiler features by explicitly using langugage flags.
This change ensures that the HIP headers would still work with C++98.

Patch by Siu Chi Chan

Differential Revision: https://reviews.llvm.org/D85471

Change-Id: I304e964b18a525b0fde55efd841da74b6c4dc8ed
The file was modifiedclang/lib/Headers/__clang_hip_libdevice_declares.h (diff)
The file was modifiedclang/lib/Headers/__clang_hip_math.h (diff)
The file was modifiedclang/lib/Headers/__clang_hip_runtime_wrapper.h (diff)
Commit 382df1c6744d09e9f3362f9743788574913980b4 by 31459023+hctim
Revert "Reland D64327 [MC][ELF] Allow STT_SECTION referencing SHF_MERGE on REL targets"

This reverts commit b497665d98ad5026b1d3d67d5793a28fefe27bea.

Spent some time trying to reproduce this locally, reverting in a
desparate attempt to fix the sanitizer buildbot:
- http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/28828

I don't know exactly why or how this patch breaks the bots, but it seems
pretty concrete that it's the culprit.
The file was modifiedllvm/test/MC/ELF/compression.s (diff)
The file was modifiedllvm/test/MC/ELF/relocation-386.s (diff)
The file was modifiedllvm/cmake/modules/AddLLVM.cmake (diff)
The file was modifiedllvm/test/MC/ELF/basic-elf-32.s (diff)
The file was modifiedllvm/test/MC/Mips/elf-relsym.s (diff)
The file was modifiedllvm/test/MC/Mips/xgot.s (diff)
The file was modifiedllvm/lib/MC/ELFObjectWriter.cpp (diff)
Commit 954bd9c861218357977f88b9678c7b1df515e14a by Yuanfang Chen
[NewPM] Only verify loop for nonskipped user loop pass

No verification for pass mangers since it is not needed.
No verification for skipped loop pass since the asserted condition is not used.

Add a BeforeNonSkippedPass callback for this. The callback needs more
inputs than its parameters to work so the callback is added on-the-fly.

Reviewed By: aeubanks, asbirlea

Differential Revision: https://reviews.llvm.org/D84977
The file was modifiedllvm/include/llvm/Transforms/Scalar/LoopPassManager.h (diff)
The file was modifiedllvm/lib/Transforms/Scalar/LoopPassManager.cpp (diff)
The file was modifiedllvm/include/llvm/IR/PassInstrumentation.h (diff)
The file was modifiedllvm/test/Feature/optnone-opt.ll (diff)
Commit 911565d1085d9447363fe8ad041817436c4998fe by Yuanfang Chen
[NewPM][CodeGen] Introduce machine pass and machine pass manager

machine pass could define four methods:
- `PreservedAnalyses run(MachineFunction &, MachineFunctionAnalysisManager &)`
- `Error doInitialization(Module &, MachineFunctionAnalysisManager &)`
- `Error doFinalization(Module &, MachineFunctionAnalysisManager &)`
- `Error run(Module &, MachineFunctionAnalysisManager &)`

machine pass manger:
- MachineFunctionAnalysisManager:
  Basically an AnalysisManager<MachineFunction> augmented with the ability to
  register and query IR analyses
- MachineFunctionPassManager: support only two methods, `addPass` and `run`

Reviewed By: arsenm, asbirlea, aeubanks

Differential Revision: https://reviews.llvm.org/D67687
The file was modifiedllvm/lib/CodeGen/LLVMBuild.txt (diff)
The file was addedllvm/unittests/CodeGen/PassManagerTest.cpp
The file was addedllvm/lib/CodeGen/MachinePassManager.cpp
The file was modifiedllvm/include/llvm/IR/PassManager.h (diff)
The file was addedllvm/include/llvm/CodeGen/MachinePassManager.h
The file was modifiedllvm/unittests/CodeGen/CMakeLists.txt (diff)
The file was modifiedllvm/lib/CodeGen/CMakeLists.txt (diff)
Commit 4e43f1804817b36fee62aeb7e1eb1602245efdb6 by jezng
[lld-macho] Ensure .tbss sections are also considered as ZeroFilled

This diff makes the behavior in {D80859} and {D81888} apply to
thread-local ZeroFill sections too. I realized this was necessary whie
trying to implement thread-local variables.

Reviewed By: #lld-macho, compnerd, MaskRay

Differential Revision: https://reviews.llvm.org/D85079
The file was modifiedlld/test/MachO/bss.s (diff)
The file was modifiedlld/MachO/InputSection.h (diff)
Commit ca85e3733816ce444b86dd4598c1a98a54464b10 by jezng
[lld-macho] Support static linking of thread-locals

Note: What ELF refers to as "TLS", Mach-O seems to refer to as "TLV", i.e.
thread-local variables.

This diff implements support for TLV relocations that reference defined
symbols. On x86_64, TLV relocations are always used with movq opcodes, so for
defined TLVs, we don't need to create a synthetic section to store the
addresses of the symbols -- we can just convert the `movq` to a `leaq`.

One notable quirk of Mach-O's TLVs is that absolute-address relocations
inside TLV-defining sections behave differently -- their addresses are
no longer absolute, but relative to the start of the target section.
(AFAICT, RIP-relative relocations are not allowed in these sections.)

Reviewed By: #lld-macho, compnerd, smeenai

Differential Revision: https://reviews.llvm.org/D85080
The file was addedlld/test/MachO/invalid/bad-tlv-opcode.s
The file was modifiedlld/test/MachO/Inputs/MacOSX.sdk/usr/lib/libSystem.tbd (diff)
The file was modifiedlld/MachO/Arch/X86_64.cpp (diff)
The file was modifiedlld/MachO/InputSection.h (diff)
The file was addedlld/test/MachO/tlv.s
The file was modifiedlld/MachO/Target.h (diff)
The file was addedlld/test/MachO/invalid/bad-tlv-def.s
The file was modifiedlld/MachO/SyntheticSections.cpp (diff)
The file was modifiedlld/MachO/InputSection.cpp (diff)
Commit 25367dfefb7ba5cc35dc56bf5063562695f1dd04 by jezng
[lld-macho] Add .tbd support for frameworks

Required for e.g. linking iOS apps since they don't have a platform-native
SDK

Reviewed By: #lld-macho, compnerd, smeenai

Differential Revision: https://reviews.llvm.org/D85153
The file was addedlld/test/MachO/stub-framework.s
The file was addedlld/test/MachO/Inputs/MacOSX.sdk/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation.tbd
The file was modifiedlld/MachO/Driver.cpp (diff)
Commit 8abb5fb68f81b0e42d824bf080b1cef9a61559d6 by ecaldas
[SyntaxTree] Use simplified grammar rule for `NestedNameSpecifier` grammar nodes

This is our grammar rule for nested-name-specifiers:
globalbal-specifier:
  /*empty*/
simple-template-specifier:
  template_opt simple-template-id
name-specifier:
  global-specifier
  decltype-specifier
  identifier
  simple-template-specifier
nested-name-specifier:
  list(name-specifier, ::, non-empty, terminated)

It is a relaxed version of C++ [expr.prim.id] and quite simpler to map to our API.

TODO: refine name specifiers, `simple-template-name-specifier` and
decltype-name-specifier` are token soup for now.
The file was modifiedclang/unittests/Tooling/Syntax/TreeTest.cpp (diff)
The file was modifiedclang/lib/Tooling/Syntax/BuildTree.cpp (diff)
The file was modifiedclang/include/clang/Tooling/Syntax/Nodes.h (diff)
The file was modifiedclang/lib/Tooling/Syntax/Nodes.cpp (diff)
Commit c354b2e3bfe6709ffd78d0fcd017b7e5be7a7a23 by zequanwu
[Clang] Add note for bad conversion when expression is pointer to forward-declared type

Differential Revision: https://reviews.llvm.org/D85390
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td (diff)
The file was modifiedclang/test/Modules/namespaces.cpp (diff)
The file was modifiedclang/test/SemaCXX/elaborated-type-specifier.cpp (diff)
The file was addedclang/test/SemaCXX/pointer-forward-declared-class-conversion.cpp
The file was modifiedclang/lib/Sema/SemaInit.cpp (diff)
Commit f1d525734f86ac4b1a7bf80f3a82291864026de0 by Jonas Devlieghere
[lldb] Store the Apple SDK in dotest's configuration.

This patch stores the --apple-sdk argument in the dotest configuration.
When it's set, use it instead of the triple to determine the current
platform.

Differential revision: https://reviews.llvm.org/D85537
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbplatformutil.py (diff)
The file was modifiedlldb/packages/Python/lldbsuite/test/configuration.py (diff)
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest.py (diff)
Commit 04bd5b52862098945a8bb9449d6accc120304cb5 by Austin.Kerbow
[AMDGPU] Fix not rescheduling without clustering

Regions are sometimes skipped which should be rescheduled without memory op
clustering. RegionIdx is not incremented when iterating over regions that
are flagged to be skipped, causing the index to be incorrect.

Thanks to Vang Thao for discovering this bug!

Reviewed By: rampitec

Differential Revision: https://reviews.llvm.org/D85498
The file was modifiedllvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/schedule-regpressure-limit-clustering.ll (diff)
Commit 2b5502c3503ececff3b3da1026cd635b026eced6 by aeubanks
[NFC] Use value initializer for OVERLAPPED

To fix
../llvm/lib/Support/Windows/Path.inc(1265,21): warning: missing field
'InternalHigh' initializer [-Wmissing-field-initializers]
  OVERLAPPED OV = {0};

Differential Revision: https://reviews.llvm.org/D85480
The file was modifiedllvm/lib/Support/Windows/Path.inc (diff)
Commit cc5f6252c7a9bc5eac14d346cf63381e4b26f0f7 by llvmgnsyncbot
[gn build] Port 911565d1085
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/CodeGen/BUILD.gn (diff)
The file was modifiedllvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn (diff)
Commit 1bf4629f1112f28a97d048f8b3dbf483ba6604b8 by aeubanks
[PPC] Rename bool-ret-to-int -> ppc-bool-ret-to-int

Reviewed By: #powerpc, nemanjai

Differential Revision: https://reviews.llvm.org/D85391
The file was modifiedllvm/test/CodeGen/PowerPC/BoolRetToIntTest.ll (diff)
The file was modifiedllvm/lib/Target/PowerPC/PPCBoolRetToInt.cpp (diff)
Commit 3110e7b077d0031e8743614f742a500ccc522c77 by ntv
[mlir] Introduce AffineMinSCF folding as a pattern

This revision adds a folding pattern to replace affine.min ops by the actual min value, when it can be determined statically from the strides and bounds of enclosing scf loop .

This matches the type of expressions that Linalg produces during tiling and simplifies boundary checks. For now Linalg depends both on Affine and SCF but they do not depend on each other, so the pattern is added there.
In the future this will move to a more appropriate place when it is determined.

The canonicalization of AffineMinOp operations in the context of enclosing scf.for and scf.parallel proceeds by:
  1. building an affine map where uses of the induction variable of a loop
  are replaced by `%lb + %step * floordiv(%iv - %lb, %step)` expressions.
  2. checking if any of the results of this affine map divides all the other
  results (in which case it is also guaranteed to be the min).
  3. replacing the AffineMinOp by the result of (2).

The algorithm is functional in simple parametric tiling cases by using semi-affine maps. However simplifications of such semi-affine maps are not yet available and the canonicalization does not succeed yet.

Differential Revision: https://reviews.llvm.org/D82009
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp (diff)
The file was modifiedmlir/include/mlir/IR/AffineExpr.h (diff)
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h (diff)
The file was modifiedmlir/lib/IR/AffineExpr.cpp (diff)
The file was addedmlir/test/Dialect/Linalg/fold-affine-min-scf.mlir
The file was modifiedmlir/test/lib/Transforms/TestLinalgTransforms.cpp (diff)
Commit aedaa077f58df48f6777711e2a79443a40df7f07 by tejohnson
Reduce dropTriviallyDeadConstantArrays cumulative time percentage from 17% to 4%

The history of dropTriviallyDeadConstantArrays is like this. Because the appending linkage uses too much memory (http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20150105/251381.html), dropTriviallyDeadConstantArrays was introduced (https://reviews.llvm.org/rG81f385b0c6ea37dd7195a65be162c75bbdef29d2) to release unused constant arrays. Recently, dropTriviallyDeadConstantArrays was improved (https://reviews.llvm.org/rG81f385b0c6ea37dd7195a65be162c75bbdef29d2) to reduce its quadratic cost.

Our recent LTO profiling shows that when a target is large, 15-20% of time cost is from the SetVector::insert called by dropTriviallyDeadConstantArrays.

A large application has hundreds or thousands of modules; each module calls dropTriviallyDeadConstantArrays once for cleaning up tens of thousands of ConstantArrays a module has. In those ConstantArrays, usually around 5 can be deleted; a very very few deleted ConstantArrays reference other ConstantArrays: less than 10 out of millions.

Given this, the cost of SetVector::insert is mainly from the construction of WorkList from ArrayConstants. This motivated the fix that iterates ArrayConstants directly, and uses WorkList only when necessary.

Our evaluation shows that
1) The cumulative time percentage of dropTriviallyDeadConstantArrays is reduced from 15-17% to 4-6%.
2) For targets with LTO time > 20min, the time reduction is about 20%.
3) No observable performance impact for build without using LTO.

{F12506218}
{F12506221}

Reviewed By: mehdi_amini, tejohnson, jdoerfert

Differential Revision: https://reviews.llvm.org/D85379
The file was modifiedllvm/lib/IR/LLVMContextImpl.cpp (diff)
Commit 2a01d7f7b6487b87bfb4722d53fcba30129ded13 by ntv
[mlir][SCF] Add utility to outline the then and else branches of an scf.IfOp

Differential Revision: https://reviews.llvm.org/D85449
The file was removedmlir/test/Transforms/loop-utils.mlir
The file was addedmlir/test/Transforms/scf-loop-utils.mlir
The file was modifiedmlir/include/mlir/Dialect/SCF/Utils.h (diff)
The file was modifiedmlir/lib/Dialect/SCF/Transforms/Utils.cpp (diff)
The file was addedmlir/test/Transforms/scf-if-utils.mlir
The file was modifiedmlir/test/lib/Transforms/TestSCFUtils.cpp (diff)
The file was modifiedmlir/lib/Dialect/SCF/Transforms/CMakeLists.txt (diff)
Commit 320eab2d558fde0b61437e9b9075bfd301c2c474 by Yuanfang Chen
Revert "[NewPM][CodeGen] Introduce machine pass and machine pass manager"

This reverts commit 911565d1085d9447363fe8ad041817436c4998fe.

Broke some non-Linux bots.
The file was removedllvm/lib/CodeGen/MachinePassManager.cpp
The file was removedllvm/unittests/CodeGen/PassManagerTest.cpp
The file was removedllvm/include/llvm/CodeGen/MachinePassManager.h
The file was modifiedllvm/lib/CodeGen/LLVMBuild.txt (diff)
The file was modifiedllvm/lib/CodeGen/CMakeLists.txt (diff)
The file was modifiedllvm/include/llvm/IR/PassManager.h (diff)
The file was modifiedllvm/unittests/CodeGen/CMakeLists.txt (diff)
Commit 7764b52cbd413354cd62fa2afe62a2611181044c by llvmgnsyncbot
[gn build] Port 320eab2d558
The file was modifiedllvm/utils/gn/secondary/llvm/lib/CodeGen/BUILD.gn (diff)
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/CodeGen/BUILD.gn (diff)
Commit 0e9e06a6d4c5e0f267fffe7ec3e0c8e8b22ae46b by pklausler
[flang][NFC] Reformat files with current clang-format

Differential Revision: https://reviews.llvm.org/D85489
The file was modifiedflang/lib/Parser/basic-parsers.h (diff)
The file was modifiedflang/include/flang/Evaluate/expression.h (diff)
The file was modifiedflang/include/flang/Parser/parse-tree.h (diff)
The file was modifiedflang/include/flang/Common/template.h (diff)
The file was modifiedflang/include/flang/Semantics/expression.h (diff)
The file was modifiedflang/unittests/Runtime/external-io.cpp (diff)
The file was modifiedflang/include/flang/Parser/message.h (diff)
The file was modifiedflang/include/flang/Evaluate/tools.h (diff)
The file was modifiedflang/include/flang/Semantics/semantics.h (diff)
The file was modifiedflang/lib/Semantics/pointer-assignment.cpp (diff)
The file was modifiedflang/lib/Semantics/check-declarations.cpp (diff)
The file was modifiedflang/include/flang/Evaluate/traverse.h (diff)
The file was modifiedflang/lib/Semantics/resolve-names.cpp (diff)
The file was modifiedflang/lib/Semantics/assignment.cpp (diff)
The file was modifiedflang/include/flang/Parser/parse-state.h (diff)
The file was modifiedflang/lib/Evaluate/intrinsics-library-templates.h (diff)
The file was modifiedflang/unittests/Evaluate/intrinsics.cpp (diff)
The file was modifiedflang/lib/Parser/prescan.h (diff)
The file was modifiedflang/include/flang/Common/indirection.h (diff)
Commit 9414a71aaab8f04316ee4daba2a27086e3736fff by ravishankarm
[mlir][spirv] Add correct handling of Kernel and Addresses capabilities

This change adds initial support needed to generate OpenCL compliant SPIRV.
If Kernel capability is declared then memory model becomes OpenCL.
If Addresses capability is declared then addressing model becomes Physical64.
Additionally for Kernel capability interface variable ABI attributes are not
generated as entry point function is expected to have normal arguments.

Differential Revision: https://reviews.llvm.org/D85196
The file was modifiedmlir/lib/Dialect/SPIRV/TargetAndABI.cpp (diff)
The file was modifiedmlir/lib/Dialect/SPIRV/Transforms/LowerABIAttributesPass.cpp (diff)
The file was addedmlir/test/Dialect/SPIRV/Transforms/abi-interface-opencl.mlir
The file was modifiedmlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRV.cpp (diff)
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVLowering.cpp (diff)
The file was addedmlir/test/Conversion/GPUToSPIRV/module-structure-opencl.mlir
The file was modifiedmlir/include/mlir/Dialect/SPIRV/TargetAndABI.h (diff)
Commit b53fd9cdba4da51284941fdecfe3c7490d6013cc by timshen
[MLIR] Add getSizeInBits() for tensor of complex

Differential Revision: https://reviews.llvm.org/D85382
The file was modifiedmlir/test/mlir-tblgen/op-derived-attribute.mlir (diff)
The file was modifiedmlir/lib/IR/StandardTypes.cpp (diff)
Commit 17ff170e3a9b9381ca28d8c210bb567ec72f793d by guiand
Revert "[MSAN] Instrument libatomic load/store calls"

Problems with instrumenting atomic_load when the call has no successor,
blocking compiler roll

This reverts commit 33d239513c881d8c11c60d5710c55cf56cc309a5.
The file was removedcompiler-rt/test/msan/libatomic.c
The file was modifiedllvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp (diff)
The file was removedllvm/test/Instrumentation/MemorySanitizer/libatomic.ll
Commit bb4b70f7921501165cf7dd7577de00feb1e588b2 by sameerarora101
[llvm-install-name-tool] Adds docs for llvm-install-name-tool

Adding documentation for llvm-install-name-tool.

Reviewed by smeenai, Ktwu

Differential Revision: https://reviews.llvm.org/D81944
The file was modifiedllvm/docs/CommandGuide/index.rst (diff)
The file was addedllvm/docs/CommandGuide/llvm-install-name-tool.rst
Commit e3eb3cf5501c6b97b5baa2d66193f2d610492be6 by Jonas Devlieghere
[lldb] Only check for --apple-sdk argument on Darwin
The file was modifiedlldb/packages/Python/lldbsuite/test/dotest.py (diff)
Commit cc01194c2fac5ad400b862463c473f3ef924c932 by pklausler
[flang] Descriptor-based I/O data item transfers

Add support for OutputDescriptor() and InputDescriptor()
in the I/O runtime.  Change existing scalar formatted I/O
functions to drive descriptor-based I/O routines internally.

Differential Revision: https://reviews.llvm.org/D85491
The file was modifiedflang/runtime/io-api.cpp (diff)
The file was addedflang/runtime/descriptor-io.h
The file was modifiedflang/runtime/type-code.h (diff)
The file was modifiedflang/runtime/type-code.cpp (diff)
Commit dc13a9a7813768e01bddd03924d6cac6fa45cd7b by gyurgyikcp
[libc] Add strcpsn and strpbrk implementation.

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D85386
The file was addedlibc/test/src/string/strcspn_test.cpp
The file was addedlibc/src/string/strpbrk.cpp
The file was addedlibc/src/string/strcspn.cpp
The file was addedlibc/src/string/string_utils.h
The file was addedlibc/test/src/string/strpbrk_test.cpp
The file was modifiedlibc/config/linux/aarch64/entrypoints.txt (diff)
The file was modifiedlibc/config/linux/x86_64/entrypoints.txt (diff)
The file was modifiedlibc/src/string/CMakeLists.txt (diff)
The file was modifiedlibc/test/src/string/CMakeLists.txt (diff)
The file was addedlibc/src/string/strcspn.h
The file was addedlibc/src/string/strpbrk.h
The file was modifiedlibc/src/string/strspn.cpp (diff)
Commit 43b304b09f892c305861de3113967c2714ab0d02 by pklausler
[flang] Support DATA statement initialization of numeric with Hollerith/CHARACTER

This is a common Fortran language extension.

Differential Revision: https://reviews.llvm.org/D85492
The file was modifiedflang/test/Semantics/data06.f90 (diff)
The file was modifiedflang/lib/Semantics/check-data.cpp (diff)
The file was addedflang/test/Semantics/data08.f90
Commit d6c00edf2eb8e6b1289d684e9f0fd1b576f081d6 by sameerarora101
[FileCheck] Add docs for --allow-empty

This diff adds documentation for `allow-empty` flag under FileCheck
docs.

Reviewed by jhenderson, smeenai, thopre

Differential Revision: https://reviews.llvm.org/D83682
The file was modifiedllvm/docs/CommandGuide/FileCheck.rst (diff)
Commit 968cba8e89f7226f325b04278d3b5dff7d4ebc36 by Adrian Prantl
lldbutil: add a retry mechanism for the ios simulator

We've been seeing this failure on green dragon when the system is
under high load. Unfortunately this is outside of LLDB's control.

Differential Revision: https://reviews.llvm.org/D85542
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbutil.py (diff)
Commit 5a0b1472c0e4e08071c688d03800f1b54983187d by Matthew.Arsenault
GlobalISel: Handle zext(sext x) in artifact combiner

This eliminates the illegal intermediate s8 value in the added test.
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/artifact-combiner-zext.mir (diff)
Commit 164a02d0fa461c623446bb5e3ee15516bcfad13c by maskray
[ELF]: --icf: don't fold sections referencing sections with LCDA after D84610
The file was modifiedlld/test/ELF/icf-eh-frame.s (diff)
The file was modifiedlld/ELF/ICF.cpp (diff)
Commit 86646be3158933330bf3342e9d7e4250945bb70c by riddleriver
[mlir] Refactor StorageUniquer to require registration of possible storage types

This allows for bucketing the different possible storage types, with each bucket having its own allocator/mutex/instance map. This greatly reduces the amount of lock contention when multi-threading is enabled. On some non-trivial .mlir modules (>300K operations), this led to a compile time decrease of a single conversion pass by around half a second(>25%).

Differential Revision: https://reviews.llvm.org/D82596
The file was modifiedmlir/lib/Support/StorageUniquer.cpp (diff)
The file was modifiedmlir/lib/Dialect/SDBM/SDBMDialect.cpp (diff)
The file was modifiedmlir/lib/Dialect/SDBM/SDBMExpr.cpp (diff)
The file was modifiedmlir/include/mlir/IR/AttributeSupport.h (diff)
The file was modifiedmlir/include/mlir/Support/StorageUniquer.h (diff)
The file was modifiedmlir/include/mlir/Dialect/SDBM/SDBMDialect.h (diff)
The file was modifiedmlir/include/mlir/IR/TypeSupport.h (diff)
The file was modifiedmlir/include/mlir/IR/StorageUniquerSupport.h (diff)
The file was modifiedmlir/lib/IR/AffineExpr.cpp (diff)
The file was modifiedmlir/lib/IR/MLIRContext.cpp (diff)
Commit 9f24640b7e6e61b0f293c724155a90a5e446dd7a by riddleriver
[mlir] Add a utility class, ThreadLocalCache, for storing non static thread local objects.

This class allows for defining thread local objects that have a set non-static lifetime. This internals of the cache use a static thread_local map between the various different non-static objects and the desired value type. When a non-static object destructs, it simply nulls out the entry in the static map. This will leave an entry in the map, but erase any of the data for the associated value. The current use cases for this are in the MLIRContext, meaning that the number of items in the static map is ~1-2 which aren't particularly costly enough to warrant the complexity of pruning. If a use case arises that requires pruning of the map, the functionality can be added.

This is especially useful in the context of MLIR for implementing thread-local caching of context level objects that would otherwise have very high lock contention. This revision adds a thread local cache in the MLIRContext for attributes, identifiers, and types to reduce some of the locking burden. This led to a speedup of several hundred miliseconds when compiling a conversion pass on a very large mlir module(>300K operations).

Differential Revision: https://reviews.llvm.org/D82597
The file was modifiedmlir/lib/Support/StorageUniquer.cpp (diff)
The file was modifiedmlir/lib/IR/MLIRContext.cpp (diff)
The file was modifiedmlir/test/EDSC/builder-api-test.cpp (diff)
The file was addedmlir/include/mlir/Support/ThreadLocalCache.h
Commit dd48773396f77fd7b19adc43b23d41aef356809a by riddleriver
[mlir][Types] Remove the subclass data from Type

Subclass data is useful when a certain amount of memory is allocated, but not all of it is used. In the case of Type, that hasn't been the case for a while and the subclass is just taking up a full `unsigned`. Removing this frees up ~8 bytes for almost every type instance.

Differential Revision: https://reviews.llvm.org/D85348
The file was modifiedmlir/lib/IR/StandardTypes.cpp (diff)
The file was modifiedmlir/include/mlir/IR/TypeSupport.h (diff)
The file was modifiedmlir/include/mlir/IR/Types.h (diff)
The file was modifiedmlir/lib/IR/Types.cpp (diff)
The file was modifiedmlir/lib/IR/TypeDetail.h (diff)
The file was modifiedmlir/include/mlir/IR/StandardTypes.h (diff)
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVTypes.cpp (diff)
Commit 1d6a8deb41221f73c57b57fe9add180da34af77f by riddleriver
[mlir] Remove the need to define `kindof` on attribute and type classes.

This revision refactors the default definition of the attribute and type `classof` methods to use the TypeID of the concrete class instead of invoking the `kindof` method. The TypeID is already used as part of uniquing, and this allows for removing the need for users to define any of the type casting utilities themselves.

Differential Revision: https://reviews.llvm.org/D85356
The file was modifiedmlir/docs/Tutorials/DefiningAttributesAndTypes.md (diff)
The file was modifiedflang/include/flang/Optimizer/Dialect/FIRAttr.h (diff)
The file was modifiedmlir/examples/toy/Ch7/include/toy/Dialect.h (diff)
The file was modifiedmlir/include/mlir/IR/AttributeSupport.h (diff)
The file was modifiedmlir/include/mlir/IR/Attributes.h (diff)
The file was modifiedmlir/lib/IR/MLIRContext.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/Shape/IR/Shape.h (diff)
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVAttributes.h (diff)
The file was modifiedmlir/include/mlir/IR/Types.h (diff)
The file was modifiedmlir/test/lib/Dialect/Test/TestTypes.h (diff)
The file was modifiedmlir/include/mlir/IR/Location.h (diff)
The file was modifiedmlir/docs/Tutorials/Toy/Ch-7.md (diff)
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMTypes.h (diff)
The file was modifiedmlir/include/mlir/Dialect/SPIRV/SPIRVTypes.h (diff)
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgTypes.h (diff)
The file was modifiedmlir/include/mlir/IR/StandardTypes.h (diff)
The file was modifiedmlir/include/mlir/IR/TypeSupport.h (diff)
The file was modifiedmlir/include/mlir/IR/StorageUniquerSupport.h (diff)
The file was modifiedflang/include/flang/Optimizer/Dialect/FIRType.h (diff)
The file was modifiedmlir/include/mlir/Dialect/Quant/QuantTypes.h (diff)
Commit fff39b62bb4078ce78813f25c04e0da435a8feb3 by riddleriver
[mlir][Attribute] Remove usages of Attribute::getKind

This is in preparation for removing the use of "kinds" within attributes and types in MLIR.

Differential Revision: https://reviews.llvm.org/D85370
The file was modifiedmlir/include/mlir/IR/Attributes.h (diff)
The file was modifiedmlir/lib/IR/AsmPrinter.cpp (diff)
The file was modifiedmlir/unittests/Dialect/Quant/QuantizationUtilsTest.cpp (diff)
The file was modifiedmlir/include/mlir/IR/Location.h (diff)
The file was modifiedmlir/lib/IR/Diagnostics.cpp (diff)
The file was modifiedmlir/lib/IR/Attributes.cpp (diff)
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVOps.cpp (diff)
The file was modifiedmlir/lib/IR/Location.cpp (diff)
The file was modifiedmlir/lib/Target/LLVMIR/DebugTranslation.cpp (diff)
Commit c8c45985fba935f28943d6218915d7fe5a5fc807 by riddleriver
[mlir][Type] Remove usages of Type::getKind

This is in preparation for removing the use of "kinds" within attributes and types in MLIR.

Differential Revision: https://reviews.llvm.org/D85475
The file was modifiedmlir/include/mlir/IR/StandardTypes.h (diff)
The file was modifiedmlir/lib/Dialect/Quant/IR/QuantTypes.cpp (diff)
The file was modifiedmlir/lib/Dialect/Quant/Utils/UniformSupport.cpp (diff)
The file was modifiedmlir/lib/Dialect/Traits.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMTypes.h (diff)
The file was modifiedmlir/include/mlir/Dialect/Quant/QuantTypes.h (diff)
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgTypes.cpp (diff)
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp (diff)
The file was modifiedmlir/lib/IR/StandardTypes.cpp (diff)
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVOps.cpp (diff)
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVTypes.cpp (diff)
The file was modifiedmlir/lib/Dialect/SPIRV/LayoutUtils.cpp (diff)
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVDialect.cpp (diff)
The file was modifiedmlir/lib/Dialect/Quant/IR/TypeParser.cpp (diff)
Commit 82fd1392016984c81c6037e147ee2dd36cf91f4c by riddleriver
[flang] Update FirOpsDialect constructor to pass its TypeID
The file was modifiedflang/lib/Optimizer/Dialect/FIRDialect.cpp (diff)
Commit cf26a10517676b84ac18334a11ae70d15e9df001 by sameerarora101
Add symlinks for `libtool` and `install_name_tool`

Add symlinks for `llvm-libtool-darwin` and
`llvm-install-name-tool`.

Reviewed by jhenderson, smeenai

Differential Revision: https://reviews.llvm.org/D85054
The file was modifiedllvm/tools/llvm-libtool-darwin/CMakeLists.txt (diff)
The file was modifiedllvm/tools/llvm-objcopy/CMakeLists.txt (diff)
Commit cd01980f308a94c64f814052a5e522ac69982237 by tra
[OpenMP] Split OpenMP/target_map_codegen test [NFC]

The test file is the single longest test among clang's tests and ends up about
doubling the wall time of clang tests on machines with high number of cores.

The test appears to consist of multiple independent subtests and does not have
to be in one file. Splitting it into smaller parts reduces test time on my
machine from ~80s down to ~45.

Differential Revision: https://reviews.llvm.org/D85551
The file was addedclang/test/OpenMP/target_map_codegen_02.cpp
The file was addedclang/test/OpenMP/target_map_codegen_08.cpp
The file was addedclang/test/OpenMP/target_map_codegen_26.cpp
The file was addedclang/test/OpenMP/target_map_codegen_32.cpp
The file was addedclang/test/OpenMP/target_map_codegen_13.cpp
The file was addedclang/test/OpenMP/target_map_codegen_01.cpp
The file was addedclang/test/OpenMP/target_map_codegen_22.cpp
The file was addedclang/test/OpenMP/target_map_codegen_11.cpp
The file was addedclang/test/OpenMP/target_map_codegen_31.cpp
The file was addedclang/test/OpenMP/target_map_codegen_03.cpp
The file was addedclang/test/OpenMP/target_map_codegen_30.cpp
The file was removedclang/test/OpenMP/target_map_codegen.cpp
The file was addedclang/test/OpenMP/target_map_codegen_27.cpp
The file was addedclang/test/OpenMP/target_map_codegen_14.cpp
The file was addedclang/test/OpenMP/target_map_codegen_18.cpp
The file was addedclang/test/OpenMP/target_map_codegen_16.cpp
The file was addedclang/test/OpenMP/target_map_codegen_25.cpp
The file was addedclang/test/OpenMP/target_map_codegen_10.cpp
The file was addedclang/test/OpenMP/target_map_codegen_24.cpp
The file was addedclang/test/OpenMP/target_map_codegen_05.cpp
The file was addedclang/test/OpenMP/target_map_codegen_06.cpp
The file was addedclang/test/OpenMP/target_map_codegen_07.cpp
The file was addedclang/test/OpenMP/target_map_codegen_12.cpp
The file was addedclang/test/OpenMP/target_map_codegen_23.cpp
The file was addedclang/test/OpenMP/target_map_codegen_17.cpp
The file was addedclang/test/OpenMP/target_map_codegen_19.cpp
The file was addedclang/test/OpenMP/target_map_codegen_33.cpp
The file was addedclang/test/OpenMP/target_map_codegen_20.cpp
The file was addedclang/test/OpenMP/target_map_codegen_21.cpp
The file was addedclang/test/OpenMP/target_map_codegen_00.cpp
The file was addedclang/test/OpenMP/target_map_codegen_15.cpp
The file was addedclang/test/OpenMP/target_map_codegen_09.cpp
The file was addedclang/test/OpenMP/target_map_codegen_04.cpp
The file was addedclang/test/OpenMP/target_map_codegen_29.cpp
The file was addedclang/test/OpenMP/target_map_codegen_28.cpp
Commit 660832c4e744108ecb45b697e51be72482cacd42 by kiran.chandramohan
[OpenMP,MLIR] Translation of parallel operation: num_threads, if clauses 3/n

This simple patch translates the num_threads and if clauses of the parallel
operation. Also includes test cases.
A minor change was made to parsing of the if clause to parse AnyType and
return the parsed type. Updates to test cases also.

Reviewed by: SouraVX
Differential Revision: https://reviews.llvm.org/D84798
The file was modifiedmlir/test/Dialect/OpenMP/ops.mlir (diff)
The file was modifiedmlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp (diff)
The file was modifiedmlir/test/Target/openmp-llvm.mlir (diff)
The file was modifiedmlir/test/Dialect/OpenMP/invalid.mlir (diff)
The file was modifiedmlir/lib/Target/LLVMIR/ModuleTranslation.cpp (diff)
Commit 7d4996033bc57c5fa4153a0191ed48f4d287f48c by Vitaly Buka
[StackSafety,NFC] Add Stats counters
The file was modifiedllvm/lib/Analysis/StackSafetyAnalysis.cpp (diff)
Commit 7547508b7ae0985bde2b2cbba953f87e5c30e242 by Vitaly Buka
Revert "[StackSafety] Skip ambiguous lifetime analysis"

This reverts commit 0b2616a8045cb776ea1514c3401d0a8577de1060.

Crashes with safe-stack.
The file was modifiedllvm/test/Analysis/StackSafetyAnalysis/lifetime.ll (diff)
The file was modifiedllvm/include/llvm/Analysis/StackLifetime.h (diff)
The file was modifiedllvm/lib/Analysis/StackLifetime.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/stack-tagging.ll (diff)