Changes

Summary

  1. [RISCV] Refactor some rvv instructions' definition with foreach. (details)
  2. [clang-tidy][NFC] Simplify ClangTidyStats (details)
  3. Remove unnecessary <any> include. (details)
  4. [CGP][PowerPC] Pre-commit test case for D113872. NFC. (details)
  5. [MLIR] FlatAffineConstraints: Allow extraction of explicit representation of local variables (details)
  6. [ARM] Add datalayout to costmodel tests. NFC (details)
  7. Fix unused variable in llvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp (details)
  8. [MLIR] Simplify semi-affine expressions using flattening (details)
  9. [mlir] Support multi-dimensional vectors in MathToLibm conversion. (details)
  10. Fix unused variable warning. (details)
  11. [mlir] spirv: Add scf.while spirv conversion (details)
  12. Fix another unused variable error. (details)
  13. [lldb/test] Move gdb client utils into the packages tree (details)
  14. [lldb] Simplify specifying of platform supported architectures (details)
  15. Revert "Fix another unused variable error." (details)
  16. Revert "Fix unused variable warning." (details)
  17. Revert "Fix unused variable in llvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp" (details)
  18. Fix unused variable warning in LoadStoreOpt.cpp with (void) (details)
  19. [AArch64][SVE] Instcombine SVE LD1/ST1 to stock LLVM IR (details)
  20. [SCEV] Support rewriting ZExt expressions with loop guard info. (details)
  21. [mlir][spirv] add AtomicFAddEXTOp (details)
  22. [lldb] Refactor Platform::ResolveExecutable (details)
  23. Fix false positive in `bugprone-throw-keyword-missing` check (details)
  24. [fir] Add fir.cmpc conversion (details)
  25. [llvm-reduce] Allow writing temporary files as bitcode. (details)
  26. [IndVarSimplify] Reduce nondeterministic behaviour in visitIVCast. (details)
  27. [llvm-reduce] Add new BitWriter dependency after 28d95a26109e. (details)
  28. [NFC][clangd] cleaning up unused "using" (details)
  29. [OpenMP] Fix initializer not working on AMDGPU (details)
Commit 6405e8b58488b07d127554183f7f26b8aecd76b6 by jacquesguan
[RISCV] Refactor some rvv instructions' definition with foreach.

Simplify rvv instructions that use eew in their mnemonic and encoding with foreach. And fix a scheduling bug.

Differential Revision: https://reviews.llvm.org/D113453
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoV.td
Commit 9699c0fea3552f687f8357032199890633d58fe2 by carlosgalvezp
[clang-tidy][NFC] Simplify ClangTidyStats

- Use NSDMI and remove constructor.

Differential Revision: https://reviews.llvm.org/D113847
The file was modifiedclang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.h
Commit dcd8728d839458e93e4a20aab35207bd48509c3d by Amara Emerson
Remove unnecessary <any> include.
The file was modifiedllvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp
Commit c0da8a4e40dc6414ca0afcb32c4eb4f6309706c9 by lkail
[CGP][PowerPC] Pre-commit test case for D113872. NFC.
The file was addedllvm/test/CodeGen/PowerPC/cgp-select.ll
Commit 11462a82c5fbef879ae75add682274b652ae9aa9 by groverkss
[MLIR] FlatAffineConstraints: Allow extraction of explicit representation of local variables

This patch extends the existing functionality of computing an explicit
representation for local variables, to also get the explicit representation,
instead of only the inequality pairs.

This is required for a future patch to remove redundant local ids based on
their explicit representation.

Reviewed By: arjunp

Differential Revision: https://reviews.llvm.org/D113814
The file was modifiedmlir/unittests/Analysis/AffineStructuresTest.cpp
The file was modifiedmlir/lib/Analysis/AffineStructures.cpp
The file was modifiedmlir/lib/Analysis/PresburgerSet.cpp
The file was modifiedmlir/include/mlir/Analysis/AffineStructures.h
Commit 309f1e4ac8cca1ba1f0e28eeae8e2926dc387d04 by david.green
[ARM] Add datalayout to costmodel tests. NFC

