SuccessChanges

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

Summary

  1. Removed scei-ps4 builders. (details)
  2. More builders.py cleaning. (details)
  3. Removed unused code from LLDBBuilder. (details)
Commit 3c45e09f5c0981f7cbd442f1456efeee3dad426e by gkistanova
Removed scei-ps4 builders.
The file was modifiedbuildbot/osuosl/master/config/builders.py
The file was modifiedbuildbot/osuosl/master/config/slaves.py
Commit d1f7315cc1aa2fb32ea19fd1f84803a8798a17f7 by gkistanova
More builders.py cleaning.
The file was modifiedbuildbot/osuosl/master/config/builders.py
Commit 97c8bbea257b4facd1b8cb19cd8d6a6ae8119776 by gkistanova
Removed unused code from LLDBBuilder.
The file was modifiedzorg/buildbot/builders/LLDBBuilder.py

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

Summary

  1. [NFC] Fix whitespace in lldb-vscode --help (details)
  2. [PGO] Skip if an IndirectBrInst critical edge cannot be split (details)
  3. [compiler-rt] [netbsd] Update generate_netbsd_syscalls.awk (details)
  4. [compiler-rt] [netbsd] Regenerate syscall hooks (details)
  5. [SLPVectorizer][X86][AMDGPU] Remove fcmp+select to fmin/fmax reduction support. (details)
  6. Revert "[Support] Use unique_function rather than std::function for ThreadPool TaskTy." (details)
  7. [WebAssembly] Set unreachable as canonical to permit disassembly (details)
  8. Make struct dialects have the same field name as everything else, 'dialect'. (details)
  9. Allow Dialects to be initialized via nullptr. (details)
  10. [gn build] (semi-manually) port 009cd4e4910 (details)
  11. Fix operator!= for Dialects. (details)
  12. [Hexagon] Split pair-based masked memops (details)
  13. [SVE] Bail from VectorUtils heuristics for scalable vectors (details)
  14. [ImplicitNullChecks] NFC: Remove unused PointerReg arg in dep analysis (details)
  15. [libc][NFC][obvious] Remove a redudant dep of strcmp implementation. (details)
  16. Diable sanitizer options for amdgpu (details)
  17. GlobalISel: Combine fneg(fneg x) to x (details)
  18. [InstCombine] Regenerate test checks (NFC) (details)
  19. [InstCombine] Add more tests for select op replacement (NFC) (details)
  20. [DemandedBits] Add braces to large if (NFC) (details)
  21. [DemandedBits][BDCE] Add support for min/max intrinsics (details)
  22. [ORC] Make MaterializationResponsibility immovable, pass by unique_ptr. (details)
  23. [libc][obvious] Include Sqrt.h in SqrtLongDoubleX86.h. (details)
  24. [EarlyCSE] Equivalent SELECTs should hash equally (details)
  25. [DSE] Switch to MemorySSA-backed DSE by default. (details)
  26. [ELF] Make two PPC64.cpp variables constexpr. NFC (details)
  27. [flang] Fix assert on constant folding of extended types (details)
  28. Use pragmas to work around MSVC x86_32 debug miscompile bug (details)
  29. [AArch64][GlobalISel] Don't emit a branch for a fallthrough G_BR at -O0. (details)
  30. Fix wrong comment about enabling optimizations to work around a bug (details)
  31. Remove unused variable introduce in 0448d11a06b451a causing build (details)
  32. [obj2yaml] Add support for dumping the .debug_ranges section. (details)
  33. [lldb] Add missing LLDB_REGISTER_CONSTRUCTOR in SBPlatform (details)
  34. [mlir][Analysis] Allow Slice Analysis to work with linalg::LinalgOp (details)
  35. scudo: Introduce a new mechanism to let Scudo access a platform-specific TLS slot (details)
  36. scudo: Remove the THREADLOCAL macro. (details)
  37. Remove dependency on clangASTMatchers. (details)
  38. Revert "[EarlyCSE] Equivalent SELECTs should hash equally" (details)
  39. [Asan] Fix __asan_update_allocation_context (details)
  40. [EarlyCSE] Fix and recommit the revised c9826829d74e637163fdb0351870b8204e62d6e6 (details)
  41. libclc/spirv: Add missing files from D85911 (details)
  42. [NFC][MLInliner] Presort instruction successions. (details)
