File tree Expand file tree Collapse file tree 1 file changed +9
-10
lines changed Expand file tree Collapse file tree 1 file changed +9
-10
lines changed Original file line number Diff line number Diff line change @@ -386,23 +386,22 @@ void GCNRewritePartialRegUsesImpl::updateLiveIntervals(
386386}
387387
388388bool GCNRewritePartialRegUsesImpl::rewriteReg (Register Reg) const {
389- auto Range = MRI->reg_nodbg_operands (Reg);
390- if (Range.empty () || any_of (Range, [](MachineOperand &MO) {
391- return MO.getSubReg () == AMDGPU::NoSubRegister; // Whole reg used. [1]
392- }))
393- return false ;
394-
395- auto *RC = MRI->getRegClass (Reg);
396- LLVM_DEBUG (dbgs () << " Try to rewrite partial reg " << printReg (Reg, TRI)
397- << ' :' << TRI->getRegClassName (RC) << ' \n ' );
398389
399390 // Collect used subregs.
400391 SubRegMap SubRegs;
401392 for (MachineOperand &MO : MRI->reg_nodbg_operands (Reg)) {
402- assert (MO.getSubReg () != AMDGPU::NoSubRegister); // Due to [1].
393+ if (MO.getSubReg () == AMDGPU::NoSubRegister)
394+ return false ; // Whole reg used.
403395 SubRegs.try_emplace (MO.getSubReg ());
404396 }
405397
398+ if (SubRegs.empty ())
399+ return false ;
400+
401+ auto *RC = MRI->getRegClass (Reg);
402+ LLVM_DEBUG (dbgs () << " Try to rewrite partial reg " << printReg (Reg, TRI)
403+ << ' :' << TRI->getRegClassName (RC) << ' \n ' );
404+
406405 auto *NewRC = getMinSizeReg (RC, SubRegs);
407406 if (!NewRC) {
408407 LLVM_DEBUG (dbgs () << " No improvement achieved\n " );
You can’t perform that action at this time.
0 commit comments