SuccessChanges

Summary

  1. [libc++][filesystem] Only include <fstream> when we actually need it in copy_file_impl (details)
  2. [LV] Add a getRecurrenceBinOp and make use of it. NFC (details)
  3. Revert "[LLD] [COFF] Implement a GNU/ELF like -wrap option" (details)
  4. [mlir][Linalg] NFC - Rename test files s/_/-/g (details)
  5. [flang][msvc] Avoid a reinterpret_cast (details)
  6. [libc++] Reduce dependencies on <iostream> from <random> (details)
  7. Make sure both cc1 and cc1as process -m[no-]code-object-v3 (details)
  8. [NFC][CaptureTracking] Move static function isNonEscapingLocalObject to llvm namespace (details)
  9. [InstCombine] update tests for logic folds to exercise commuted patterns; NFC (details)
  10. Reapply [LLD] [COFF] Implement a GNU/ELF like -wrap option (details)
  11. [mlir] Fix typo in LangRef (details)
  12. [mlir] Add std.tensor_to_memref op and teach the infra about it (details)
  13. [SemaObjC] Fix composite pointer type calculation for `void*` and pointer to lifetime qualified ObjC pointer type (details)
  14. Reland "[WebAssembly] v128.load{8,16,32,64}_lane instructions" (details)
Commit 17dcf85ebe4cfbd3f811848f6d9ebc486b3387e9 by Louis Dionne
[libc++][filesystem] Only include <fstream> when we actually need it in copy_file_impl

This allows building <filesystem> on systems that don't support <fstream>,
such as systems that don't support localization.
The file was modifiedlibcxx/src/filesystem/operations.cpp
Commit 13ec3dd66fe4e8d2990da58e1416c881402dc48e by david.green
[LV] Add a getRecurrenceBinOp and make use of it. NFC
The file was modifiedllvm/include/llvm/Analysis/IVDescriptors.h
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Commit 3d338f681340e2075707eabcf530bcc0c37da80e by aeubanks
Revert "[LLD] [COFF] Implement a GNU/ELF like -wrap option"

This reverts commit a012c704b5e5b60f9d2a7304d27cbc84a3619571.

Breaks Windows builds.

C:\src\llvm-mint\lld\COFF\Symbols.cpp(26,1): error: static_assert failed due to requirement 'sizeof(lld::coff::SymbolUnion) <= 48' "symbols should be optimized for memory usage"
static_assert(sizeof(SymbolUnion) <= 48,
The file was modifiedlld/COFF/Symbols.h
The file was modifiedlld/COFF/Driver.cpp
The file was modifiedlld/test/MinGW/driver.test
The file was removedlld/test/COFF/wrap-i386.s
The file was modifiedlld/COFF/LTO.cpp
The file was modifiedlld/COFF/Options.td
The file was removedlld/test/COFF/wrap-lto-1.ll
The file was modifiedlld/COFF/InputFiles.h
The file was modifiedlld/COFF/MinGW.h
The file was modifiedlld/MinGW/Options.td
The file was modifiedlld/COFF/SymbolTable.cpp
The file was removedlld/test/COFF/wrap-import.ll
The file was removedlld/test/COFF/wrap-with-archive.s
The file was removedlld/test/COFF/wrap.s
The file was modifiedlld/COFF/MinGW.cpp
The file was removedlld/test/COFF/wrap-real-missing.s
The file was removedlld/test/COFF/wrap-lto-2.ll
The file was modifiedlld/MinGW/Driver.cpp
Commit cf6fd404f339c4bab4f246fb131435553aadc940 by nicolas.vasilache
[mlir][Linalg] NFC - Rename test files s/_/-/g
The file was addedmlir/test/Dialect/Linalg/fusion-indexed-generic.mlir
The file was removedmlir/test/Dialect/Linalg/tile_simple_conv.mlir
The file was removedmlir/test/Dialect/Linalg/parallel_loops.mlir
The file was addedmlir/test/Dialect/Linalg/parallel-loops.mlir
The file was removedmlir/test/Dialect/Linalg/tile_indexed_generic.mlir
The file was addedmlir/test/Dialect/Linalg/tile-conv-padding.mlir
The file was addedmlir/test/Dialect/Linalg/tile-conv.mlir
The file was removedmlir/test/Dialect/Linalg/tile_conv.mlir
The file was addedmlir/test/Dialect/Linalg/tile-parallel-reduce.mlir
The file was addedmlir/test/Dialect/Linalg/tile-simple-conv.mlir
The file was removedmlir/test/Dialect/Linalg/fusion_indexed_generic.mlir
The file was removedmlir/test/Dialect/Linalg/tile_conv_padding.mlir
The file was addedmlir/test/Dialect/Linalg/tile-indexed-generic.mlir
The file was removedmlir/test/Dialect/Linalg/tile_parallel_reduce.mlir
The file was addedmlir/test/Dialect/Linalg/tile-parallel.mlir
The file was removedmlir/test/Dialect/Linalg/tile_parallel.mlir
Commit 2aad6a0884e3372fef8176902cf984d2f385d938 by pklausler
[flang][msvc] Avoid a reinterpret_cast

The call to the binary->decimal formatter in real.cpp was cheating
by using a reinterpret_cast<> to extract its binary value.
Use a more principled and portable approach by extending the
API of evaluate::Integer<> to include ToUInt<>()/ToSInt<>()
member function templates that do the "right" thing.  Retain
ToUInt64()/ToSInt64() for compatibility.

Differential revision: https://reviews.llvm.org/D89435
The file was modifiedflang/include/flang/Evaluate/integer.h
The file was modifiedflang/lib/Evaluate/real.cpp
Commit 6abc15ae3c245b6043f15d3cdedfad187888dfd5 by Louis Dionne
[libc++] Reduce dependencies on <iostream> from <random>

We included <istream> and <ostream> from <random>, but really it is
sufficient to include <iosfwd> if we make sure we access ios_base
members through a dependent type. This allows us to break a hard
dependency of <random> on locales.
The file was modifiedlibcxx/include/random
The file was modifiedlibcxx/include/ios
The file was modifiedlibcxx/include/iosfwd
Commit 67f189e93ce3c25db74697551a77831a72b34929 by kzhuravl_dev
Make sure both cc1 and cc1as process -m[no-]code-object-v3

Differential Revision: https://reviews.llvm.org/D89478
The file was modifiedclang/test/Driver/amdgpu-features.c
The file was modifiedclang/lib/Driver/ToolChains/AMDGPU.cpp
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was addedclang/test/Driver/amdgpu-features-as.s
Commit 224fd6ff48e26840f11f870faf2bde124dc2d261 by anhtuyen
[NFC][CaptureTracking] Move static function isNonEscapingLocalObject to llvm namespace

Function isNonEscapingLocalObject is a static one within BasicAliasAnalysis.cpp.
It wraps around PointerMayBeCaptured of CaptureTracking, checking whether a pointer
is to a function-local object, which never escapes from the function.

Although at the moment, isNonEscapingLocalObject is used only by BasicAliasAnalysis,
its functionality can be used by other pass(es), one of which I will put up for review
very soon. Instead of copying the contents of this static function, I move it to llvm
scope, and place it amongst other functions with similar functionality in CaptureTracking.

The rationale for the location are:
- Pointer escape and pointer being captured are actually two sides of the same coin
- isNonEscapingLocalObject is wrapping around another function in CaptureTracking

Reviewed By: jdoerfert (Johannes Doerfert)

Differential Revision: https://reviews.llvm.org/D89465
The file was modifiedllvm/include/llvm/Analysis/CaptureTracking.h
The file was modifiedllvm/lib/Analysis/CaptureTracking.cpp
The file was modifiedllvm/lib/Analysis/BasicAliasAnalysis.cpp
Commit 77fb8cbd60cfd185b710886c4fe53e1865f24ce8 by spatel
[InstCombine] update tests for logic folds to exercise commuted patterns; NFC

This was the intent for D88551.
I also varied the types a bit for extra coverage
and tried to make better test/value names.
The file was modifiedllvm/test/Transforms/InstCombine/xor.ll
Commit 3785a413feef896e8a022731cc6ed405d5ebe81b by martin
Reapply [LLD] [COFF] Implement a GNU/ELF like -wrap option

Add a simple forwarding option in the MinGW frontend, and implement
the private -wrap option in the COFF linker.

The feature in lld-link isn't gated by the -lldmingw option, but
the option is left as a private, undocumented option primarily
used by the MinGW driver.

The implementation is significantly based on the support for --wrap
in the ELF linker, but many small nuance details are different
between the ELF and COFF linkers, ending up with more than a few
implementation differences.

This fixes https://bugs.llvm.org/show_bug.cgi?id=47384.

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

Reapplied with the bitfield member canInline fixed so it doesn't break
builds targeting windows.
The file was modifiedlld/COFF/InputFiles.h
The file was modifiedlld/COFF/Driver.cpp
The file was modifiedlld/MinGW/Options.td
The file was modifiedlld/COFF/MinGW.h
The file was addedlld/test/COFF/wrap-lto-2.ll
The file was addedlld/test/COFF/wrap-import.ll
The file was modifiedlld/COFF/MinGW.cpp
The file was modifiedlld/COFF/Options.td
The file was modifiedlld/MinGW/Driver.cpp
The file was modifiedlld/test/MinGW/driver.test
The file was addedlld/test/COFF/wrap-i386.s
The file was addedlld/test/COFF/wrap-with-archive.s
The file was modifiedlld/COFF/LTO.cpp
The file was modifiedlld/COFF/Symbols.h
The file was addedlld/test/COFF/wrap-real-missing.s
The file was addedlld/test/COFF/wrap-lto-1.ll
The file was addedlld/test/COFF/wrap.s
The file was modifiedlld/COFF/SymbolTable.cpp
Commit 9c728a7cbf5df69627966b823d30daa6cfe2426d by silvasean
[mlir] Fix typo in LangRef
The file was modifiedmlir/docs/LangRef.md
Commit ee491ac91e123b90eeec3cce7e494936ea8cb85d by silvasean
[mlir] Add std.tensor_to_memref op and teach the infra about it

The opposite of tensor_to_memref is tensor_load.

- Add some basic tensor_load/tensor_to_memref folding.
- Add source/target materializations to BufferizeTypeConverter.
- Add an example std bufferization pattern/pass that shows how the
  materialiations work together (more std bufferization patterns to come
  in subsequent commits).
  - In coming commits, I'll document how to write composable
  bufferization passes/patterns and update the other in-tree
  bufferization passes to match this convention. The populate* functions
  will of course continue to be exposed for power users.

The naming on tensor_load/tensor_to_memref and their pretty forms are
not very intuitive. I'm open to any suggestions here. One key
observation is that the memref type must always be the one specified in
the pretty form, since the tensor type can be inferred from the memref
type but not vice-versa.

With this, I've been able to replace all my custom bufferization type
converters in npcomp with BufferizeTypeConverter!

Part of the plan discussed in:
https://llvm.discourse.group/t/what-is-the-strategy-for-tensor-memref-conversion-bufferization/1938/17

Differential Revision: https://reviews.llvm.org/D89437
The file was modifiedmlir/include/mlir/Dialect/StandardOps/Transforms/Passes.h
The file was modifiedmlir/lib/Dialect/StandardOps/IR/Ops.cpp
The file was modifiedmlir/lib/Dialect/StandardOps/Transforms/CMakeLists.txt
The file was modifiedmlir/include/mlir/Transforms/Bufferize.h
The file was modifiedmlir/lib/Transforms/Bufferize.cpp
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
The file was addedmlir/test/Dialect/Standard/canonicalize.mlir
The file was modifiedmlir/include/mlir/Dialect/StandardOps/Transforms/Passes.td
The file was addedmlir/test/Dialect/Standard/bufferize.mlir
The file was addedmlir/lib/Dialect/StandardOps/Transforms/Bufferize.cpp
The file was modifiedmlir/test/Dialect/Standard/ops.mlir
Commit 351317167e2b28aad03f8e45e0ed0acbbff18c61 by erik.pilkington
[SemaObjC] Fix composite pointer type calculation for `void*` and pointer to lifetime qualified ObjC pointer type

Fixes a regression introduced in 9a6f4d451ca7. rdar://70101809

Differential revision: https://reviews.llvm.org/D89475
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
The file was modifiedclang/test/SemaObjCXX/arc-ptr-comparison.mm
Commit 3f738d1f5e2d657993a51ca3fe56585268025d89 by tlively
Reland "[WebAssembly] v128.load{8,16,32,64}_lane instructions"

This reverts commit 7c8385a352ba21cb388046290d93b53dc273cd9f with a typing fix
to an instruction selection pattern.
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedllvm/include/llvm/IR/IntrinsicsWebAssembly.td
The file was modifiedllvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h
The file was addedllvm/test/CodeGen/WebAssembly/simd-load-lane-offset.ll
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
The file was modifiedclang/include/clang/Basic/BuiltinsWebAssembly.def
The file was modifiedllvm/test/MC/WebAssembly/simd-encodings.s
The file was modifiedllvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmParser.cpp
The file was modifiedclang/test/CodeGen/builtins-wasm.c
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp