FailedChanges

Summary

  1. [ArgumentPromotion]: Copy function metadata after promoting arguments (details)
  2. [lldb, tests] Correctly configure the yaml2obj paths (details)
  3. [gcov] Delete flush_fn_list (unused since D83149) (details)
  4. [NFC][ThinLTO] Let llvm::EmbedBitcodeInModule handle serialization. (details)
  5. Revert D86875 "[Flang][NFC] Remove license comments from files in docs/ folder." (details)
  6. [compiler-rt] [netbsd] Add fallback definitions for MKISCSI=no (details)
  7. [compiler-rt] [netbsd] Improve code formatting (details)
  8. [ImplicitNullCheck] Handle instructions that preserve zero value (details)
  9. [Support] Use unique_function rather than std::function for ThreadPool TaskTy. (details)
  10. [NFC] Fix whitespace in lldb-vscode --help (details)
  11. [PGO] Skip if an IndirectBrInst critical edge cannot be split (details)
  12. [compiler-rt] [netbsd] Update generate_netbsd_syscalls.awk (details)
  13. [compiler-rt] [netbsd] Regenerate syscall hooks (details)
  14. [SLPVectorizer][X86][AMDGPU] Remove fcmp+select to fmin/fmax reduction support. (details)
  15. Revert "[Support] Use unique_function rather than std::function for ThreadPool TaskTy." (details)
  16. [WebAssembly] Set unreachable as canonical to permit disassembly (details)
  17. Make struct dialects have the same field name as everything else, 'dialect'. (details)
  18. Allow Dialects to be initialized via nullptr. (details)
  19. [gn build] (semi-manually) port 009cd4e4910 (details)
  20. Fix operator!= for Dialects. (details)
  21. [Hexagon] Split pair-based masked memops (details)
  22. [SVE] Bail from VectorUtils heuristics for scalable vectors (details)
  23. [ImplicitNullChecks] NFC: Remove unused PointerReg arg in dep analysis (details)
  24. [libc][NFC][obvious] Remove a redudant dep of strcmp implementation. (details)
  25. Diable sanitizer options for amdgpu (details)
  26. GlobalISel: Combine fneg(fneg x) to x (details)
  27. [InstCombine] Regenerate test checks (NFC) (details)
  28. [InstCombine] Add more tests for select op replacement (NFC) (details)
  29. [DemandedBits] Add braces to large if (NFC) (details)
  30. [DemandedBits][BDCE] Add support for min/max intrinsics (details)
  31. [ORC] Make MaterializationResponsibility immovable, pass by unique_ptr. (details)
  32. [libc][obvious] Include Sqrt.h in SqrtLongDoubleX86.h. (details)
  33. [EarlyCSE] Equivalent SELECTs should hash equally (details)
  34. [DSE] Switch to MemorySSA-backed DSE by default. (details)
  35. [ELF] Make two PPC64.cpp variables constexpr. NFC (details)
  36. [flang] Fix assert on constant folding of extended types (details)
  37. Use pragmas to work around MSVC x86_32 debug miscompile bug (details)
  38. [AArch64][GlobalISel] Don't emit a branch for a fallthrough G_BR at -O0. (details)
  39. Fix wrong comment about enabling optimizations to work around a bug (details)
  40. Remove unused variable introduce in 0448d11a06b451a causing build (details)
  41. [obj2yaml] Add support for dumping the .debug_ranges section. (details)
  42. [lldb] Add missing LLDB_REGISTER_CONSTRUCTOR in SBPlatform (details)
  43. [mlir][Analysis] Allow Slice Analysis to work with linalg::LinalgOp (details)
  44. scudo: Introduce a new mechanism to let Scudo access a platform-specific TLS slot (details)
  45. scudo: Remove the THREADLOCAL macro. (details)
  46. Remove dependency on clangASTMatchers. (details)
  47. Revert "[EarlyCSE] Equivalent SELECTs should hash equally" (details)
  48. [Asan] Fix __asan_update_allocation_context (details)
  49. [EarlyCSE] Fix and recommit the revised c9826829d74e637163fdb0351870b8204e62d6e6 (details)
  50. libclc/spirv: Add missing files from D85911 (details)
  51. [NFC][MLInliner] Presort instruction successions. (details)
  52. [DebugInfo] Fixing CodeView assert related to lowerBound field of DISubrange. (details)
  53. [EarlyCSE] Remove unnecessary operand swap. (details)
  54. [NFC][PowerPC] Add tests of constants-i64. (details)
  55. [Clang] Clarify __builtin_memcpy_inline documentation (details)
  56. [CodeGen] [WinException] Remove a redundant explicit section switch for aarch64 (details)
  57. [MC] [Win64EH] Canonicalize ARM64 unwind opcodes (details)
  58. [MC] [Win64EH] Write packed ARM64 epilogues if possible (details)
  59. [NewPM] Introduce PreserveCFG check (details)
  60. [SVE][CodeGen] Fix InlineFunction for scalable vectors (details)
  61. [mlir][Linalg] Make LinalgBaseTilingPattern not delete the original operation. (details)
  62. [clang][Sparc] Default to -mcpu=v9 for Sparc V8 on Solaris (details)
  63. Uncapitalize word in LanguageExtensions.rst (details)
  64. [mlir] Fix generation of AVX512 dialect documentation (details)
  65. [MC] [Win64EH] Fix builds with expensive checks enabled (details)
  66. Revert "[ORC] Make MaterializationResponsibility immovable, pass by unique_ptr." (details)
Commit 6b13cfe7399b0aba726873f807ddfcdd9f967563 by etiotto
[ArgumentPromotion]: Copy function metadata after promoting arguments

The argument promotion pass currently fails to copy function annotations
over to the modified function after promoting arguments.
This patch copies the original function annotation to the new function.

Reviewed By: fhann

Differential Revision: https://reviews.llvm.org/D86630
The file was modifiedllvm/test/Transforms/ArgumentPromotion/profile.ll (diff)
The file was modifiedllvm/lib/Transforms/IPO/ArgumentPromotion.cpp (diff)
Commit c464f1d8f9a04d7b4b6cc81eac0891c46aba5950 by stilis
[lldb, tests] Correctly configure the yaml2obj paths