This adds a sensible datalayout to the ARM cost model tests, to prevent
the costs reported being incorrect for the size of pointers.
The file was modifiedllvm/test/Analysis/CostModel/ARM/cast.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/arith-ssat.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/tail-folding-prefer-flag.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/cmps.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/freeshift.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/gep.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/logicalop.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/tail-folding-not-allowed.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/reduce-smin.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/intrinsic-cost-kinds.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/reduce-and.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-gather-scatter-tailpred.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/divrem.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/mve-cmp.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/reduce-smax.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/mve-shiftcost.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/tail-folding-loop-hint.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/tail-folding-allowed.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/select.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/control-flow.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/mve-abs.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/arm-ieee-vectorize.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/mve-gather-scatter-cost.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/arith-overflow.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/shuffle.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/tail-folding-reductions-allowed.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/arith.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/target-intrinsics.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/fparith.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/cast_ldst.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/arith-usat.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/reduce-umin.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/immediates.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/reduce-add.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/tail-fold-multiple-icmps.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/ARM/prefer-tail-loop-folding.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/mve-minmax.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/mve-vecreduce-add.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/load_store.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/mve-active_lane_mask.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/reduce-or.ll
The file was modifiedllvm/test/Analysis/CostModel/ARM/reduce-umax.ll
Commit 40a609aebe4ab51174a164852b6399f322bf6d9a by frgossen
Fix unused variable in llvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp
Commit 1402299271c1d57784f77dd577949e4a546a4c10 by uday
[MLIR] Simplify semi-affine expressions using flattening

For the semi affine expressions, whenever rhs of a floordiv, ceildiv, mod
or product expression is a symbolic expression, we introduce a local variable
representing the result, and store the floordiv/ceildiv, mod or product
affine expression in LocalExprs. In this way the expression is flattened,
and trivial addition and subtraction related simplifications are performed.
Also rule based matching for detecting and transforming "expr - q * (expr floordiv q)"
to "expr mod q", where q is a symbolic exxpression, in simplifyAdd function.

Differential Revision: https://reviews.llvm.org/D112808
The file was modifiedmlir/include/mlir/IR/AffineExpr.h
The file was modifiedmlir/test/Dialect/Affine/simplify-affine-structures.mlir
The file was modifiedmlir/include/mlir/IR/AffineExprVisitor.h
The file was modifiedmlir/lib/IR/AffineExpr.cpp
The file was modifiedmlir/test/Dialect/SCF/for-loop-peeling.mlir
Commit 921d91f3aca33ab28bdc145c668ccc0726a0ca30 by akuegel
[mlir] Support multi-dimensional vectors in MathToLibm conversion.

Differential Revision: https://reviews.llvm.org/D113969
The file was modifiedmlir/lib/Conversion/MathToLibm/MathToLibm.cpp
The file was modifiedmlir/test/Conversion/MathToLibm/convert-to-libm.mlir
Commit a062e2a8ca27b615cf3d02ed5c551ca85efc0325 by akuegel
Fix unused variable warning.
The file was modifiedllvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp
Commit 526b71e44acd4f792e36df62c4654706f3e26efe by ivan.butygin
[mlir] spirv: Add scf.while spirv conversion

* It works similar to scf.for coversion, but convert condition and yield ops as part of scf.whille pattern so it don't need to maintain external state

Differential Revision: https://reviews.llvm.org/D113007
The file was modifiedmlir/lib/Conversion/SCFToSPIRV/SCFToSPIRV.cpp
The file was addedmlir/test/Conversion/SCFToSPIRV/while.mlir
Commit 5b84ae7c48083bd0f40199837990cf915a2053b8 by akuegel
Fix another unused variable error.
The file was modifiedllvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp
Commit 33c0f93f6c10acff885fe11b9897943313cd5c26 by pavel
[lldb/test] Move gdb client utils into the packages tree

This infrastructure has proven proven its worth, so give it a more
prominent place.

My immediate motivation for this is the desire to reuse this
infrastructure for qemu platform testing, but I believe this move makes
sense independently of that. Moving this code to the packages tree will
allow as to add more structure to the gdb client tests -- currently they
are all crammed into the same test folder as that was the only way they
could access this code.

I'm splitting the code into two parts while moving it. The first once
contains just the generic gdb protocol wrappers, while the other one
contains the unit test glue. The reason for that is that for qemu
testing, I need to run the gdb code in a separate process, so I will
only be using the first part there.

