llvm.org GIT mirror llvm / df9da26
Merging r233080: ------------------------------------------------------------------------ r233080 | marek.olsak | 2015-03-24 09:40:38 -0400 (Tue, 24 Mar 2015) | 4 lines R600/SI: Insert more NOPs after READLANE on VI, don't use NOPs on CI This is a candidate for stable. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_36@236071 91177308-0d34-0410-b5e6-96231b3b80d8 Tom Stellard 5 years ago
1 changed file(s) with 16 addition(s) and 1 deletion(s). Raw diff Collapse all Expand all
265265 .addReg(SubReg);
266266 }
267267 }
268 TII->insertNOPs(MI, 3);
268
269 // TODO: only do this when it is needed
270 switch (ST.getGeneration()) {
271 case AMDGPUSubtarget::SOUTHERN_ISLANDS:
272 // "VALU writes SGPR" -> "SMRD reads that SGPR" needs "S_NOP 3" on SI
273 TII->insertNOPs(MI, 3);
274 break;
275 case AMDGPUSubtarget::SEA_ISLANDS:
276 break;
277 default: // VOLCANIC_ISLANDS and later
278 // "VALU writes SGPR -> VMEM reads that SGPR" needs "S_NOP 4" on VI
279 // and later. This also applies to VALUs which write VCC, but we're
280 // unlikely to see VMEM use VCC.
281 TII->insertNOPs(MI, 4);
282 }
283
269284 MI->eraseFromParent();
270285 break;
271286 }