They are currently not being set correctly for the case of multi-config generators like XCode and VS. There's also a typo in one of the cmake files.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D87466
The file was modifiedlldb/utils/lldb-dotest/CMakeLists.txt (diff)
The file was modifiedlldb/test/API/lit.site.cfg.py.in (diff)
Commit ab1de1fcfb0c53bc768deb8f8bacefad7d378b7b by i
[gcov] Delete flush_fn_list (unused since D83149)
The file was modifiedclang/lib/Driver/ToolChains/Darwin.cpp (diff)
The file was modifiedcompiler-rt/lib/profile/GCDAProfiling.c (diff)
Commit e543708e5ea7af0ec3ef11d6fe932db507472aa1 by mtrofin
[NFC][ThinLTO] Let llvm::EmbedBitcodeInModule handle serialization.

llvm::EmbedBitcodeInModule handles serializing the passed-in module, if
the provided MemoryBufferRef is invalid. This is already the path taken
in one of the uses of the API - clang::EmbedBitcode, when called from
BackendConsumer::HandleTranslationUnit - so might as well do the same
here and reduce (by very little) code duplication.

The only difference this patch introduces is that the serialization happens
with ShouldPreserveUseListOrder set to true.

Differential Revision: https://reviews.llvm.org/D87339
The file was modifiedllvm/lib/Bitcode/Writer/BitcodeWriter.cpp (diff)
The file was modifiedllvm/include/llvm/Bitcode/BitcodeWriter.h (diff)
The file was modifiedllvm/lib/LTO/LTOBackend.cpp (diff)
Commit 932aae77e92b08e63c0225b6eb37dfa80b310313 by SourabhSingh.Tomar
Revert D86875 "[Flang][NFC] Remove license comments from files in docs/ folder."

This reverts commit f787c9a90c69f, this was causing some build issues.
The file was modifiedflang/docs/Directives.md (diff)
The file was modifiedflang/docs/Overview.md (diff)
The file was modifiedflang/docs/ControlFlowGraph.md (diff)
The file was modifiedflang/docs/FortranIR.md (diff)
The file was modifiedflang/docs/OpenMP-semantics.md (diff)
The file was modifiedflang/docs/Extensions.md (diff)
The file was modifiedflang/docs/Semantics.md (diff)
The file was modifiedflang/docs/Character.md (diff)
The file was modifiedflang/docs/ImplementingASemanticCheck.md (diff)
The file was modifiedflang/docs/ModFiles.md (diff)
The file was modifiedflang/docs/OptionComparison.md (diff)
The file was modifiedflang/docs/RuntimeDescriptor.md (diff)
The file was modifiedflang/docs/Parsing.md (diff)
The file was modifiedflang/docs/LabelResolution.md (diff)
The file was modifiedflang/docs/Preprocessing.md (diff)
The file was modifiedflang/docs/C++17.md (diff)
The file was modifiedflang/docs/Intrinsics.md (diff)
The file was modifiedflang/docs/PullRequestChecklist.md (diff)
The file was modifiedflang/docs/FortranForCProgrammers.md (diff)
The file was modifiedflang/docs/ParserCombinators.md (diff)
The file was modifiedflang/docs/ArrayComposition.md (diff)
The file was modifiedflang/docs/IORuntimeInternals.md (diff)
The file was modifiedflang/docs/C++style.md (diff)
The file was modifiedflang/docs/Calls.md (diff)
Commit cb8cb28ed90a10390bacb264d3b6cbb09c2ea94c by n54
[compiler-rt] [netbsd] Add fallback definitions for MKISCSI=no

Add dev/iscsi/iscsi_ioctl.h fallback ioctl(2) operations.
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cpp (diff)
Commit b85c085c846c2cb5d24812555847846877ca13cb by n54
[compiler-rt] [netbsd] Improve code formatting

No functional change.
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h (diff)
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cpp (diff)
Commit 46329f6079da99133eab7942e79226b2afb40e75 by anna
[ImplicitNullCheck] Handle instructions that preserve zero value

This is the first in a series of patches to make implicit null checks
more general. This patch identifies instructions that preserves zero
value of a register and considers that as a valid instruction to hoist
along with the faulting load. See added testcases.

Reviewed-By: reames, dantrushin

Differential Revision: https://reviews.llvm.org/D87108
The file was modifiedllvm/include/llvm/CodeGen/TargetInstrInfo.h (diff)
The file was modifiedllvm/test/CodeGen/X86/implicit-null-check.ll (diff)
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.cpp (diff)
The file was modifiedllvm/lib/CodeGen/ImplicitNullChecks.cpp (diff)
The file was modifiedllvm/lib/Target/X86/X86InstrInfo.h (diff)
The file was modifiedllvm/test/CodeGen/X86/implicit-null-check-negative.ll (diff)
Commit d9c8b0256cfc673c2413b13993c9440be598818f by Lang Hames
[Support] Use unique_function rather than std::function for ThreadPool TaskTy.

This will allow non-copyable function objects (e.g. lambdas that capture
unique_ptrs) to be used with ThreadPool.

Differential Revision: https://reviews.llvm.org/D87467
The file was modifiedllvm/include/llvm/Support/ThreadPool.h (diff)
The file was modifiedllvm/unittests/Support/ThreadPool.cpp (diff)
Commit 6040d525507ba8a2593f0906259d012725b6aed2 by rupprecht
[NFC] Fix whitespace in lldb-vscode --help
The file was modifiedlldb/tools/lldb-vscode/lldb-vscode.cpp (diff)
Commit a0ffe2b21a5159f3f8eed8e98e488e723aa7cab3 by i
[PGO] Skip if an IndirectBrInst critical edge cannot be split

PGOInstrumentation runs `SplitIndirectBrCriticalEdges` but some IndirectBrInst
critical edge cannot be split. `getInstrBB` will crash when calling `SplitCriticalEdge`, e.g.

  int foo(char *p) {
    void *targets[2];
    targets[0] = &&indirect;
    targets[1] = &&end;
    for (;; p++)
      if (*p == 7) {
  indirect:
        goto *targets[p[1]]; // the self loop is critical in -O
      }
  end:
    return 0;
  }

Skip such critical edges to prevent a crash.

Reviewed By: davidxl, lebedev.ri

Differential Revision: https://reviews.llvm.org/D87435
The file was modifiedllvm/test/Transforms/PGOProfile/split-indirectbr-critical-edges.ll (diff)
The file was modifiedllvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp (diff)
Commit bba736e5036f3983ca22f08dec277fdf37926115 by n54
[compiler-rt] [netbsd] Update generate_netbsd_syscalls.awk

Sync with NetBSD 9.99.72.
The file was modifiedcompiler-rt/utils/generate_netbsd_syscalls.awk (diff)
Commit 00460ae520e284ae8c0cd400c1c75c0c7a0e8fa7 by n54
[compiler-rt] [netbsd] Regenerate syscall hooks