Differential Revision: https://reviews.llvm.org/D113893
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestRestartBug.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestTargetXMLArch.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestProcessConnect.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestStopPCs.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestPlatformKill.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestQemuAArch64TargetXml.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestNestedRegDefinitions.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestPty.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestAArch64XMLRegOffsets.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestArmRegisterDefinition.py
The file was addedlldb/packages/Python/lldbsuite/test/gdbclientutils.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestJLink6Armv7RegisterDefinition.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestWriteMemory.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestRegDefinitionInParts.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestThreadSelectionBug.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestWasm.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestMemoryRegionDirtyPages.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestRecognizeBreakpoint.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestMultiprocess.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestPartialGPacket.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteDiskFileCompletion.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestIOSSimulator.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestFork.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteLoad.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestGDBServerTargetXML.py
The file was addedlldb/packages/Python/lldbsuite/test/lldbgdbclient.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestqOffsets.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestPlatformClient.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestNoWatchpointSupportInfo.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestRemoteRegNums.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestNoGPacketSupported.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestThreadInfoTrailingComma.py
The file was removedlldb/test/API/functionalities/gdb_remote_client/gdbclientutils.py
The file was modifiedlldb/test/API/functionalities/gdb_remote_client/TestGDBRemotePlatformFile.py
Commit 669e57ebd1a7137aba7aab47d9d4dd67e1b0b9a0 by pavel
[lldb] Simplify specifying of platform supported architectures

The GetSupportedArchitectureAtIndex pattern forces the use of
complicated patterns in both the implementations of the function and in
the various callers.

This patch creates a new method (GetSupportedArchitectures), which
returns a list (vector) of architectures. The
GetSupportedArchitectureAtIndex is kept in order to enable incremental
rollout. Base Platform class contains implementations of both of these
methods, using the other method as the source of truth. Platforms
without infinite stacks should implement at least one of them.

This patch also ports Linux, FreeBSD and NetBSD platforms to the new
API. A new helper function (CreateArchList) is added to simplify the
common task of creating a list of ArchSpecs with the same OS but
different architectures.

Differential Revision: https://reviews.llvm.org/D113608
The file was modifiedlldb/include/lldb/Target/Platform.h
The file was modifiedlldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp
The file was modifiedlldb/source/Target/Platform.cpp
The file was modifiedlldb/source/Plugins/Platform/NetBSD/PlatformNetBSD.h
The file was modifiedlldb/source/Plugins/Platform/Linux/PlatformLinux.h
The file was modifiedlldb/source/Plugins/Platform/NetBSD/PlatformNetBSD.cpp
The file was modifiedlldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.h
The file was modifiedlldb/source/Plugins/Platform/Linux/PlatformLinux.cpp
Commit 9a6817b7edb44669cec14a3fbde8a93dfb217c1a by frgossen
Revert "Fix another unused variable error."

This reverts commit 5b84ae7c48083bd0f40199837990cf915a2053b8.
The file was modifiedllvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp
Commit ecfe7a340440b6d84d3ae57d41baaab336f7ac60 by frgossen
Revert "Fix unused variable warning."

This reverts commit a062e2a8ca27b615cf3d02ed5c551ca85efc0325.
The file was modifiedllvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp
Commit 2bceb7c8dae2dc4014147b631ff4901bd36dfd6f by frgossen
Revert "Fix unused variable in llvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp"

This reverts commit 40a609aebe4ab51174a164852b6399f322bf6d9a.
The file was modifiedllvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp
Commit 3f3d4e8a15a7cc3be1bf071e0a581b60143702e1 by frgossen
Fix unused variable warning in LoadStoreOpt.cpp with (void)
The file was modifiedllvm/lib/CodeGen/GlobalISel/LoadStoreOpt.cpp
Commit f526c600c043d9e83a359e79d617077d947c1dc3 by matthew.devereau
[AArch64][SVE] Instcombine SVE LD1/ST1 to stock LLVM IR

InstCombine AArch64 LD1/ST1 to llvm.masked.load/llvm.masked.store
and LD1/ST1 to load/store when a ptrue all predicate pattern operand
is present.

This allows existing IR optimizations such as dead-load removal to
occur.

Differential Revision: https://reviews.llvm.org/D113489
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1sh.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1sb.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1w.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1b.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1h.c
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1uw.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1ub.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1-bfloat.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1sw.c
The file was modifiedclang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1uh.c
The file was addedllvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-loadstore.ll
Commit b7aec4f08e5e231cda3366af961e227e18c5587b by flo
[SCEV] Support rewriting ZExt expressions with loop guard info.