Commit 6040d525507ba8a2593f0906259d012725b6aed2 by rupprecht
[NFC] Fix whitespace in lldb-vscode --help
The file was modifiedlldb/tools/lldb-vscode/lldb-vscode.cpp
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
The file was modifiedllvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
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
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
The file was modifiedcompiler-rt/include/sanitizer/netbsd_syscall_hooks.h
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/reduction.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/horizontal-list.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AMDGPU/horizontal-store.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/horizontal-minmax.ll
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
The file was modifiedllvm/unittests/Support/ThreadPool.cpp
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
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
The file was modifiedmlir/lib/TableGen/Attribute.cpp
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
Commit 5692497aef08ab4810f125669bc2f6aa79d9ec7e by thakis
[gn build] (semi-manually) port 009cd4e4910
The file was modifiedllvm/utils/gn/secondary/llvm/lib/Target/PowerPC/BUILD.gn
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
Commit 783e28a50839e045b72ec11946295fba104642fc by kparzysz
[Hexagon] Split pair-based masked memops
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp
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 modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedllvm/include/llvm/Analysis/VectorUtils.h
The file was modifiedllvm/lib/Analysis/VectorUtils.cpp
The file was addedllvm/test/Transforms/InstCombine/AArch64/VectorUtils_heuristics.ll
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
Commit 878cb5170de9bf03798a40185952bdf50fe4a15e by sivachandra
[libc][NFC][obvious] Remove a redudant dep of strcmp implementation.
The file was modifiedlibc/src/string/CMakeLists.txt
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
Commit d4bf90271fa988101bdad4f2e78b8c3a0b85fc2d by vkeles
GlobalISel: Combine fneg(fneg x) to x

https://reviews.llvm.org/D87473
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
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/select.ll
The file was modifiedllvm/test/Transforms/InstCombine/select-binop-cmp.ll
The file was modifiedllvm/test/Transforms/InstCombine/rem.ll
Commit 476836331f7d31ca46779742dccf2e26698b94ed by nikita.ppv
[InstCombine] Add more tests for select op replacement (NFC)
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
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
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
The file was modifiedllvm/lib/Analysis/DemandedBits.cpp
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/lib/ExecutionEngine/Orc/IRCompileLayer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
The file was modifiedllvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Core.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/Speculation.cpp
The file was modifiedllvm/unittests/ExecutionEngine/Orc/LazyCallThroughAndReexportsTest.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Speculation.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Layer.h
The file was modifiedllvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/Layer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/Core.cpp
The file was modifiedllvm/examples/SpeculativeJIT/SpeculativeJIT.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/LLJIT.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/LazyReexports.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp
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
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/lib/Transforms/Scalar/EarlyCSE.cpp
The file was modifiedllvm/test/Transforms/EarlyCSE/commute.ll
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/OverwriteStoreEnd.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-and-memcpy.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-memintrinsics.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-retcon.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/X86/gather-null-pointer.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-multipath.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/lifetime.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2016-07-17-UseAfterFree.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/debug-counter.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-defaults.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/launder.invariant.group.ll
The file was modifiedllvm/test/Other/new-pm-defaults.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memintrinsics.ll
The file was modifiedllvm/test/Analysis/BasicAA/modref.ll
The file was modifiedclang/test/CodeGen/thinlto-distributed-newpm.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-simple.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic.ll
The file was modifiedllvm/test/Other/opt-O2-pipeline.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-captures.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-09-06-MemCpy.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-03-25-DSEMiscompile.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/tail-byval.ll
The file was modifiedllvm/test/Other/new-pm-lto-defaults.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/invariant.start.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/noop-stores.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/int_sideeffect.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-partial.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/inst-limits.ll
The file was modifiedllvm/test/Other/opt-O3-pipeline-enable-matrix.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/const-pointers.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple-todo.ll
The file was modifiedllvm/test/Other/opt-O3-pipeline.ll
The file was modifiedllvm/test/Transforms/Coroutines/ArgAddr.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-unknown-sizes.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memcpy-complete-overwrite.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple-preservation.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memoryssa-scan-limit.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-throwing.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/fence-todo.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-09-06-EndOfFunction.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-malloc-free.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/merge-stores-big-endian.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/stats.ll
The file was modifiedllvm/test/Other/opt-Os-pipeline.ll
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/debuginfo.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/operand-bundles.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/opt-pipeline.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/PartialStore2.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-memoryphis.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/calloc-store.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/PartialStore.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/cs-cs-aliasing.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/free.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/OverwriteStoreBegin.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/libcalls.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/mda-with-dbg-values.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-missing-debugloc.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-overlap.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memcpy.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/overlap.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-multipath-throwing.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/crash.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic-overlapping.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/combined-partial-overwrites.ll
The file was modifiedclang/test/CodeGenObjC/exceptions.m
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/fence.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-unreachable.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic-todo.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/dominate.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/no-targetdata.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-loops.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/pr11390.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/merge-stores.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-exceptions.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/pr47285-not-overwritten-on-all-exit-paths.ll
Commit 485f3f35cc511637661619967319eafb932df5d5 by i
[ELF] Make two PPC64.cpp variables constexpr. NFC