Sync with NetBSD 9.99.72.
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_syscalls_netbsd.inc (diff)
The file was modifiedcompiler-rt/include/sanitizer/netbsd_syscall_hooks.h (diff)
Commit c195ae2f003261f2c25f569b07ae556dee57f17d by craig.topper
[SLPVectorizer][X86][AMDGPU] Remove fcmp+select to fmin/fmax reduction support.

Previously we could match fcmp+select to a reduction if the fcmp had
the nonans fast math flag. But if the select had the nonans fast
math flag, InstCombine would turn it into a fminnum/fmaxnum intrinsic
before SLP gets to it. Seems fairly likely that if one of the
fcmp+select pair have the fast math flag, they both would.

My plan is to start vectorizing the fmaxnum/fminnum version soon,
but I wanted to get this code out as it had some of the strangest
fast math flag behaviors.
The file was modifiedllvm/test/Transforms/SLPVectorizer/AMDGPU/horizontal-store.ll (diff)
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll (diff)
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp (diff)
The file was modifiedllvm/test/Transforms/SLPVectorizer/AMDGPU/reduction.ll (diff)
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/horizontal-list.ll (diff)
Commit 54fcea86b1658f5fc70f4f1e7a763f87742d79bc by Lang Hames
Revert "[Support] Use unique_function rather than std::function for ThreadPool TaskTy."

This reverts commit d9c8b0256cfc673c2413b13993c9440be598818f.