So far, applying loop guard information has been restricted to
SCEVUnknown. In a few cases, like PR40961 and PR52464, this leads to
SCEV failing to determine tight upper bounds for the backedge taken
count.

This patch adjusts SCEVLoopGuardRewriter and applyLoopGuards to support
re-writing ZExt expressions.

This is a first step towards fixing  PR40961 and PR52464.

Reviewed By: reames

Differential Revision: https://reviews.llvm.org/D113577
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info-rewrite-expressions.ll
Commit 6c48f6aafe69017065ab424dde11909d9cd5cb44 by ivan.butygin
[mlir][spirv] add AtomicFAddEXTOp

Differential Revision: https://reviews.llvm.org/D113764
The file was modifiedmlir/test/Target/SPIRV/atomic-ops.mlir
The file was modifiedmlir/test/Dialect/SPIRV/IR/atomic-ops.mlir
The file was modifiedmlir/include/mlir/Dialect/SPIRV/IR/SPIRVAtomicOps.td
The file was modifiedmlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp
The file was modifiedmlir/include/mlir/Dialect/SPIRV/IR/SPIRVBase.td
Commit 098c01c132c8d14f08b847793afa045af5bb4522 by pavel
[lldb] Refactor Platform::ResolveExecutable

Module resolution is probably the most complex piece of lldb [citation
needed], with numerous levels of abstraction, each one implementing
various retry and fallback strategies.

It is also a very repetitive, with only small differences between
"host", "remote-and-connected" and "remote-but-not-(yet)-connected"
scenarios.

The goal of this patch (first in series) is to reduce the number of
abstractions, and deduplicate the code.

