SuccessChanges

Summary

  1. [AMDGPU] Allow accvgpr_read/write decode with opsel (details)
  2. [coro] Add support for polymorphic return typed coro.suspend.async (details)
  3. [dfsan] Comment out ChainOrigin temporarily (details)
  4. Revert "[mlir][Linalg] Improve region support in Linalg ops." (details)
  5. [DebugInfo] Add an attribute to force type info to be emitted for (details)
  6. Try to fix external_symbolizer_path.cpp test to stop breaking on buildbots. (details)
  7. Revert "[DebugInfo] Add an attribute to force type info to be emitted for" (details)
  8. [DAG] Move basic USUBSAT pattern matches from X86 to DAGCombine (details)
  9. [Symbolize] Teach symbolizer to work directly on object file. (details)
  10. [ARM] Optimize fp store of extract to integer store if already available. (details)
  11. [SystemZ][ZOS] Provide CLOCK_MONOTONIC alternative (details)
  12. [gn build] Port cb2d2ae56ae3 (details)
  13. [NFC][Coroutine] Fix an error message on coro.id verification (details)
  14. [RGT][GlobalIsel] Add missing setUp() calls to legalizer unittests (details)
  15. [mlir][Vector] Introduce 'vector.load' and 'vector.store' ops (details)
  16. [mlir][Vector] Align gather/scatter/expand/compress API (details)
  17. DebugInfo/Symbolize: Exclude ARM mapping symbols for .symtab symbolization after D95916 (details)
  18. [LLDB] Fix LLDB_LOG calls to use correct formatting (details)
  19. [mlir][Linalg] Improve region support in Linalg ops (details)
  20. Expand unit tests for fuzzer::Merger (details)
  21. [WebAssembly][lld] Preassign table number 0 to indirect function table for MVP inputs (details)
  22. [clang] Add -ffinite-loops & -fno-finite-loops options. (details)
  23. Disable test in external_symbolizer_path.cpp temporarily to debug test failures. (details)
  24. [GlobalISel] Propagate extends through G_PHIs into the incoming value blocks. (details)
  25. Fix layering after ed4718eccb12. (details)
  26. [OpenMP] Fix the check for libpsapi for i386 (details)
  27. [OpenMP] Only use #pragma comment(lib, ...) in MSVC build configurations (details)
  28. [OpenMP] Add void casts to silence unused variable warnings (details)
  29. [OpenMP] Remove two entirely unused variables (details)
  30. [OpenMP] Avoid warnings about unused static functions on windows (details)
  31. [OpenMP] Silence more warning flags (details)
  32. [docs/Coverage] Answer FAQ about optimization (details)
  33. [docs/Coverage] Document -show-region-summary (details)
  34. [GlobalISel] Combine (x + 0) -> x, G_PTR_ADD edition (details)
  35. [clang] Remove redundant condition (NFC). (details)
  36. [SystemZ][ZOS] Fix __libcpp_thrad_isnull() (details)
  37. Add a "kind" attribute to ContractionOp and OuterProductOp. (details)
  38. [AMDGPU] Fix Windows build (details)
  39. [AA] Move Depth member from AAResults to AAQI (NFC) (details)
  40. [AA] Add option for tracing AA queries (NFC) (details)
  41. [gn build] Add missing llvm-profgen dependency (details)
  42. Fix test failure for external_symbolizer_path.cpp (details)
Commit c0d7a8bc6241a388af540798d03632075d892a9a by Stanislav.Mekhanoshin
[AMDGPU] Allow accvgpr_read/write decode with opsel

These two instructions are VOP3P and have op_sel_hi bits,
however do not use op_sel_hi. That is recommended to set
unused op_sel_hi bits to 1. However, we cannot decode
both representations with 1 and 0 if bits are set to
default value 1. If bits are set to be ignored with '?'
initializer then encoding defaults them to 0.

The patch is a hack to force ignored '?' bits to 1 on
encoding for these instructions.

There is still canonicalization happens on disasm print
if incoming values are non-default, so that disasm output
does not match binary input, but this is pre-existing
problem for all instructions with '?' bits.

Fixes: SWDEV-272540

Differential Revision: https://reviews.llvm.org/D96543
The file was modifiedllvm/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp
The file was modifiedllvm/test/MC/Disassembler/AMDGPU/mai.txt
The file was modifiedllvm/lib/Target/AMDGPU/VOP3PInstructions.td
Commit e760ec2a01fba0d90e2fea33cf99b75baa2c2a1c by aschwaighofer
[coro] Add support for polymorphic return typed coro.suspend.async

This allows for suspend point specific resume function types.

Return values from a suspend point can therefore be modelled as
arguments to the resume function. Allowing for directly passed return
types.

Differential Revision: https://reviews.llvm.org/D96136
The file was modifiedllvm/lib/Transforms/Coroutines/Coroutines.cpp
The file was modifiedllvm/test/Transforms/Coroutines/coro-async.ll
The file was modifiedllvm/include/llvm/IR/Intrinsics.td
The file was modifiedllvm/lib/Transforms/Coroutines/CoroSplit.cpp
The file was modifiedllvm/lib/Transforms/Coroutines/CoroInternal.h
Commit a7538fee3a0256a8891e746823f7b0f0ade84e62 by jianzhouzh
[dfsan] Comment out ChainOrigin temporarily

It was added by D96160, will be used by D96564.
Some OS got errors if it is not used.
Comment it out for the time being.
The file was modifiedcompiler-rt/lib/dfsan/dfsan.cpp
Commit 3f22547fd19e2fdf326a552b65476787e9c79f5f by joker.eph
Revert "[mlir][Linalg] Improve region support in Linalg ops."

This reverts commit 973e133b769773c89ce4b8bbfd6c77612d2ff9d4.

It triggers an issue in gcc5 that require investigation, the build is
broken with:

/tmp/ccdpj3B9.s: Assembler messages:
/tmp/ccdpj3B9.s:5821: Error: symbol `_ZNSt17_Function_handlerIFvjjEUljjE2_E9_M_invokeERKSt9_Any_dataOjS6_' is already defined
/tmp/ccdpj3B9.s:5860: Error: symbol `_ZNSt14_Function_base13_Base_managerIUljjE2_E10_M_managerERSt9_Any_dataRKS3_St18_Manager_operation' is already defined
The file was modifiedmlir/lib/Dialect/Linalg/EDSC/Builders.cpp
The file was modifiedmlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
The file was modifiedmlir/lib/Conversion/LinalgToStandard/LinalgToStandard.cpp
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgInterfaces.td
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Generalization.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Loops.cpp
The file was modifiedmlir/test/mlir-linalg-ods-gen/test-linalg-ods-gen.tc
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
The file was modifiedmlir/test/Transforms/copy-removal.mlir
Commit 1b5c2915a2318705727ada586290de15e2cad202 by akhuang
[DebugInfo] Add an attribute to force type info to be emitted for
class types.

The goal is to provide a way to bypass constructor homing when emitting
class definitions and force class definitions in the debug info.

Not sure about the wording of the attribute, or whether it should be
specific to classes with constructors
The file was addedclang/test/CodeGenCXX/debug-info-emit-as-needed-attribute.cpp
The file was modifiedclang/include/clang/Basic/Attr.td
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
Commit 394913fdb96af1a8ab699140f23073f2f366f406 by akhuang
Try to fix external_symbolizer_path.cpp test to stop breaking on buildbots.

Not sure what the issue is, but it might be because the test copies
llvm-symbolizer to a different directory, and it can't find libc++.
Try to add some REQUIRES that we use in other tests where we copy
llvm tools out of their original directories.
The file was modifiedcompiler-rt/test/sanitizer_common/TestCases/external_symbolizer_path.cpp
Commit 3fe465fb2cd64cd7bd910c761920e3378fe8d1b0 by akhuang
Revert "[DebugInfo] Add an attribute to force type info to be emitted for"

