aboutsummaryrefslogtreecommitdiff
path: root/clang/unittests/Frontend/CompilerInvocationTest.cpp
diff options
context:
space:
mode:
authorMatthias Springer <me@m-sp.org>2024-11-13 08:51:39 +0900
committerGitHub <noreply@github.com>2024-11-13 08:51:39 +0900
commitb0a4e958e85784cff46303c92b6a3a14b20fa1d8 (patch)
treedaa29d88c79238bc3c1488e84dd292fda86ef0fd /clang/unittests/Frontend/CompilerInvocationTest.cpp
parentd6219e65996a485adb3883c8cf3335ece68c66cf (diff)
downloadllvm-b0a4e958e85784cff46303c92b6a3a14b20fa1d8.zip
llvm-b0a4e958e85784cff46303c92b6a3a14b20fa1d8.tar.gz
llvm-b0a4e958e85784cff46303c92b6a3a14b20fa1d8.tar.bz2
[mlir][bufferization] Add support for non-unique `func.return` (#114017)
Multiple `func.return` ops inside of a `func.func` op are now supported during bufferization. This PR extends the code base in 3 places: - When inferring function return types, `memref.cast` ops are folded away only if all `func.return` ops have matching buffer types. (E.g., we don't fold if two `return` ops have operands with different layout maps.) - The alias sets of all `func.return` ops are merged. That's because aliasing is a "may be" property. - The equivalence sets of all `func.return` ops are taken only if they match. If different `func.return` ops have different equivalence sets for their operands, the equivalence information is dropped. That's because equivalence is a "must be" property. This commit is in preparation of removing the deprecated `func-bufferize` pass. That pass can bufferize functions with multiple `return` ops.
Diffstat (limited to 'clang/unittests/Frontend/CompilerInvocationTest.cpp')
0 files changed, 0 insertions, 0 deletions