Why are they mutable? :)
The file was modifiedlld/ELF/Arch/PPC64.cpp
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/lib/Evaluate/expression.cpp
The file was modifiedflang/lib/Evaluate/type.cpp
The file was modifiedflang/lib/Evaluate/fold-implementation.h
The file was modifiedflang/include/flang/Evaluate/type.h
The file was modifiedflang/include/flang/Evaluate/expression.h
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
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
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-jump-table-brjt-constrain.mir
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-binop.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-returnaddress-liveins.mir
The file was modifiedllvm/test/CodeGen/AArch64/unwind-preserved.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-xor.mir
Commit 2c73bef7fad4bb92213c9e8ace7d98a231efe027 by rnk
Fix wrong comment about enabling optimizations to work around a bug
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
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
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 addedllvm/test/tools/obj2yaml/ELF/DWARF/debug-ranges.yaml
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp
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
Commit 0a391c60793bae25804d2a82e5a26e2b9c7a69a1 by ravishankarm
[mlir][Analysis] Allow Slice Analysis to work with linalg::LinalgOp

Differential Revision: https://reviews.llvm.org/D87307
The file was addedmlir/test/IR/slice.mlir
The file was modifiedmlir/test/lib/IR/CMakeLists.txt
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp
The file was modifiedmlir/lib/Analysis/SliceAnalysis.cpp
The file was addedmlir/test/lib/IR/TestSlicing.cpp
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
The file was modifiedcompiler-rt/lib/scudo/standalone/linux.h
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
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/primary_test.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/tsd_exclusive.h
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
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/test/Transforms/EarlyCSE/commute.ll
The file was modifiedllvm/lib/Transforms/Scalar/EarlyCSE.cpp
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
The file was modifiedcompiler-rt/lib/asan/asan_allocator.cpp
The file was modifiedcompiler-rt/lib/asan/asan_allocator.h
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/test/Transforms/EarlyCSE/commute.ll
The file was modifiedllvm/lib/Transforms/Scalar/EarlyCSE.cpp
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/spirv/lib/math/fma.cl
The file was addedlibclc/spirv64/lib/math/fma.inc
The file was addedlibclc/spirv64/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