Remove use of tuple for multiresult type storage
authorJacques Pienaar <jpienaar@google.com>
Mon, 1 Mar 2021 17:30:24 +0000 (09:30 -0800)
committerJacques Pienaar <jpienaar@google.com>
Mon, 1 Mar 2021 17:30:24 +0000 (09:30 -0800)
commit08f0764ff551c5aa2486c40871453e1ff40fb679
tree4f3c8bc1933547cd6d104ad6ba93ebae7db1e39a
parent415c0cd698a8f0784172d19d542a3b525d1bb9b0
Remove use of tuple for multiresult type storage

Move the results in line with the op instead. This results in each
operation having its own types recorded vs single tuple type, but comes
at benefit that every mutation doesn't incurs uniquing. Ran into cases
where updating result type of operation led to very large memory usage.

Differential Revision: https://reviews.llvm.org/D97652
mlir/include/mlir/IR/Operation.h
mlir/lib/IR/Operation.cpp
mlir/lib/IR/Value.cpp