1. [mlir] Extend BufferAssignmentTypeConverter with result conversion callbacks (details)
  2. [Test] Simplify test by removing unneeded variable (details)
  3. Move all fields of '-cc1' option related classes into def file databases (details)
  4. [VectorCombine] allow vector loads with mismatched insert type (details)
  5. [InstCombine] Transform 1.0/sqrt(X) * X to X/sqrt(X) (details)
  6. [mlir][VectorToSCF] 128 byte alignment of alloc ops (details)
Commit 94f5d248772ba0f1f9c8b0746fe75a5d246c5540 by ehsan.nadjaran_toosi
[mlir] Extend BufferAssignmentTypeConverter with result conversion callbacks

In this PR, the users of BufferPlacement can configure
BufferAssginmentTypeConverter. These new configurations would give the user more
freedom in the process of converting function signature, and return and call
operation conversions.

These are the new features:
    - Accepting callback functions for decomposing types (i.e. 1 to N type
    conversion such as unpacking tuple types).
    - Defining ResultConversionKind for specifying whether a function result
    with a certain type should be appended to the function arguments list or
    should be kept as function result. (Usage:
    - Accepting callback functions for composing or decomposing values (i.e. N
    to 1 and 1 to N value conversion).

Differential Revision:
The file was modifiedmlir/test/lib/Dialect/Test/
The file was modifiedmlir/lib/Transforms/BufferPlacement.cpp
The file was modifiedmlir/test/Transforms/buffer-placement-preparation.mlir
The file was modifiedmlir/include/mlir/Transforms/BufferPlacement.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/TensorsToBuffers.cpp
The file was modifiedmlir/test/Transforms/buffer-placement-preparation-allowed-memref-results.mlir
The file was modifiedmlir/test/lib/Transforms/TestBufferPlacement.cpp
Commit 8a3907cd494e8779bbc16ec5cfc763289b0ce041 by mkazantsev
[Test] Simplify test by removing unneeded variable
The file was modifiedllvm/test/Transforms/IndVarSimplify/predicated_ranges.ll
Commit c4a2a1307484cffe94a291c42572775411bac8d8 by dany.grumberg
Move all fields of '-cc1' option related classes into def file databases

Once the new option parsing system is committed, this will allow to generate a
check to ensure that correct command line generation happens

Differential Revision:
The file was addedclang/include/clang/Lex/PreprocessorOptions.def
The file was modifiedclang/include/clang/Frontend/CompilerInvocation.h
The file was modifiedclang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h
The file was modifiedclang/include/clang/Basic/LangOptions.h
The file was addedclang/include/clang/Basic/TargetOptions.def
The file was addedclang/include/clang/Frontend/FrontendOptions.def
The file was modifiedclang/include/clang/Basic/FileSystemOptions.h
The file was modifiedclang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def
The file was modifiedclang/include/clang/Basic/CodeGenOptions.h
The file was addedclang/include/clang/Frontend/PreprocessorOutputOptions.def
The file was addedclang/include/clang/Basic/CommentOptions.def
The file was addedclang/include/clang/Lex/HeaderSearchOptions.def
The file was modifiedclang/include/clang/Frontend/MigratorOptions.h
The file was modifiedclang/include/clang/Frontend/PreprocessorOutputOptions.h
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def
The file was addedclang/include/clang/Basic/FileSystemOptions.def
The file was addedclang/include/clang/Frontend/DependencyOutputOptions.def
The file was addedclang/include/clang/Frontend/MigratorOptions.def
The file was modifiedclang/include/clang/Basic/CommentOptions.h
The file was modifiedclang/include/clang/Basic/LangOptions.def
The file was modifiedclang/include/clang/Sema/CodeCompleteOptions.h
The file was modifiedclang/include/clang/Lex/PreprocessorOptions.h
The file was modifiedclang/include/clang/Basic/DiagnosticOptions.h
The file was modifiedclang/include/clang/Frontend/FrontendOptions.h
The file was modifiedclang/lib/Basic/LangOptions.cpp
The file was modifiedclang/include/clang/Basic/DiagnosticOptions.def
The file was modifiedclang/include/clang/Frontend/DependencyOutputOptions.h
The file was modifiedclang/include/clang/Lex/HeaderSearchOptions.h
The file was modifiedclang/include/clang/Basic/TargetOptions.h
The file was addedclang/include/clang/Sema/CodeCompleteOptions.def
The file was modifiedclang/lib/Basic/CodeGenOptions.cpp
Commit 8fb055932c085da21f3b721995a06f42006744bd by spatel
[VectorCombine] allow vector loads with mismatched insert type

This is an enhancement to D81766 to allow loading the minimum target
vector type into an IR vector with a different number of elements.

In one of the motivating tests from PR16739, SLP creates <2 x float>
load ops mixed with <4 x float> insert ops, so we want to handle that
pattern in addition to potential oversized vectors created by the

For now, we are assuming the insert/extract subvector with undef is
free because there is no exact corresponding TTI modeling for that.

Differential Revision:
The file was modifiedllvm/test/Transforms/VectorCombine/X86/load.ll
The file was modifiedllvm/lib/Transforms/Vectorize/VectorCombine.cpp
Commit 626c3738cdfa49527097fccdf89e22949138ade7 by spatel
[InstCombine] Transform 1.0/sqrt(X) * X to X/sqrt(X)

These transforms will now be performed irrespective of the number of uses for the expression "1.0/sqrt(X)":
1.0/sqrt(X) * X => X/sqrt(X)
X * 1.0/sqrt(X) => X/sqrt(X)

We already handle more general cases, and we are intentionally not creating extra (and likely expensive)
fdiv ops in IR. This pattern is the exception to the rule because we always expect the Backend to reduce
X/sqrt(X) to sqrt(X), if it has the necessary (reassoc) fast-math-flags.

Ref: DagCombiner optimizes the X/sqrt(X) to sqrt(X).

Differential Revision:
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
The file was modifiedllvm/test/Transforms/InstCombine/fmul-sqrt.ll
Commit f5ed22f09dd95c879b57a11c42d2fa7f5ef5e72d by limo
[mlir][VectorToSCF] 128 byte alignment of alloc ops

Added 128 byte alignment to alloc ops created in VectorToSCF pass.
128b alignment was already introduced to this pass but not to all alloc
ops. This commit changes that by adding 128b alignment to the remaining ops.
The point of specifying alignment is to prevent possible memory alignment errors
on weakly tested architectures.

Differential Revision:
The file was modifiedmlir/test/Conversion/VectorToSCF/vector-to-loops.mlir
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp