AMDGPUAtomicOptimizer updates the dominator tree whenever
it modified the control flow. Therefore preserving the
analysis similar to legacy PM.
Details
- Reviewers
- arsenm - yassingh - foad 
- Group Reviewers
- Restricted Project 
- Commits
- rG8e1e871e2ff1: [AMDGPU] Preserve dom-tree analysis in atomic optimizer.
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
| Time | Test | |
|---|---|---|
| 60,100 ms | x64 debian > MLIR.Examples/standalone::test.toy | |
| 660 ms | x64 debian > lld.ELF::arm-data-relocs.s | 
Event Timeline
| llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp | ||
|---|---|---|
| 150–152 | Nit: Can reverse the if condition to be more consistent with other passes. | |
Why doesn’t this need an llc-pipeline or opt-pipeline update? Do we not have new PM pass testing?
Atomic optimizer pass is not configured with opt and llc uses legacy PM which already preserve this analysis. Therefore opt/llc pipeline doesn't need update. I think, There is no test for NewPM with pre-codegen (IR) passes.
We should have one. I thought we had an opt pipeline test but I don't see one, other targets do
I am not finding opt pipeline test for other targets. Can you please link it here. Interestingly, X86 and loongarch have filenames as opt-pipeline but these tests are invoking llc and not opt
So it was just delete and never replaced, as suggested should follow through with that. I also don't see why we wouldn't just duplicate the test per target
Nit: Can reverse the if condition to be more consistent with other passes.