SuccessChanges

Summary

  1. [WebAssembly][NFC] Finish cleaning up SIMD tablegen (details)
  2. [NewPM] Fix CGSCCOptimizerLateEPCallbacks place in pipeline (details)
  3. [WebAssembly] Prototype extending pairwise add instructions (details)
  4. [MLIR][NFC] Change FunctionLike::setAllArgAttrs/setAllResultAttrs to do a one-shot attribute update. (details)
  5. [IROutliner] Adding support for consolidating functions with different output arguments. (details)
Commit 44ee14f993ff093c3c3ef65ab5aa1fdd3f7a1dc6 by tlively
[WebAssembly][NFC] Finish cleaning up SIMD tablegen

This commit is a follow-on to c2c2e9119e73, using the `Vec` records introduced
in that commit in the rest of the SIMD instruction definitions. Also removes
unnecessary types in output patterns.

Differential Revision: https://reviews.llvm.org/D93771
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp
Commit 6c36286a2e180443005d31a9cec2ca182963bcad by aeubanks
[NewPM] Fix CGSCCOptimizerLateEPCallbacks place in pipeline

CGSCCOptimizerLateEPCallbacks are supposed to be run before the function
simplification pipeline, like in the legacy PM and as specified in the
comments for registerCGSCCOptimizerLateEPCallback().

Reviewed By: ychen

Differential Revision: https://reviews.llvm.org/D93871
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedllvm/test/Other/new-pm-defaults.ll
Commit 5e09e9979bc60f0fca0e80e7f72f1260bd1bbca5 by tlively
[WebAssembly] Prototype extending pairwise add instructions

As proposed in https://github.com/WebAssembly/simd/pull/380. This commit makes
the new instructions available only via clang builtins and LLVM intrinsics to
make their use opt-in while they are still being evaluated for inclusion in the
SIMD proposal.

Depends on D93771.

Differential Revision: https://reviews.llvm.org/D93775
The file was modifiedllvm/test/CodeGen/WebAssembly/simd-intrinsics.ll
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td
The file was modifiedllvm/include/llvm/IR/IntrinsicsWebAssembly.td
The file was modifiedllvm/test/MC/WebAssembly/simd-encodings.s
The file was modifiedclang/include/clang/Basic/BuiltinsWebAssembly.def
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedclang/test/CodeGen/builtins-wasm.c
Commit 25007b4d7e094c569d512770bd2397d8667fd3db by jurahul
[MLIR][NFC] Change FunctionLike::setAllArgAttrs/setAllResultAttrs to do a one-shot attribute update.

- Change FunctionLike::setAllArgAttrs() and setAllResultAttrs() to rebuild the new list of
  function attributes locally and call setAttr() just once instead of calling
  setArgAttr()/setResultAttrs() for each argument which incrementally build the
  attribute dictionary and can end up creating a lot of unused DictionaryAttr's (which are
  uniqued and nor garbage collected).

Differential Revision: https://reviews.llvm.org/D93870
The file was modifiedmlir/include/mlir/IR/FunctionSupport.h
Commit e6ae623314bab3ddd983ed941bf63a6d4c63a1f4 by andrew.litteken
[IROutliner] Adding support for consolidating functions with different output arguments.

Certain regions can have values introduced inside the region that are
used outside of the region. These may not be the same for each similar
region, so we must create one over arching set of arguments for the
consolidated function.

We do this by iterating over the outputs for each extracted function,
and creating as many different arguments to encapsulate the different
outputs sets. For each output set, we create a different block with the
necessary stores from the value to the output register. There is then
one switch statement, controlled by an argument to the function, to
differentiate which block to use.

Changed Tests for consistency:
llvm/test/Transforms/IROutliner/extraction.ll
llvm/test/Transforms/IROutliner/illegal-assumes.ll
llvm/test/Transforms/IROutliner/illegal-memcpy.ll
llvm/test/Transforms/IROutliner/illegal-memmove.ll
llvm/test/Transforms/IROutliner/illegal-vaarg.ll

Tests to test new functionality:
llvm/test/Transforms/IROutliner/outlining-different-output-blocks.ll
llvm/test/Transforms/IROutliner/outlining-remapped-outputs.ll
llvm/test/Transforms/IROutliner/outlining-same-output-blocks.ll

Reviewers: jroelofs, paquette

Differential Revision: https://reviews.llvm.org/D87296
The file was modifiedllvm/test/Transforms/IROutliner/extraction.ll
The file was modifiedllvm/test/Transforms/IROutliner/illegal-memcpy.ll
The file was addedllvm/test/Transforms/IROutliner/outlining-different-output-blocks.ll
The file was modifiedllvm/test/Transforms/IROutliner/illegal-memmove.ll
The file was modifiedllvm/test/Transforms/IROutliner/illegal-vaarg.ll
The file was modifiedllvm/test/Transforms/IROutliner/illegal-assumes.ll
The file was addedllvm/test/Transforms/IROutliner/outlining-remapped-outputs.ll
The file was modifiedllvm/include/llvm/Transforms/IPO/IROutliner.h
The file was addedllvm/test/Transforms/IROutliner/outlining-same-output-blocks.ll
The file was modifiedllvm/lib/Transforms/IPO/IROutliner.cpp