diff options
| author | Steven Varoumas <steven.varoumas1@huawei.com> | 2024-04-22 13:54:01 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-22 14:54:01 +0200 |
| commit | 35b292efc6fc31b884255d7cb46db7d6346c6f46 (patch) | |
| tree | 79150ddf0235a35cda91af7e1a74597b968adf79 /lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h | |
| parent | e8b31fb39d9728e7505dfee7630158f14bc224de (diff) | |
| download | llvm-35b292efc6fc31b884255d7cb46db7d6346c6f46.zip llvm-35b292efc6fc31b884255d7cb46db7d6346c6f46.tar.gz llvm-35b292efc6fc31b884255d7cb46db7d6346c6f46.tar.bz2 | |
[mlir][Hoisting] Hoisting vector.extract/vector.broadcast pairs (#86108)
This transformation, inspired by what is done in
hoist_redundant_transfers, hoists pairs of extract/broadcast operations
out of scf.for loops.
It changes a loop of the form:
```
%res = scf.for _ = _ to _ step _ iter_args(%iarg = %v) -> (t1) {
%e = vector.extract %iarg : t1 to t2
%u = "some_use"(%e) : (t2) -> t2
%b = vector.broadcast %u : t2 to t1
scf.yield %b : t1
}
```
into the following:
```
%e = vector.extract %v: t1 to t2
%res' = scf.for _ = _ to _ step _ iter_args(%iarg = %e) -> (t2) {
%u' = "some_use"(%iarg) : (t2) -> t2
scf.yield %u' : t2
}
%res = vector.broadcast %res' : t2 to t1
```
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h')
0 files changed, 0 insertions, 0 deletions