One of the reasons for this complexity is the tension between the desire
to offload the process of module resolution to the remote platform
instance (that's how most other platform methods work), and the desire
to keep it local to the outer platform class (its easier to subclass the
outer class, and it generally makes more sense).

This patch resolves that conflict in favour of doing everything in the
outer class. The gdb-remote (our only remote platform) implementation of
ResolveExecutable was not doing anything gdb-specific, and was rather
similar to the other implementations of that method (any divergence is
most likely the result of fixes not being applied everywhere rather than
intentional).

It does this by excising the remote platform out of the resolution
codepath. The gdb-remote implementation of ResolveExecutable is moved to
Platform::ResolveRemoteExecutable, and the (only) call site is
redirected to that. On its own, this does not achieve (much), but it
creates new opportunities for layer peeling and code sharing, since all
of the code now lives closer together.

Differential Revision: https://reviews.llvm.org/D113487
The file was modifiedlldb/include/lldb/Target/Platform.h
The file was modifiedlldb/unittests/Target/RemoteAwarePlatformTest.cpp
The file was modifiedlldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h
The file was modifiedlldb/source/Target/Platform.cpp
The file was modifiedlldb/source/Target/RemoteAwarePlatform.cpp
The file was modifiedlldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp
Commit 738e7f1231949ec248c1d8d154783338215613d1 by aaron
Fix false positive in `bugprone-throw-keyword-missing` check

Fixes PR#52400. The tests for bugprone-throw-keyword-missing actually
already contain exceptions as class members, but not as members with
initializers, which was probably just an oversight.
The file was modifiedclang-tools-extra/clang-tidy/bugprone/ThrowKeywordMissingCheck.cpp
The file was modifiedclang-tools-extra/test/clang-tidy/checkers/bugprone-throw-keyword-missing.cpp
Commit f1dfc0275c543db14b1723ee2e33f0910dcc7f24 by diana.picus
[fir] Add fir.cmpc conversion

This patch adds the codegen for fir.cmpc. The real and imaginary parts
are extracted and compared separately. For the .EQ. predicate the
results are AND'd, for the .NE. predicate the results are OR'd, and for
other predicates we keep only the result on the real parts.

This patch is part of the upstreaming effort from fir-dev.

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

Co-authored-by: Eric Schweitz <eschweitz@nvidia.com>
Co-authored-by: Jean Perier <jperier@nvidia.com>
The file was modifiedflang/test/Fir/convert-to-llvm.fir
The file was modifiedflang/lib/Optimizer/CodeGen/CodeGen.cpp
Commit 28d95a26109ece40f675d6a78477a820488bcece by flo
[llvm-reduce] Allow writing temporary files as bitcode.

Textual LLVM IR files are much bigger and take longer to write to disk.
To avoid the extra cost incurred by serializing to text, this patch adds
an option to save temporary files as bitcode instead.

Reviewed By: aeubanks

Differential Revision: https://reviews.llvm.org/D113858
The file was addedllvm/test/tools/llvm-reduce/Inputs/llvm-dis-and-filecheck.py
The file was addedllvm/test/tools/llvm-reduce/temporary-files-as-bitcode.ll
The file was modifiedllvm/tools/llvm-reduce/deltas/Delta.cpp
Commit 305816ff1e737d9589f34dab69a3f5abd884f7d5 by sander.desmalen
[IndVarSimplify] Reduce nondeterministic behaviour in visitIVCast.

rGf39978b84f1d3a1da6c32db48f64c8daae64b3ad led to and/or exposed
an issue with IndVarSimplification for a loop where a i32 phi node is
no longer replaced by a widened (i64) phi node, because the SCEVs of a
sign-extend no longer folded the same way. I'm unsure how to properly
explain this because it's all rather complicated, but in short: SCEVs
don't fold as nicely as they used to and this caused a difference.

While investigating this, I found that IndVarSimplify can actually
optimise the case in the way we want to if it chooses the widened IV to
be 'signed' (the i32 IV is both sign and zero-extended). Oddly enough,
there is some level of indeterminism in the way the algorithm works,
it just picks the sign of the 'first' zext/sext user, where the order of
the users-iterator is not guaranteed to be the same on each invocation
of the pass (e.g. shown by first running loop-rotate, which puts the
users in a different order).

While I think the fix is valid in the sense that consistently picking
_any_ order is better than having an nondeterministic order, I can
use a bit of advice from people more familiar in this area of the
code-base.

For example, I'm not sure if this fix is hiding another issue where the
IndVarSimplify pass could actually draw the same conclusions (i.e. that
it only needs an i64 phi node) if it does a bit more work, regardless
of whether it chooses the induction variable to be signed or unsigned.

I'm also not sure if choosing signed is better than unsigned, or whether
that just happens to be beneficial only in this individual case.

Any feedback would be much appreciated!

Reviewed By: reames

Differential Revision: https://reviews.llvm.org/D112573
The file was addedllvm/test/Transforms/IndVarSimplify/deterministic-sign.ll
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp
Commit 97b9b6f565c5e8c75e30b4030f9e0edf682a6a8f by flo
[llvm-reduce] Add new BitWriter dependency after 28d95a26109e.
The file was modifiedllvm/tools/llvm-reduce/CMakeLists.txt
Commit d2da1a2f400ab54a874c1ba5430adc07a5249563 by kuhnel
[NFC][clangd] cleaning up unused "using"

Cleaning up unused "using" declarations.
This patch was generated from automatically applyning clang-tidy fixes.

Differential Revision: https://reviews.llvm.org/D113891
The file was modifiedclang-tools-extra/clangd/index/YAMLSerialization.cpp
The file was modifiedclang-tools-extra/clangd/unittests/ClangdTests.cpp
The file was modifiedclang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp
The file was modifiedclang-tools-extra/clangd/unittests/HeadersTests.cpp
The file was modifiedclang-tools-extra/clangd/unittests/IndexTests.cpp
The file was modifiedclang-tools-extra/clangd/unittests/RIFFTests.cpp
Commit 374cd0fb6102a8726da0e6036b3c484aca32c61e by jhuber6
[OpenMP] Fix initializer not working on AMDGPU

The RAII class used for debugging RTL entry used a shared variable to
keep track of the current depth. This used a global initializer, which
isn't supported on AMDGPU. This patch removes the initializer and
instead sets it to zero when the state is initialized in the runtime.

Reviewed By: jdoerfert, JonChesterfield

Differential Revision: https://reviews.llvm.org/D113963
The file was modifiedopenmp/libomptarget/DeviceRTL/src/State.cpp
The file was modifiedopenmp/libomptarget/DeviceRTL/src/Debug.cpp
The file was modifiedopenmp/libomptarget/DeviceRTL/include/Debug.h