This handles def-after-use of physregs, and allows us to merge loads and
stores even across some physreg defs (typically M0 defs).
Change-Id: I076484b2bda27c2cf46013c845a0380c5b89b67b
Paths
| Differential D42647
AMDGPU: Track physreg uses in SILoadStoreOptimizer ClosedPublic Authored by nhaehnle on Jan 29 2018, 8:30 AM.
Details Summary This handles def-after-use of physregs, and allows us to merge loads and Change-Id: I076484b2bda27c2cf46013c845a0380c5b89b67b
Diff Detail
Event TimelineHerald added subscribers: t-tye, tpr, dstuttard and 3 others. · View Herald TranscriptJan 29 2018, 8:30 AM nhaehnle added a parent revision: D40343: AMDGPU: Do not combine loads/store across physreg defs.Jan 29 2018, 8:30 AM Comment Actions I think you need a test with lds combining which does not merge on VI and does merge on GFX9 due to m0 defs.
nhaehnle marked an inline comment as done. Comment Actions
This revision is now accepted and ready to land.Feb 21 2018, 11:33 AM Closed by commit rL325882: AMDGPU: Track physreg uses in SILoadStoreOptimizer (authored by nha). · Explain WhyFeb 23 2018, 2:48 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 135247 lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
test/CodeGen/AMDGPU/ds_read2.ll
test/CodeGen/AMDGPU/merge-load-store-physreg.mir
test/CodeGen/AMDGPU/smrd.ll
|
Merging of these copcodes is disabled on GFX9 because of the cache line straddling bug.