diff options
author | Alex Zinenko <zinenko@google.com> | 2022-07-13 11:11:16 +0000 |
---|---|---|
committer | Alex Zinenko <zinenko@google.com> | 2022-07-27 08:52:13 +0000 |
commit | 70e99f387a482bfe0ad2b7accc88e9e8b2a4a59d (patch) | |
tree | c4cfa3f1fd339ce7b2156c845962fe04ae98adc3 /clang/lib/CodeGen/CodeGenFunction.cpp | |
parent | 08a1b07e7c19d14896f8be501c763ba8aff5b427 (diff) | |
download | llvm-70e99f387a482bfe0ad2b7accc88e9e8b2a4a59d.zip llvm-70e99f387a482bfe0ad2b7accc88e9e8b2a4a59d.tar.gz llvm-70e99f387a482bfe0ad2b7accc88e9e8b2a4a59d.tar.bz2 |
[mlir] Make ViewLikeInterface Range work with attributes
While most of methods in ViewLikeInterface accept an `OpFoldResult` for
the offset/size/stride that may be static, represented as `Attribute`,
or dynamic, represented as `Value`, the `Range` abstraction only
accepted `Values`. This can often lead to known-constant
offset/size/strides being materialized into constant operations and
hinder further constant propagation without explicitly running the
constant folding pass. This often leads to a more complicated than
necessary addressing code being emitted. Switch `Range` to use
`OpFoldResult`. Code that uses `Range` currently keeps materializing the
constants to minimize the effect of this change on the IR. Further
commits will make use of this.
Reviewed By: nicolasvasilache, mravishankar
Differential Revision: https://reviews.llvm.org/D129633
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
0 files changed, 0 insertions, 0 deletions