SuccessChanges

Summary

  1. [BasicAA] Fix BatchAA results for phi-phi assumptions (details)
  2. [clang-offload-bundler] Add option -list (details)
  3. [mlir][vector] Support unrolling for transfer ops using tensors (details)
  4. [hip] Fix HIP version parsing. (details)
Commit f6f6f6375d1a4bced8a6e79a78726ab32b8dd879 by nikita.ppv
[BasicAA] Fix BatchAA results for phi-phi assumptions

Change the way NoAlias assumptions in BasicAA are handled. Instead of
handling this inside the phi-phi code, always initially insert a
NoAlias result into the map and keep track whether it is used.
If it is used, then we require that we also get back NoAlias from
the recursive queries. Otherwise, the entry is changed to MayAlias.

Additionally, keep track of all location pairs we inserted that may
still be based on assumptions higher up. If it turns out one of those
assumptions is incorrect, we flush them from the cache.

The compile-time impact for the new implementation is significantly
higher than the previous iteration of this patch:
https://llvm-compile-time-tracker.com/compare.php?from=c0bb9859de6991cc233e2dedb978dd118da8c382&to=c07112373279143e37568b5bcd293daf81a35973&stat=instructions
However, it should avoid the exponential runtime cases we run into
if we don't cache assumption-based results entirely.

This also produces better results in some cases, because NoAlias
assumptions can now start at any root, rather than just phi-phi pairs.
This is not just relevant for analysis quality, but also for BatchAA
consistency: Otherwise, results would once again depend on query order,
though at least they wouldn't be wrong.

This ended up both more complicated and more expensive than I hoped,
but I wasn't able to come up with another solution that satisfies all
the constraints.

Differential Revision: https://reviews.llvm.org/D91936
The file was modifiedllvm/test/Analysis/BasicAA/phi-speculation.ll
The file was modifiedllvm/lib/Analysis/BasicAliasAnalysis.cpp
The file was modifiedllvm/include/llvm/Analysis/AliasAnalysis.h
The file was modifiedllvm/include/llvm/Analysis/BasicAliasAnalysis.h
The file was modifiedllvm/unittests/Analysis/AliasAnalysisTest.cpp
Commit 90bf3ecef4bb1e214a718aebcee730c24199c8ba by Yaxun.Liu
[clang-offload-bundler] Add option -list

clang-offload-bundler is not only used by clang driver
to bundle/unbundle files for offloading toolchains,
but also used by out of tree tools to unbundle
fat binaries generated by clang. It is important
to be able to list the bundle IDs in a bundled
file so that the bundles can be extracted.

This patch adds an option -list to list bundle
ID's in a bundled file. Each bundle ID is separated
by new line. If the file is not a bundled file
nothing is output and returns 0.

Differential Revision: https://reviews.llvm.org/D92954
The file was modifiedclang/test/Driver/clang-offload-bundler.c
The file was modifiedclang/tools/clang-offload-bundler/ClangOffloadBundler.cpp
Commit f9190c868137dcf43833db2c8e1e00c7acca67bc by thomasraoux
[mlir][vector] Support unrolling for transfer ops using tensors

Differential Revision: https://reviews.llvm.org/D93904
The file was modifiedmlir/test/lib/Transforms/TestVectorTransforms.cpp
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorTransforms.h
The file was modifiedmlir/test/Dialect/Vector/vector-transforms.mlir
The file was modifiedmlir/test/Dialect/Vector/vector-transfer-unroll.mlir
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp
Commit 2a29ce303451375bbf1de7c971296553ef5d9beb by michael.hliao
[hip] Fix HIP version parsing.

- Need trimming before parsing major or minor version numbers. This's required
  due to the different line ending on Windows.
- In addition, the integer conversion may fail due to invalid char. Return that
  parsing function return `true` when the parsing fails.

Differential Revision: https://reviews.llvm.org/D93587
The file was modifiedclang/test/Driver/Inputs/rocm/bin/.hipVersion
The file was modifiedclang/lib/Driver/ToolChains/ROCm.h
The file was modifiedclang/lib/Driver/ToolChains/AMDGPU.cpp