Didn't mean to commit this.

This reverts commit 1b5c2915a2318705727ada586290de15e2cad202.
The file was removedclang/test/CodeGenCXX/debug-info-emit-as-needed-attribute.cpp
The file was modifiedclang/lib/CodeGen/CGDebugInfo.cpp
The file was modifiedclang/include/clang/Basic/Attr.td
Commit 4841a225b7545b4bb03ae32ecea9f70e85f9e3bf by llvm-dev
[DAG] Move basic USUBSAT pattern matches from X86 to DAGCombine

Begin transitioning the X86 vector code to recognise sub(umax(a,b) ,b) or sub(a,umin(a,b)) USUBSAT patterns to make it more generic and available to all targets.

This initial patch just moves the basic umin/umax patterns to DAG, removing some vector-only checks on the way - these are some of the patterns that the legalizer will try to expand back to so we can be reasonably relaxed about matching these pre-legalization.

We can handle the trunc(sub(..))) variants as well, which helps with patterns where we were promoting to a wider type to detect overflow/saturation.

The remaining x86 code requires some cleanup first - some of it isn't actually tested etc. I also need to resurrect D25987.

Differential Revision: https://reviews.llvm.org/D96413
The file was modifiedllvm/test/CodeGen/ARM/usub_sat.ll
The file was modifiedllvm/test/CodeGen/AArch64/usub_sat_plus.ll
The file was modifiedllvm/test/CodeGen/AArch64/usub_sat.ll
The file was modifiedllvm/test/CodeGen/X86/usub_sat.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/usubsat.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/X86/psubus.ll
Commit 12999d749d722f33c3e66a4afbf1206d37e26be8 by scott.linder
[Symbolize] Teach symbolizer to work directly on object file.

This patch intended to provide additional interface to LLVMsymbolizer
such that they work directly on object files. There is an existing
method - symbolizecode which takes an object file, this patch provides
similar overloads for symbolizeInlinedCode, symbolizeData,
symbolizeFrame. This can be useful for clients who already have a
in-memory object files to symbolize for.

Patch By: pvellien (praveen velliengiri)

Reviewed By: scott.linder

Differential Revision: https://reviews.llvm.org/D95232
The file was modifiedllvm/lib/DebugInfo/Symbolize/Symbolize.cpp
The file was modifiedllvm/include/llvm/DebugInfo/Symbolize/Symbolize.h
Commit 875f0cbcc6d5ff9b36e667911e96fcdf6afc698e by david.green
[ARM] Optimize fp store of extract to integer store if already available.

Given a floating point store from an extracted vector, with an integer
VGETLANE that already exists, storing the existing VGETLANEu directly
can be better for performance. As the value is known to already be in an
integer registers, this can help reduce fp register pressure, removed
the need for the fp extract and allows use of more integer post-inc
stores not available with vstr.

This can be a bit narrow in scope, but helps with certain biquad kernels
that store shuffled vector elements.

Differential Revision: https://reviews.llvm.org/D96159
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/mve-extractstore.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-float16regloops.ll
Commit cb2d2ae56ae3f0554c40c2d7f231ca5058e4d50c by zibi
[SystemZ][ZOS] Provide CLOCK_MONOTONIC alternative

We need CLOCK_MONOTONIC equivalent implementation for z/OS within libc++. The default implementation is asserting.

On z/OS the lack of  'clock_gettime()' and 'time_point()' force us to look for alternatives.
The current proposal is to use `gettimeofday()` for CLOCK_MONOTONIC  which is also used in CLOCK_REALTIME.  This will allow us to skip the assertion with compromised CLOCK_MONOTONIC implementation which will not guarantee to never go back in time because it will use `gettimeofday()` but only when it's set.

Is this a good compromise for platforms which does not support monotonic clock?
Hopefully this will spark the discussion and agreement how to proceed in this situation.

Reviewed By: #libc, ldionne, hubert.reinterpretcast

Differential Revision: https://reviews.llvm.org/D93542
The file was modifiedlibcxx/include/CMakeLists.txt
The file was modifiedlibcxx/src/chrono.cpp
The file was addedlibcxx/include/__support/ibm/gettod_zos.h
Commit 7ff0cbe41d4579073f876f25a077b2f3cefd03a2 by llvmgnsyncbot
[gn build] Port cb2d2ae56ae3
The file was modifiedllvm/utils/gn/secondary/libcxx/include/BUILD.gn
Commit a0d09ce4600ba14e59129a4cbca10212a1d9dc82 by lxfind
[NFC][Coroutine] Fix an error message on coro.id verification

The error message should be about coro.id, not coro.begin

Differential Revision: https://reviews.llvm.org/D96447
The file was modifiedllvm/lib/IR/Verifier.cpp
Commit 98754e290908259f8d8eb3278e2021a7fbb9d37b by paul.robinson
[RGT][GlobalIsel] Add missing setUp() calls to legalizer unittests

Some of these accidentally disabled tests failed as a result; updated
tests per @qcolombet instructions. A small number needed additional
updates because legalization has actually changed since they were
written.

Found by the Rotten Green Tests project.

Differential Revision: https://reviews.llvm.org/D95257
The file was modifiedllvm/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
Commit ee66e43a96e138cc0ed5c37897576d05fa897c27 by diego.caballero
[mlir][Vector] Introduce 'vector.load' and 'vector.store' ops

This patch adds the 'vector.load' and 'vector.store' ops to the Vector
dialect [1]. These operations model *contiguous* vector loads and stores
from/to memory. Their semantics are similar to the 'affine.vector_load' and
'affine.vector_store' counterparts but without the affine constraints. The
most relevant feature is that these new vector operations may perform a vector
load/store on memrefs with a non-vector element type, unlike 'std.load' and
'std.store' ops. This opens the representation to model more generic vector
load/store scenarios: unaligned vector loads/stores, perform scalar and vector
memory access on the same memref, decouple memory allocation constraints from
memory accesses, etc [1]. These operations will also facilitate the progressive
lowering of both Affine vector loads/stores and Vector transfer reads/writes
for those that read/write contiguous slices from/to memory.

In particular, this patch adds the 'vector.load' and 'vector.store' ops to the
Vector dialect, implements their lowering to the LLVM dialect, and changes the
lowering of 'affine.vector_load' and 'affine.vector_store' ops to the new vector
ops. The lowering of Vector transfer reads/writes will be implemented in the
future, probably as an independent pass. The API of 'vector.maskedload' and
'vector.maskedstore' has also been changed slightly to align it with the
transfer read/write ops and the vector new ops. This will improve reusability
among all these operations. For example, the lowering of 'vector.load',
'vector.store', 'vector.maskedload' and 'vector.maskedstore' to the LLVM dialect
is implemented with a single template conversion pattern.

[1] https://llvm.discourse.group/t/memref-type-and-data-layout/

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D96185
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.td
The file was modifiedmlir/test/Dialect/Vector/invalid.mlir
The file was modifiedmlir/lib/Conversion/AffineToStandard/AffineToStandard.cpp
The file was modifiedmlir/test/Conversion/VectorToLLVM/vector-to-llvm.mlir
The file was modifiedmlir/lib/Dialect/Vector/VectorOps.cpp
The file was modifiedmlir/test/Dialect/Vector/ops.mlir
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was modifiedmlir/test/Conversion/AffineToStandard/lower-affine-to-vector.mlir
Commit 656674a7c43305dbf0b4234f1086cc88f7f4e4fb by diego.caballero
[mlir][Vector] Align gather/scatter/expand/compress API

Align the vector gather/scatter/expand/compress API with
the vector load/store/maskedload/maskedstore API.

Reviewed By: aartbik

Differential Revision: https://reviews.llvm.org/D96396
The file was modifiedmlir/test/Dialect/Vector/invalid.mlir
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.td
The file was modifiedmlir/lib/Dialect/Vector/VectorOps.cpp
Commit a7ceef9254ad1ec112906f53ac9cae2f0a37e4bb by i
DebugInfo/Symbolize: Exclude ARM mapping symbols for .symtab symbolization after D95916

Their names don't convey much information, so they should be excluded.
The behavior matches addr2line.

Differential Revision: https://reviews.llvm.org/D96617
The file was modifiedllvm/lib/DebugInfo/Symbolize/SymbolizableObjectFile.cpp
The file was addedllvm/test/DebugInfo/Symbolize/ELF/arm-mapping-symbol.s
Commit 9f175998debcbb14e95d7e94ca5fee26f4acc63b by Shafik Yaghmour
[LLDB] Fix LLDB_LOG calls to use correct formatting

It looks like a previous change switched these from LLDB_LOGF but did not update the format strings.

Differential Revision: https://reviews.llvm.org/D96550
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
Commit aa4e466caa8b8451ea8b1d3356da69158428cb3a by joker.eph
[mlir][Linalg] Improve region support in Linalg ops

This revision takes advantage of the newly extended `ref` directive in assembly format
to allow better region handling for LinalgOps. Specifically, FillOp and CopyOp now build their regions explicitly which allows retiring older behavior that relied on specific op knowledge in both lowering to loops and vectorization.

This reverts commit 3f22547fd1 and reland 973e133b769 with a workaround for
a gcc bug that does not accept lambda default parameters:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59949

Differential Revision: https://reviews.llvm.org/D96598
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/lib/Dialect/Linalg/EDSC/Builders.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgInterfaces.td
The file was modifiedmlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Loops.cpp
The file was modifiedmlir/lib/Conversion/LinalgToStandard/LinalgToStandard.cpp
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
The file was modifiedmlir/test/Transforms/copy-removal.mlir
The file was modifiedmlir/test/mlir-linalg-ods-gen/test-linalg-ods-gen.tc
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Generalization.cpp
Commit 0fe4701e515333556920aecc845feb2cc70e116c by mvanotti
Expand unit tests for fuzzer::Merger

This change adds additional unit tests for fuzzer::Merger::Parse and fuzzer::Merger::Merge in anticipation of additional changes to the merge control file format to support cross-process fuzzing.

It modifies the parameter handling of Merge slightly in order to make NewFeatures and NewCov consistent with NewFiles; namely, Merge *replaces* the contents of these output parameters rather than accumulating them (thereby fixing a buggy return value).

This is change 1 of (at least) 18 for cross-process fuzzing support.

Reviewed By: morehouse

Differential Revision: https://reviews.llvm.org/D94506
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerMerge.cpp
The file was modifiedcompiler-rt/lib/fuzzer/tests/FuzzerUnittest.cpp
The file was modifiedcompiler-rt/lib/fuzzer/FuzzerFork.cpp
Commit 4fc25573089c53804a035080739867ee3b346fdd by wingo
[WebAssembly][lld] Preassign table number 0 to indirect function table for MVP inputs

MVP object files may import at most one table, and if they do, it must
be assigned table number zero in the output, as the references to that
table are not relocatable.  Ensure that this is the case, even if some
inputs define other tables.

Differential Revision: https://reviews.llvm.org/D96001
The file was modifiedlld/wasm/InputFiles.h
The file was modifiedlld/wasm/Symbols.cpp
The file was modifiedlld/wasm/SyntheticSections.h
The file was modifiedlld/wasm/Writer.cpp
The file was modifiedlld/test/wasm/shared.ll
The file was modifiedlld/wasm/Config.h
The file was modifiedlld/wasm/InputFiles.cpp
The file was addedlld/test/wasm/invalid-mvp-table-use.s
The file was modifiedlld/wasm/Driver.cpp
The file was modifiedlld/wasm/SyntheticSections.cpp
Commit 51bf4c0e6d4cbc6dfa57857fc78003413cbeb17f by flo
[clang] Add -ffinite-loops & -fno-finite-loops options.

This patch adds 2 new options to control when Clang adds `mustprogress`:

  1. -ffinite-loops: assume all loops are finite; mustprogress is added
     to all loops, regardless of the selected language standard.
  2. -fno-finite-loops: assume no loop is finite; mustprogress is not
     added to any loop or function. We could add mustprogress to
     functions without loops, but we would have to detect that in Clang,
     which is probably not worth it.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D96419
The file was modifiedclang/test/CodeGen/attr-mustprogress.c
The file was modifiedclang/test/CodeGenCXX/attr-mustprogress.cpp
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/lib/CodeGen/CodeGenFunction.h
The file was modifiedclang/include/clang/Basic/CodeGenOptions.h
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/include/clang/Driver/Options.td
Commit 5815b71eacefec97c0644307ac5de8f044a01556 by akhuang
Disable test in external_symbolizer_path.cpp temporarily to debug test failures.
The file was modifiedcompiler-rt/test/sanitizer_common/TestCases/external_symbolizer_path.cpp
Commit 5d6d9b63a30843457a6139ff07ea9d664bebc988 by Amara Emerson
[GlobalISel] Propagate extends through G_PHIs into the incoming value blocks.

This combine tries to do inter-block hoisting of extends of G_PHIs, into the
originating blocks of the phi's incoming value. The idea is to expose further
optimization opportunities that are normally obscured by the PHI.

Some basic heuristics, and a target hook for AArch64 is added, to allow tuning.
E.g. if the extend is used by a G_PTR_ADD, it doesn't perform this combine
since it may be folded into the addressing mode during selection.

There are very minor code size improvements on AArch64 -Os, but the real benefit
is that it unlocks optimizations like AArch64 conditional compares on some
benchmarks.

Differential Revision: https://reviews.llvm.org/D95703
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
The file was modifiedllvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.h
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/prelegalizercombiner-prop-extends-phi.mir
The file was modifiedllvm/include/llvm/CodeGen/TargetInstrInfo.h
Commit 3c06676de14d7dd6dc3d1bf2989c503a2a5d438a by jyknight
Fix layering after ed4718eccb12.

That commit added a dependency from IR to Analysis, which isn't
allowed. Fix it by duplicating a string constant.
The file was modifiedllvm/lib/IR/AutoUpgrade.cpp
Commit 77632422bcca9800fe4733f470f1939db029c0ba by martin
[OpenMP] Fix the check for libpsapi for i386

check_library_exists fails for stdcall functions, because that
check doesn't include the necessary headers (and thus fails with
an undefined reference to _EnumProcessModules, when the import
library symbol actually is called _EnumProcessModules@16).

Merge the two previous checks check_include_files and
check_library_exists into one with check_c_source_compiles, and
merge the variables that indicate whether it succeeded.

Differential Revision: https://reviews.llvm.org/D96580
The file was modifiedopenmp/runtime/cmake/config-ix.cmake
The file was modifiedopenmp/runtime/cmake/LibompHandleFlags.cmake
Commit 3f9519b768ebe7a2731443bdc2d3178a005e8d7f by martin
[OpenMP] Only use #pragma comment(lib, ...) in MSVC build configurations

MinGW build configurations don't support this pragma (unless
compiling with clang, with -fms-extensions, and linking with
lld), and at least clang warns about it.

This library does end up linked by the cmake files anyway (as
long as the check works properly).

Differential Revision: https://reviews.llvm.org/D96581
The file was modifiedopenmp/runtime/src/z_Windows_NT_util.cpp
Commit b3d84790faadaff95bd32ae9950205e044f6fce0 by martin
[OpenMP] Add void casts to silence unused variable warnings

These variables are used only in certain build configurations,
or marked with a todo comment indicating that they should be
used/checked/reported.

Differential Revision: https://reviews.llvm.org/D96582
The file was modifiedopenmp/runtime/src/z_Windows_NT_util.cpp
The file was modifiedopenmp/runtime/src/kmp_tasking.cpp
The file was modifiedopenmp/runtime/src/kmp_atomic.cpp
The file was modifiedopenmp/runtime/src/kmp_affinity.cpp
The file was modifiedopenmp/runtime/src/kmp_io.cpp
Commit b388c84c096b3810382d34e1e7438bd4bfcf2123 by martin
[OpenMP] Remove two entirely unused variables

Differential Revision: https://reviews.llvm.org/D96583
The file was modifiedopenmp/runtime/src/z_Windows_NT_util.cpp
Commit 16428a8d91a904c841086a971a8f26c3d8cf1307 by martin
[OpenMP] Avoid warnings about unused static functions on windows

Add ifdefs around one function that only is used in unix build
configurations.

Add a void cast for a windows specific function that currently is
unused but may be intended to be used at some point.

Differential Revision: https://reviews.llvm.org/D96584
The file was modifiedopenmp/runtime/src/kmp_io.cpp
The file was modifiedopenmp/runtime/src/kmp_environment.cpp
Commit 496ca4127e2733d8421af70d360cd5df779fe592 by martin
[OpenMP] Silence more warning flags

This silences warnings like these, in mingw builds with clang:

runtime/src/kmp_atomic.h:1021:13: warning: '__kmpc_atomic_cmplx8_rd' has C-linkage specified, but returns user-defined type 'kmp_cmplx64' (aka '__kmp_cmplx64_t') which is incompatible with C [-Wreturn-type-c-linkage]

runtime/src/z_Windows_NT_util.cpp:479:17: warning: cast from 'volatile void *' to 'type-parameter-0-0 *' drops volatile qualifier [-Wcast-qual]
    flag = (C *)th->th.th_sleep_loc;

runtime/src/z_Windows_NT_util.cpp:1321:14: warning: cast to 'void *' from smaller integer type 'DWORD' (aka 'unsigned long') [-Wint-to-void-pointer-cast]
  } else if ((void *)exit_val != (void *)th) {

Differential Revision: https://reviews.llvm.org/D96585
The file was modifiedopenmp/runtime/cmake/config-ix.cmake
The file was modifiedopenmp/runtime/cmake/LibompHandleFlags.cmake
Commit 13bd6fb43da9e9b1d7e82272325ec781d1f16456 by Vedant Kumar
[docs/Coverage] Answer FAQ about optimization
The file was modifiedclang/docs/SourceBasedCodeCoverage.rst
Commit 0c4935bb85166a4a0bf87a320b81e400d7be04f0 by Vedant Kumar
[docs/Coverage] Document -show-region-summary

As a drive-by, fix the section in the clang docs about the number of
statistics visible in a report.
The file was modifiedllvm/docs/CommandGuide/llvm-cov.rst
The file was modifiedclang/docs/SourceBasedCodeCoverage.rst
Commit 145549ff893f15bffa3bad78440b5257a47a3aa9 by Jessica Paquette
[GlobalISel] Combine (x + 0) -> x, G_PTR_ADD edition

Add it to right_identity_zero.

Differential Revision: https://reviews.llvm.org/D96621
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/prelegalizercombiner-trivial-arith.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/flat-scratch.ll
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td
Commit 6280bb4cd80e39b0e54b1c8dd091f2b7175381eb by flo
[clang] Remove redundant condition (NFC).
The file was modifiedclang/lib/CodeGen/CodeGenFunction.h
Commit 48fcce1aea9e783c3fe64482f06a965707e75990 by zibi
[SystemZ][ZOS] Fix __libcpp_thrad_isnull()

Previous pthread revision https://reviews.llvm.org/D91875 missed a small change for `__libcpp_thrad_isnull()` required for z/OS.

Reviewed By: zibi

Differential Revision: https://reviews.llvm.org/D96302
The file was modifiedlibcxx/include/__threading_support
Commit a65fb1916cb49b2f1ab3e7016fa54c04b2b048b4 by joker.eph
Add a "kind" attribute to ContractionOp and OuterProductOp.

Currently, vector.contract joins the intermediate result and the accumulator
argument (of ranks K) using summation. We desire more joining operations ---
such as max --- to help vector.contract express reductions. This change extends
Vector_ContractionOp to take an optional attribute (called "kind", of enum type
CombiningKind) specifying the joining operation to be add/mul/min/max for int/fp
, and and/or/xor for int only. By default this attribute has value "add".

To implement this we also need to extend vector.outerproduct, since
vector.contract gets transformed to vector.outerproduct (and that to
vector.fma). The extension for vector.outerproduct is also an optional kind
attribute that uses the same enum type and possible values. The default is
"add". In case of max/min we transform vector.outerproduct to a combination of
compare and select.

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D93280
The file was modifiedmlir/test/Dialect/Vector/vector-transforms.mlir
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.h
The file was modifiedmlir/include/mlir/IR/OpBase.td
The file was modifiedmlir/lib/Dialect/Vector/CMakeLists.txt
The file was modifiedmlir/tools/mlir-tblgen/EnumsGen.cpp
The file was modifiedmlir/include/mlir/Dialect/Vector/CMakeLists.txt
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.td
The file was modifiedmlir/test/Dialect/Linalg/vectorization.mlir
The file was modifiedmlir/test/Dialect/Vector/vector-contract-matvec-transforms.mlir
The file was modifiedmlir/test/Dialect/Vector/ops.mlir
The file was modifiedmlir/lib/Dialect/Vector/VectorOps.cpp
Commit c96e214b9ca7739737cf257baf32ff819854027d by Stanislav.Mekhanoshin
[AMDGPU] Fix Windows build

A trivial fix, 64 bit constant is 1ull, not 1ul on Windows.
Fixed build broken by c0d7a8bc6241.
The file was modifiedllvm/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp
Commit 191e469edee619f578076d775ce1ca19c9ecc103 by nikita.ppv
[AA] Move Depth member from AAResults to AAQI (NFC)

Rather than storing the query depth in AAResults, store it in AAQI.
This makes more sense, as it is a property of the query. This
sidesteps the issue of D94363, fixing slightly inaccurate AA
statistics. Additionally, I plan to use the Depth from BasicAA in
the future, where fetching it from AAResults would be unreliable.

This change is not quite as straightforward as it seems, because
we need to preserve the depth when creating a new AAQI for recursive
queries across phis. I'm adding a new method for this, as we may
need to preserve additional information here in the future.
The file was modifiedllvm/lib/Analysis/BasicAliasAnalysis.cpp
The file was modifiedllvm/include/llvm/Analysis/AliasAnalysis.h
The file was modifiedllvm/lib/Analysis/AliasAnalysis.cpp
Commit 20cb6c7cebb5a3566640a9bf0da4729993ce6020 by nikita.ppv
[AA] Add option for tracing AA queries (NFC)

Add an -aa-trace debug option that can be used to print AA queries,
including any recursive queries and their results.
The file was modifiedllvm/lib/Analysis/AliasAnalysis.cpp
Commit 242304f3e2d09c165d78354ac60baab6ff077bc9 by aeubanks
[gn build] Add missing llvm-profgen dependency

Or else a clean build fails with missing Attributes.inc.
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/tools/llvm-profgen/BUILD.gn
Commit 1e92b1730f465323844f5792aa45c9fa7463579e by akhuang
Fix test failure for external_symbolizer_path.cpp
The file was modifiedcompiler-rt/test/sanitizer_common/TestCases/external_symbolizer_path.cpp