summaryrefslogtreecommitdiff
path: root/lldb/test/API/python_api/global_module_cache/TestGlobalModuleCache.py
diff options
context:
space:
mode:
authorMatthias Springer <me@m-sp.org>2023-12-20 11:06:27 +0900
committerGitHub <noreply@github.com>2023-12-20 11:06:27 +0900
commit10056c821a56a19cef732129e4e0c5883ae1ee49 (patch)
tree277acea53e61d40a3b742a2b3ce467232a733907 /lldb/test/API/python_api/global_module_cache/TestGlobalModuleCache.py
parentac029e02a92cbda80e6a45833b72df25e26669c2 (diff)
[mlir][SCF] `scf.parallel`: Make reductions part of the terminator (#75314)
This commit makes reductions part of the terminator. Instead of `scf.yield`, `scf.reduce` now terminates the body of `scf.parallel` ops. `scf.reduce` may contain an arbitrary number of reductions, with one region per reduction. Example: ```mlir %init = arith.constant 0.0 : f32 %r:2 = scf.parallel (%iv) = (%lb) to (%ub) step (%step) init (%init, %init) -> f32, f32 { %elem_to_reduce1 = load %buffer1[%iv] : memref<100xf32> %elem_to_reduce2 = load %buffer2[%iv] : memref<100xf32> scf.reduce(%elem_to_reduce1, %elem_to_reduce2 : f32, f32) { ^bb0(%lhs : f32, %rhs: f32): %res = arith.addf %lhs, %rhs : f32 scf.reduce.return %res : f32 }, { ^bb0(%lhs : f32, %rhs: f32): %res = arith.mulf %lhs, %rhs : f32 scf.reduce.return %res : f32 } } ``` `scf.reduce` operations can no longer be interleaved with other ops in the body of `scf.parallel`. This simplifies the op and makes it possible to assign the `RecursiveMemoryEffects` trait to `scf.reduce`. (This was not possible before because the op was not a terminator, causing the op to be DCE'd.)
Diffstat (limited to 'lldb/test/API/python_api/global_module_cache/TestGlobalModuleCache.py')
0 files changed, 0 insertions, 0 deletions