Some MSVC std::packaged_task implementations are not compatible with move-only types.
This caused failures on some of the Windows builders (e.g.
http://lab.llvm.org:8011/builders/sanitizer-windows/builds/69412).

Reverting until I can come up with a workaround.
The file was modifiedllvm/include/llvm/Support/ThreadPool.h (diff)
The file was modifiedllvm/unittests/Support/ThreadPool.cpp (diff)
Commit 4252f3009b169db250559d6a197b399375f89b27 by d.c.ddcc
[WebAssembly] Set unreachable as canonical to permit disassembly

Currently, using llvm-objdump to disassemble a function containing
unreachable will trigger an assertion while decoding the opcode, since both
unreachable and debug_unreachable have the same encoding. To avoid this, set
unreachable as the canonical decoding.

Differential Revision: https://reviews.llvm.org/D87431
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrControl.td (diff)
Commit a39423084cbbeb59e81002e741190dccf08b5c82 by joker.eph
Make struct dialects have the same field name as everything else, 'dialect'.

Also make the behavior of getting a dialect more forgiving, in the case where
there isn't a dialect associated with an attribute.

Depends On D86807

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D86809
The file was modifiedmlir/include/mlir/IR/OpBase.td (diff)
The file was modifiedmlir/lib/TableGen/Attribute.cpp (diff)
Commit d867be5de389f18cf3c1a61c8b9cbf8bfda8fe28 by joker.eph
Allow Dialects to be initialized via nullptr.

This allows Dialect to follow the MLIR style of nullable objects, and in fact is expected by `Dialect::operator bool() const` which already tests whether `def == nullptr`. This just wasn't a reachable situation, because the constructor was dereferencing the pointer unconditionally.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D86807
The file was modifiedmlir/lib/TableGen/Dialect.cpp (diff)
Commit 5692497aef08ab4810f125669bc2f6aa79d9ec7e by thakis
[gn build] (semi-manually) port 009cd4e4910
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Target/PowerPC/BUILD.gn (diff)
Commit 2141705337989195b448e292955f08884babbcbd by joker.eph
Fix operator!= for Dialects.

Currently the global operator!=(bool, bool) is selected due to the implicit bool
conversion operator. Since this is never the desired semantics, we give it a
standard operator!= and make the bool conversion explicit.

Depends On D86809

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D86810
The file was modifiedmlir/include/mlir/TableGen/Dialect.h (diff)
Commit 783e28a50839e045b72ec11946295fba104642fc by kparzysz
[Hexagon] Split pair-based masked memops
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp (diff)
The file was addedllvm/test/CodeGen/Hexagon/autohvx/isel-split-masked.ll
Commit 7ddfd9b3ebfd3f3db7c6c2e8c72308ff3a3426f2 by ctetreau
[SVE] Bail from VectorUtils heuristics for scalable vectors

Bail from maskIsAllZeroOrUndef and maskIsAllOneOrUndef prior to iterating over the number of
elements for scalable vectors.

Assert that the mask type is not scalable in possiblyDemandedEltsInMask .

Assert that the types are correct in all three functions.

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D87424
The file was addedllvm/test/Transforms/InstCombine/AArch64/VectorUtils_heuristics.ll
The file was modifiedllvm/lib/Analysis/VectorUtils.cpp (diff)
The file was modifiedllvm/include/llvm/Analysis/VectorUtils.h (diff)
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp (diff)
Commit b1b9806370196234a62304d308a9f8873759ec28 by anna
[ImplicitNullChecks] NFC: Remove unused PointerReg arg in dep analysis

The PointerReg arg was passed into the dependence function for an
assertion which no longer exists. So, this patch updates the dependence
functions to avoid the PointerReg in the signature.

Tests-Run: make check
The file was modifiedllvm/lib/CodeGen/ImplicitNullChecks.cpp (diff)
Commit 878cb5170de9bf03798a40185952bdf50fe4a15e by sivachandra
[libc][NFC][obvious] Remove a redudant dep of strcmp implementation.
The file was modifiedlibc/src/string/CMakeLists.txt (diff)
Commit 4934127e627d7c58342be15bc9230a7cbdf5273f by Yaxun.Liu
Diable sanitizer options for amdgpu

Currently AMDGPU does not support sanitizer. Disable
sanitizer options for now until they are supported.

Differential Revision: https://reviews.llvm.org/D87461
The file was addedclang/test/Driver/hip-sanitize-options.hip
The file was modifiedclang/lib/Driver/SanitizerArgs.cpp (diff)
Commit d4bf90271fa988101bdad4f2e78b8c3a0b85fc2d by vkeles
GlobalISel: Combine fneg(fneg x) to x

https://reviews.llvm.org/D87473
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp (diff)
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td (diff)
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h (diff)
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/combine-fneg.mir
Commit adb738899e6378ae0023acb19cde57a585dce502 by nikita.ppv
[InstCombine] Regenerate test checks (NFC)
The file was modifiedllvm/test/Transforms/InstCombine/rem.ll (diff)
The file was modifiedllvm/test/Transforms/InstCombine/select-binop-cmp.ll (diff)
The file was modifiedllvm/test/Transforms/InstCombine/select.ll (diff)
Commit 476836331f7d31ca46779742dccf2e26698b94ed by nikita.ppv
[InstCombine] Add more tests for select op replacement (NFC)
The file was modifiedllvm/test/Transforms/InstCombine/select.ll (diff)
Commit 99e78cb7185db1a15afd33020a1e026dc7ac5e1b by nikita.ppv
[DemandedBits] Add braces to large if (NFC)

While the if only contains a single statement, it happens to be
a huge switch. Add braces to make this code easier to read.
The file was modifiedllvm/lib/Analysis/DemandedBits.cpp (diff)
Commit a5168bdb4a25485ac62e18bdc538b4842bc9fbd9 by nikita.ppv
[DemandedBits][BDCE] Add support for min/max intrinsics

Add DemandedBits / BDCE support for min/max intrinsics: If the low
bits are not demanded in the result, they also aren't demanded in
the operands.

Differential Revision: https://reviews.llvm.org/D87161
The file was modifiedllvm/test/Transforms/BDCE/intrinsics.ll (diff)
The file was modifiedllvm/lib/Analysis/DemandedBits.cpp (diff)
Commit c74900ca67241bf963b7a4cfa1fae8eadf6bb8cd by Lang Hames
[ORC] Make MaterializationResponsibility immovable, pass by unique_ptr.

Making MaterializationResponsibility instances immovable allows their
associated VModuleKeys to be updated by the ExecutionSession while the
responsibility is still in-flight. This will be used in the upcoming
removable code feature to enable safe merging of resource keys even if
there are active compiles using the keys being merged.
The file was modifiedllvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/Core.cpp (diff)
The file was modifiedllvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/Layer.cpp (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Core.h (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Layer.h (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Speculation.h (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/LazyReexports.cpp (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h (diff)
The file was modifiedllvm/examples/SpeculativeJIT/SpeculativeJIT.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/Speculation.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp (diff)
The file was modifiedllvm/unittests/ExecutionEngine/Orc/LazyCallThroughAndReexportsTest.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/LLJIT.cpp (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h (diff)
Commit cb19e8c6d192a108b72ab07362921864a9e244f9 by sivachandra
[libc][obvious] Include Sqrt.h in SqrtLongDoubleX86.h.

This makes SqrtLongDoubleX86.h includable by itself.
The file was modifiedlibc/utils/FPUtil/SqrtLongDoubleX86.h (diff)
Commit c9826829d74e637163fdb0351870b8204e62d6e6 by bryan.chan
[EarlyCSE] Equivalent SELECTs should hash equally

DenseMap<SimpleValue> assumes that, if its isEqual method returns true
for two elements, then its getHashValue method must return the same value
for them. This invariant is broken when one SELECT node is a min/max
operation, and the other can be transformed into an equivalent min/max by
inverting its predicate and swapping its operands. This patch fixes an
assertion failure that would occur intermittently while compiling the
following IR:

    define i32 @t(i32 %i) {
      %cmp = icmp sle i32 0, %i
      %twin1 = select i1 %cmp, i32 %i, i32 0
      %cmpinv = icmp sgt i32 0, %i
      %twin2 = select i1 %cmpinv,  i32 0, i32 %i
      %sink = add i32 %twin1, %twin2
      ret i32 %sink
    }

Differential Revision: https://reviews.llvm.org/D86843
The file was modifiedllvm/test/Transforms/EarlyCSE/commute.ll (diff)
The file was modifiedllvm/lib/Transforms/Scalar/EarlyCSE.cpp (diff)
Commit fb109c42d91c30c8c7497ef1fd7aff6f2969c6e7 by flo
[DSE] Switch to MemorySSA-backed DSE by default.

The tests have been updated and I plan to move them from the MSSA
directory up.

Some end-to-end tests needed small adjustments. One difference to the
legacy DSE is that legacy DSE also deletes trivially dead instructions
that are unrelated to memory operations. Because MemorySSA-backed DSE
just walks the MemorySSA, we only visit/check memory instructions. But
removing unrelated dead instructions is not really DSE's job and other
passes will clean up.

One noteworthy change is in llvm/test/Transforms/Coroutines/ArgAddr.ll,
but I think this comes down to legacy DSE not handling instructions that
may throw correctly in that case. To cover this with MemorySSA-backed
DSE, we need an update to llvm.coro.begin to treat it's return value to
belong to the same underlying object as the passed pointer.

There are some minor cases MemorySSA-backed DSE currently misses, e.g. related
to atomic operations, but I think those can be implemented after the switch.

This has been discussed on llvm-dev:
http://lists.llvm.org/pipermail/llvm-dev/2020-August/144417.html

For the MultiSource/SPEC2000/SPEC2006 the number of eliminated stores
goes from ~17500 (legayc DSE) to ~26300 (MemorySSA-backed). More numbers
and details in the thread on llvm-dev.

Impact on CTMark:
```
                                     Legacy Pass Manager
                        exec instrs    size-text
O3                       + 0.60%        - 0.27%
ReleaseThinLTO           + 1.00%        - 0.42%
ReleaseLTO-g.            + 0.77%        - 0.33%
RelThinLTO (link only)   + 0.87%        - 0.42%
RelLO-g (link only)      + 0.78%        - 0.33%
```
http://llvm-compile-time-tracker.com/compare.php?from=3f22e96d95c71ded906c67067d75278efb0a2525&to=ae8be4642533ff03803967ee9d7017c0d73b0ee0&stat=instructions
```
                                     New Pass Manager
                       exec instrs.   size-text
O3                       + 0.95%       - 0.25%
ReleaseThinLTO           + 1.34%       - 0.41%
ReleaseLTO-g.            + 1.71%       - 0.35%
RelThinLTO (link only)   + 0.96%       - 0.41%
RelLO-g (link only)      + 2.21%       - 0.35%
```
http://195.201.131.214:8000/compare.php?from=3f22e96d95c71ded906c67067d75278efb0a2525&to=ae8be4642533ff03803967ee9d7017c0d73b0ee0&stat=instructions

Reviewed By: asbirlea, xbolva00, nikic

Differential Revision: https://reviews.llvm.org/D87163
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/noop-stores.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/PartialStore2.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-and-memcpy.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/invariant.start.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-malloc-free.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic-overlapping.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-missing-debugloc.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-loops.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/OverwriteStoreEnd.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-03-25-DSEMiscompile.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/launder.invariant.group.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/debug-counter.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/int_sideeffect.ll (diff)
The file was modifiedclang/test/CodeGenObjC/exceptions.m (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-multipath-throwing.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-simple.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/pr47285-not-overwritten-on-all-exit-paths.ll (diff)
The file was modifiedllvm/test/Transforms/Coroutines/coro-retcon.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memoryssa-scan-limit.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/operand-bundles.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple-todo.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/lifetime.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-multipath.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2016-07-17-UseAfterFree.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memcpy-complete-overwrite.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-exceptions.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/debuginfo.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-09-06-EndOfFunction.ll (diff)
The file was modifiedllvm/test/Other/new-pm-thinlto-defaults.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-captures.ll (diff)
The file was modifiedllvm/test/Other/opt-O3-pipeline.ll (diff)
The file was modifiedllvm/test/Transforms/MemCpyOpt/memcpy.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/dominate.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/combined-partial-overwrites.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/libcalls.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/overlap.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/stats.ll (diff)
The file was modifiedllvm/test/Other/opt-Os-pipeline.ll (diff)
The file was modifiedllvm/test/Transforms/Coroutines/ArgAddr.ll (diff)
The file was modifiedllvm/test/Other/opt-O3-pipeline-enable-matrix.ll (diff)
The file was modifiedllvm/test/Other/new-pm-defaults.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-09-06-MemCpy.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/fence.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/merge-stores-big-endian.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-throwing.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/pr11390.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/X86/gather-null-pointer.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic-todo.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/merge-stores.ll (diff)
The file was modifiedllvm/test/Other/opt-O2-pipeline.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/fence-todo.ll (diff)
The file was modifiedllvm/test/CodeGen/AMDGPU/opt-pipeline.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-memintrinsics.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-overlap.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple-preservation.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/free.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-unreachable.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/tail-byval.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/crash.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-unknown-sizes.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/inst-limits.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/calloc-store.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/cs-cs-aliasing.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memintrinsics.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/mda-with-dbg-values.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-memoryphis.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/PartialStore.ll (diff)
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp (diff)
The file was modifiedllvm/test/Other/new-pm-lto-defaults.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-partial.ll (diff)
The file was modifiedllvm/test/Analysis/BasicAA/modref.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/OverwriteStoreBegin.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/const-pointers.ll (diff)
The file was modifiedclang/test/CodeGen/thinlto-distributed-newpm.ll (diff)
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/no-targetdata.ll (diff)
Commit 485f3f35cc511637661619967319eafb932df5d5 by i
[ELF] Make two PPC64.cpp variables constexpr. NFC

Why are they mutable? :)
The file was modifiedlld/ELF/Arch/PPC64.cpp (diff)
Commit b34f116856306d97aa9244a46eb1643a8ddd49a8 by psteinfeld
[flang] Fix assert on constant folding of extended types

When we define a derived type that extends another derived type, we can then
create a structure constructor that contains values for the fields of both the
child type and its parent.  The compiler's internal representation of that
value contains the name of the parent type where a component name would
normally appear.  This caused an assert during contant folding.

There are three cases for components that appear in structure constructors.
The first is the normal case of a component appearing in a structure
constructor for its type.

  The second is a component of the parent (or grandparent) type appearing in a
  structure constructor for the child type.

  The third is the parent type component, which can appear in the structure
  constructor of its child.

There are also cases where the component can be arrays.

I created the test case folding12.f90 that covers all of these cases and
modified the code to handle them.

Most of my changes were to the "Find()" method of the type
"StructureConstructor" where I added code to cover the second and third cases
described above.  To handle these cases, I needed to create a
"StructureConstructor" for the parent type component and return it.  To handle
returning a newly created "StructureConstructor", I changed the return type of
"Find()" to be "std::optional" rather than an ordinary pointer.

This change supersedes D86172.

Differential Revision: https://reviews.llvm.org/D87151
The file was modifiedflang/include/flang/Evaluate/type.h (diff)
The file was modifiedflang/include/flang/Evaluate/expression.h (diff)
The file was modifiedflang/lib/Evaluate/expression.cpp (diff)
The file was modifiedflang/lib/Evaluate/fold-implementation.h (diff)
The file was modifiedflang/lib/Evaluate/type.cpp (diff)
The file was addedflang/test/Evaluate/folding12.f90
Commit 4e3edef4b8b637c0c76897497eb7c66f00157210 by rnk
Use pragmas to work around MSVC x86_32 debug miscompile bug

Halide users reported this here: https://llvm.org/pr46176
I reported the issue to MSVC here:
https://developercommunity.visualstudio.com/content/problem/1179643/msvc-copies-overaligned-non-trivially-copyable-par.html

This codepath is apparently not covered by LLVM's unit tests, so I added
coverage in a unit test.

If we want to support this configuration going forward, it means that is
in general not safe to pass a SmallVector<T, N> by value if alignof(T)
is greater than 4. This doesn't appear to come up often because passing
a SmallVector by value is inefficient and not idiomatic: it copies the
inline storage. In this case, the SmallVector<LLT,4> is captured by
value by a lambda, and the lambda is passed by value into std::function,
and that's how we hit the bug.

Differential Revision: https://reviews.llvm.org/D87475
The file was modifiedllvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp (diff)
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp (diff)
Commit 0448d11a06b451a63a8f60408fec613ad24801ba by Amara Emerson
[AArch64][GlobalISel] Don't emit a branch for a fallthrough G_BR at -O0.

With optimizations we leave the decision to eliminate fallthrough branches to
bock placement, but at -O0 we should do it in the selector to save code size.

This regressed -O0 with a recent change to a combiner.
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-xor.mir (diff)
The file was modifiedllvm/test/CodeGen/AArch64/unwind-preserved.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-returnaddress-liveins.mir (diff)
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-binop.mir (diff)
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-jump-table-brjt-constrain.mir (diff)
Commit 2c73bef7fad4bb92213c9e8ace7d98a231efe027 by rnk
Fix wrong comment about enabling optimizations to work around a bug
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp (diff)
Commit 035396197a5f129c5ec42e9e46a85c32fa1c1b84 by zarko
Remove unused variable introduce in 0448d11a06b451a causing build
failures with -Werror on.
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp (diff)
Commit 0e47a8d17fe85b4ab810a17cde4178b2729f2363 by Xing
[obj2yaml] Add support for dumping the .debug_ranges section.

This patch adds support for dumping the .debug_ranges section to
elf2yaml.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D87429
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp (diff)
The file was addedllvm/test/tools/obj2yaml/ELF/DWARF/debug-ranges.yaml
Commit bc0a35f3b7dd45077d16b064c8d5c37e6a907d58 by Jonas Devlieghere
[lldb] Add missing LLDB_REGISTER_CONSTRUCTOR in SBPlatform

This fixes the following assertion in TestPlatformPython.py.

  Assertion failed: (id != 0 && "Forgot to add function to
  registry?")
The file was modifiedlldb/source/API/SBPlatform.cpp (diff)
Commit 0a391c60793bae25804d2a82e5a26e2b9c7a69a1 by ravishankarm
[mlir][Analysis] Allow Slice Analysis to work with linalg::LinalgOp

Differential Revision: https://reviews.llvm.org/D87307
The file was modifiedmlir/test/lib/IR/CMakeLists.txt (diff)
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp (diff)
The file was modifiedmlir/lib/Analysis/SliceAnalysis.cpp (diff)
The file was addedmlir/test/lib/IR/TestSlicing.cpp
The file was addedmlir/test/IR/slice.mlir
Commit 84c2c4977dfe89112fd564a69c693d271663229c by peter
scudo: Introduce a new mechanism to let Scudo access a platform-specific TLS slot

An upcoming change to Scudo will change how we use the TLS slot
in tsd_shared.h, which will be a little easier to deal with if
we can remove the code path that calls pthread_getspecific and
pthread_setspecific. The only known user of this code path is Fuchsia.

We can't eliminate this code path by making Fuchsia use ELF TLS
because although Fuchsia supports ELF TLS, it is not supported within
libc itself. To address this, Roland McGrath on the Fuchsia team has
proposed that Scudo will optionally call a platform-provided function
to access a TLS slot reserved for Scudo. Android also has a reserved
TLS slot, but the code that accesses the TLS slot lives in Scudo.

We can eliminate some complexity and duplicated code by having Android
use the same mechanism that was proposed for Fuchsia, which is what
this change does. A separate change to Android implements it.

Differential Revision: https://reviews.llvm.org/D87420
The file was modifiedcompiler-rt/lib/scudo/standalone/tsd_shared.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/linux.h (diff)
Commit d876c7c8ec5387aac14041cace1833b243e5b335 by peter
scudo: Remove the THREADLOCAL macro.

Replace all remaining uses with thread_local, which is a C++11
standard feature.

Differential Revision: https://reviews.llvm.org/D87478
The file was modifiedcompiler-rt/lib/scudo/standalone/internal_defs.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/tsd_exclusive.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/primary_test.cpp (diff)
Commit b22d45049682d1461b6b786f159681e2e5c2ce24 by michael.hliao
Remove dependency on clangASTMatchers.

- It seems no long required for shared library builds.
The file was modifiedclang/lib/CodeGen/CMakeLists.txt (diff)
Commit 39dc75f66c60025539940ff47b105418645c025f by michael.hliao
Revert "[EarlyCSE] Equivalent SELECTs should hash equally"

This reverts commit c9826829d74e637163fdb0351870b8204e62d6e6 as it
breaks regression tests.
The file was modifiedllvm/lib/Transforms/Scalar/EarlyCSE.cpp (diff)
The file was modifiedllvm/test/Transforms/EarlyCSE/commute.ll (diff)
Commit 3f7c3e84ad69f1ffa767b1b7ce3aa36de6c30f87 by Vitaly Buka
[Asan] Fix __asan_update_allocation_context

Update both thread and stack.
Update thread and stack as atomic operation.
Keep all 32bit of TID as now we have enough bits.

Depends on D87135.

Reviewed By: morehouse

Differential Revision: https://reviews.llvm.org/D87217
The file was modifiedcompiler-rt/test/asan/TestCases/asan_update_allocation.cpp (diff)
The file was modifiedcompiler-rt/lib/asan/asan_allocator.cpp (diff)
The file was modifiedcompiler-rt/lib/asan/asan_allocator.h (diff)
Commit 41e68f7ee7b3bb33e9acb0502339a858806e8523 by michael.hliao
[EarlyCSE] Fix and recommit the revised c9826829d74e637163fdb0351870b8204e62d6e6

In addition to calculate hash consistently by swapping SELECT's
operands, we also need to inverse the select pattern favor to match the
original logic.

[EarlyCSE] Equivalent SELECTs should hash equally

DenseMap<SimpleValue> assumes that, if its isEqual method returns true
for two elements, then its getHashValue method must return the same value
for them. This invariant is broken when one SELECT node is a min/max
operation, and the other can be transformed into an equivalent min/max by
inverting its predicate and swapping its operands. This patch fixes an
assertion failure that would occur intermittently while compiling the
following IR:

    define i32 @t(i32 %i) {
      %cmp = icmp sle i32 0, %i
      %twin1 = select i1 %cmp, i32 %i, i32 0
      %cmpinv = icmp sgt i32 0, %i
      %twin2 = select i1 %cmpinv,  i32 0, i32 %i
      %sink = add i32 %twin1, %twin2
      ret i32 %sink
    }

Differential Revision: https://reviews.llvm.org/D86843
The file was modifiedllvm/lib/Transforms/Scalar/EarlyCSE.cpp (diff)
The file was modifiedllvm/test/Transforms/EarlyCSE/commute.ll (diff)
Commit 16ba78ee627c3fe66906349e8c90ee8cc1224298 by jano.vesely
libclc/spirv: Add missing files from D85911

Fixes: 060c8e083dd637866854acb6a0823c45b2ef68ef
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
The file was addedlibclc/spirv/lib/math/fma.inc
The file was addedlibclc/spirv64/lib/math/fma.inc
The file was addedlibclc/spirv64/lib/math/fma.cl
The file was addedlibclc/spirv/lib/math/fma.cl
Commit da9244882804ec6479aac70334fd7f7b4baf855e by mtrofin
[NFC][MLInliner] Presort instruction successions.

Differential Revision: https://reviews.llvm.org/D87489
The file was modifiedllvm/lib/Analysis/InlineSizeEstimatorAnalysis.cpp (diff)
Commit e45b0708ae81ace27de53f12b32a80601cb12bf3 by SourabhSingh.Tomar
[DebugInfo] Fixing CodeView assert related to lowerBound field of DISubrange.

    This is to fix CodeView build failure https://bugs.llvm.org/show_bug.cgi?id=47287
    after DIsSubrange upgrade D80197

    Assert condition is now removed and Count is calculated in case LowerBound
    is absent or zero and Count or UpperBound is constant. If Count is unknown
    it is later handled as VLA (currently Count is set to zero).

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D87406
The file was modifiedllvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp (diff)
Commit f787fe15d8e1cb63b40235e781cd7c2e130bbcd6 by michael.hliao
[EarlyCSE] Remove unnecessary operand swap.

- As min/max are commutative operators, there is no need to swap
  operands. That breaks the convention calculating the hash value.
The file was modifiedllvm/test/CodeGen/AMDGPU/sad.ll (diff)
The file was modifiedllvm/lib/Transforms/Scalar/EarlyCSE.cpp (diff)
Commit 525c83cee00a3a92d9b1a9d6f39ee4fd6c0c798d by esme.yi
[NFC][PowerPC] Add tests of constants-i64.
The file was modifiedllvm/test/CodeGen/PowerPC/constants-i64.ll (diff)
Commit e38be7091ee3d00430652aaa7b66ba3fc8394916 by gchatelet
[Clang] Clarify __builtin_memcpy_inline documentation

This patch updates the documentation about `__builtin_memcpy_inline` and reorders the sections so it is more consitent and understandable.

Differential Revision: https://reviews.llvm.org/D87458
The file was modifiedclang/docs/LanguageExtensions.rst (diff)
Commit 46416f08031f6fcaccd9f51430f7a71c5f510495 by martin
[CodeGen] [WinException] Remove a redundant explicit section switch for aarch64

The following EmitWinEHHandlerData() implicitly switches to .xdata, just
like on x86_64.

This became orphaned from the original code requiring it in
0b61d220c9b1f0 / https://reviews.llvm.org/D61095.

Differential Revision: https://reviews.llvm.org/D87447
The file was modifiedllvm/lib/CodeGen/AsmPrinter/WinException.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/wineh1.mir (diff)
The file was modifiedllvm/test/CodeGen/AArch64/wineh-mingw.ll (diff)
The file was modifiedllvm/test/CodeGen/AArch64/win64-jumptable.ll (diff)
Commit 700fbe591ac0f29c76e9f2bd77d752d4bd56d274 by martin
[MC] [Win64EH] Canonicalize ARM64 unwind opcodes

Convert 2-byte opcodes to equivalent 1-byte ones.

Adjust the existing exhaustive testcase to avoid being altered by
the simplification rules (to keep that test exercising all individual
opcodes).

Fix the assembler parser limits for register pairs; for .seh_save_regp
and .seh_save_regp_x, we can allow up to x29, for a x29+x30 pair
(which gets remapped to the UOP_SaveFPLR(X) opcodes), for .seh_save_fregp
and .seh_save_fregpx, allow up to d14+d15.

Not creating .seh_save_next for float register pairs, as the
actual unwinder implementation in current versions of Windows is buggy
for that case.

This gives a minimal but measurable size reduction. (For a 6.5 MB
DLL with 300 KB .xdata, the .xdata shrinks by 48 bytes. The opcode
sequences are padded to a 4 byte boundary, so very small improvements
might not end up mattering directly.)

Differential Revision: https://reviews.llvm.org/D87367
The file was modifiedllvm/test/MC/AArch64/seh.s (diff)
The file was modifiedllvm/lib/MC/MCWin64EH.cpp (diff)
The file was modifiedllvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp (diff)
The file was addedllvm/test/MC/AArch64/seh-optimize.s
Commit 1308bb99e06752ab0b5175c92da31083f91af921 by martin
[MC] [Win64EH] Write packed ARM64 epilogues if possible

This gives a pretty substantial size reduction; for a 6.5 MB
DLL with 300 KB .xdata, the .xdata shrinks by 66 KB.

Differential Revision: https://reviews.llvm.org/D87369
The file was modifiedllvm/lib/MC/MCWin64EH.cpp (diff)
The file was modifiedllvm/test/CodeGen/AArch64/wineh3.mir (diff)
The file was addedllvm/test/MC/AArch64/seh-packed-epilog.s
The file was modifiedllvm/include/llvm/MC/MCWinEH.h (diff)
The file was modifiedllvm/test/CodeGen/AArch64/wineh7.mir (diff)
The file was modifiedllvm/test/CodeGen/AArch64/wineh6.mir (diff)
The file was modifiedllvm/test/MC/AArch64/seh.s (diff)
Commit 28012e00d80b994ef0709377da15e2b25e6c0b72 by yrouban
[NewPM] Introduce PreserveCFG check

Check that all passes, which report they preserve CFG,
are really preserving CFG.
A new standard instrumentation is introduced. It can be
switched on/off by the flag verify-cfg-preserved, which
is on by default for debug builds.

Reviewers: kuhar, fedor.sergeev

Differential Revision: https://reviews.llvm.org/D81558
The file was modifiedllvm/lib/Passes/StandardInstrumentations.cpp (diff)
The file was modifiedllvm/include/llvm/Passes/StandardInstrumentations.h (diff)
Commit 1e1770a07ec0f6a3576362ea5eb97aedd33f4b26 by david.sherwood
[SVE][CodeGen] Fix InlineFunction for scalable vectors

When inlining functions containing allocas of scalable vectors we
cannot specify the size in the lifetime markers, since we don't
know this at compile time.

Added new test here:

  test/Transforms/Inline/AArch64/sve-alloca-merge.ll

Differential Revision: https://reviews.llvm.org/D87139
The file was modifiedllvm/lib/Transforms/Utils/InlineFunction.cpp (diff)
The file was addedllvm/test/Transforms/Inline/AArch64/sve-alloca-merge.ll
Commit d380b582f7f04f7635b1fbdb8347a6095660a1b6 by ravishankarm
[mlir][Linalg] Make LinalgBaseTilingPattern not delete the original operation.

The LinalgTilingPattern class dervied from the base deletes the
original operation. This allows for the use case where the more
transformations are necessary on the original operation after
tiling. In such cases the pattern can derive from
LinalgBaseTilingPattern instead of LinalgTilingPattern.

Differential Revision: https://reviews.llvm.org/D87308
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp (diff)
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h (diff)
Commit 76e85ae268f8e64540703b0d1710d27ef0d36040 by ro
[clang][Sparc] Default to -mcpu=v9 for Sparc V8 on Solaris

As reported in Bug 42535, `clang` doesn't inline atomic ops on 32-bit
Sparc, unlike `gcc` on Solaris.  In a 1-stage build with `gcc`, only two
testcases are affected (currently `XFAIL`ed), while in a 2-stage build more
than 100 tests `FAIL` due to this issue.

The reason for this `gcc`/`clang` difference is that `gcc` on 32-bit
Solaris/SPARC defaults to `-mpcu=v9` where atomic ops are supported, unlike
with `clang`'s default of `-mcpu=v8`.  This patch changes `clang` to use
`-mcpu=v9` on 32-bit Solaris/SPARC, too.

Doing so uncovered two bugs:

`clang -m32 -mcpu=v9` chokes with any Solaris system headers included:

  /usr/include/sys/isa_defs.h:461:2: error: "Both _ILP32 and _LP64 are defined"
  #error "Both _ILP32 and _LP64 are defined"

While `clang` currently defines `__sparcv9` in a 32-bit `-mcpu=v9`
compilation, neither `gcc` nor Studio `cc` do.  In fact, the Studio 12.6
`cc(1)` man page clearly states:

            These predefinitions are valid in all modes:
  [...]
               __sparcv8 (SPARC)
               __sparcv9 (SPARC -m64)

At the same time, the patch defines `__GCC_HAVE_SYNC_COMPARE_AND_SWAP_[1248]`
for a 32-bit Sparc compilation with any V9 cpu.  I've also changed
`MaxAtomicInlineWidth` for V9, matching what `gcc` does and the Oracle
Developer Studio 12.6: C User's Guide documents (Ch. 3, Support for Atomic
Types, 3.1 Size and Alignment of Atomic C Types).

The two testcases that had been `XFAIL`ed for Bug 42535 are un-`XFAIL`ed
again.

Tested on `sparcv9-sun-solaris2.11` and `amd64-pc-solaris2.11`.

Differential Revision: https://reviews.llvm.org/D86621
The file was modifiedclang/lib/Basic/Targets/Sparc.h (diff)
The file was modifiedcompiler-rt/test/ubsan/TestCases/Float/cast-overflow.cpp (diff)
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.cpp (diff)
The file was modifiedcompiler-rt/test/profile/Posix/instrprof-gcov-parallel.test (diff)
The file was modifiedclang/lib/Basic/Targets/Sparc.cpp (diff)
The file was modifiedclang/test/Preprocessor/predefined-arch-macros.c (diff)
Commit b8ea47a38039c57e863e3047c33d8584e21360f0 by noreply
Uncapitalize word in LanguageExtensions.rst
The file was modifiedclang/docs/LanguageExtensions.rst (diff)
Commit a68673cc067a190f5a9d0f0e3e4837601caf4504 by marius.brehler
[mlir] Fix generation of AVX512 dialect documentation

This changes adjusts the documentation generation for the AVX512 dialect. The machanism to generate documentation was changed with https://github.com/llvm/llvm-project/commit/1a083f027f33f4014247df4c0e757e23d5cdab64.

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D87460
The file was modifiedmlir/include/mlir/Dialect/AVX512/CMakeLists.txt (diff)
Commit e6419d320d501077d1c5e1e7e1291a1ec6573877 by martin
[MC] [Win64EH] Fix builds with expensive checks enabled

This fixes a failed assert if expensive checks are enabled,
since 1308bb99e06752ab0b5175c92da31083f91af921.
The file was modifiedllvm/lib/MC/MCWin64EH.cpp (diff)
Commit c0825fa5fc367bb7dc04a4b9dd4cc62abde04521 by flo
Revert "[ORC] Make MaterializationResponsibility immovable, pass by unique_ptr."

This reverts commit c74900ca67241bf963b7a4cfa1fae8eadf6bb8cd.

This appears to be breaking some builds on macOS and has been causing
build failures on Green Dragon (see below). I am reverting this for now,
to unblock testing on Green Dragon.

http://green.lab.llvm.org/green/job/clang-stage1-cmake-RA-incremental/18144/console

[65/187] /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++  -DBUILD_EXAMPLES -DGTEST_HAS_RTTI=0 -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Iexamples/ThinLtoJIT -I/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/examples/ThinLtoJIT -Iinclude -I/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/include -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -fdiagnostics-color -O3  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.9    -fno-exceptions -fno-rtti -UNDEBUG -std=c++14 -MD -MT examples/ThinLtoJIT/CMakeFiles/ThinLtoJIT.dir/ThinLtoDiscoveryThread.cpp.o -MF examples/ThinLtoJIT/CMakeFiles/ThinLtoJIT.dir/ThinLtoDiscoveryThread.cpp.o.d -o examples/ThinLtoJIT/CMakeFiles/ThinLtoJIT.dir/ThinLtoDiscoveryThread.cpp.o -c /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/examples/ThinLtoJIT/ThinLtoDiscoveryThread.cpp
FAILED: examples/ThinLtoJIT/CMakeFiles/ThinLtoJIT.dir/ThinLtoDiscoveryThread.cpp.o
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++  -DBUILD_EXAMPLES -DGTEST_HAS_RTTI=0 -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Iexamples/ThinLtoJIT -I/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/examples/ThinLtoJIT -Iinclude -I/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/include -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -fdiagnostics-color -O3  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.9    -fno-exceptions -fno-rtti -UNDEBUG -std=c++14 -MD -MT examples/ThinLtoJIT/CMakeFiles/ThinLtoJIT.dir/ThinLtoDiscoveryThread.cpp.o -MF examples/ThinLtoJIT/CMakeFiles/ThinLtoJIT.dir/ThinLtoDiscoveryThread.cpp.o.d -o examples/ThinLtoJIT/CMakeFiles/ThinLtoJIT.dir/ThinLtoDiscoveryThread.cpp.o -c /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/examples/ThinLtoJIT/ThinLtoDiscoveryThread.cpp
In file included from /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/examples/ThinLtoJIT/ThinLtoDiscoveryThread.cpp:7:
/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/examples/ThinLtoJIT/ThinLtoInstrumentationLayer.h:37:68: error: non-virtual member function marked 'override' hides virtual member function
  void emit(MaterializationResponsibility R, ThreadSafeModule TSM) override;
                                                                   ^
/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Layer.h:103:16: note: hidden overloaded virtual function 'llvm::orc::IRLayer::emit' declared here: type mismatch at 1st parameter ('std::unique_ptr<MaterializationResponsibility>' vs 'llvm::orc::MaterializationResponsibility')
  virtual void emit(std::unique_ptr<MaterializationResponsibility> R,
               ^
1 error generated.
The file was modifiedllvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/Core.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/Speculation.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/LLJIT.cpp (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Speculation.h (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h (diff)
The file was modifiedllvm/examples/SpeculativeJIT/SpeculativeJIT.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp (diff)
The file was modifiedllvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/Layer.cpp (diff)
The file was modifiedllvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Layer.h (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/LazyReexports.cpp (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Core.h (diff)
The file was modifiedllvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h (diff)
The file was modifiedllvm/unittests/ExecutionEngine/Orc/LazyCallThroughAndReexportsTest.cpp (diff)
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h (diff)