llvm-project
b6abc5ec - [mlir][openacc] Avoid per-routine module walks in ACCRoutineToGPUFunc (#221345)

Commit
10 days ago
[mlir][openacc] Avoid per-routine module walks in ACCRoutineToGPUFunc (#221345) ACCRoutineLowering uniquifies the specialized device copy (foo -> foo_0) while acc.specialized_routine still names the original host function. Moving those copies into gpu.func then called replaceAllSymbolUses on the whole module once per routine, which is quadratic in the number of specialized routines. Collect the src->dest renames and rewrite symbol uses in a single walk of the module body (still skipping nested symbol tables). Insert the gpu.func ops under the final names afterward. On a large TU this speeds up this pass by 3.5x
Author
Parents
Loading