diff options
| author | Vincent Lejeune <vljn@ovi.com> | 2013-06-06 23:08:32 +0000 |
|---|---|---|
| committer | Vincent Lejeune <vljn@ovi.com> | 2013-06-06 23:08:32 +0000 |
| commit | 0030362ed9225ec9081ef836a5ac91b420bee483 (patch) | |
| tree | ee51f3d0fd2fd1ed0219e8b200d047f4581e9a58 /llvm/lib | |
| parent | fd23889e5309881267da5b70e2af89812338f096 (diff) | |
| download | bcm5719-llvm-0030362ed9225ec9081ef836a5ac91b420bee483.tar.gz bcm5719-llvm-0030362ed9225ec9081ef836a5ac91b420bee483.zip | |
R600: Rewrite an awkward loop in R600MachineScheduler
llvm-svn: 183458
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/R600/R600OptimizeVectorRegisters.cpp | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/llvm/lib/Target/R600/R600OptimizeVectorRegisters.cpp b/llvm/lib/Target/R600/R600OptimizeVectorRegisters.cpp index 7c4aee76dda..b122baef124 100644 --- a/llvm/lib/Target/R600/R600OptimizeVectorRegisters.cpp +++ b/llvm/lib/Target/R600/R600OptimizeVectorRegisters.cpp @@ -159,6 +159,19 @@ bool R600VectorRegMerger::tryMergeVector(const RegSeqInfo *Untouched, return true; } +static +unsigned getReassignedChan( + const std::vector<std::pair<unsigned, unsigned> > &RemapChan, + unsigned Chan) { + for (unsigned j = 0, je = RemapChan.size(); j < je; j++) { + if (RemapChan[j].first == Chan) { + return RemapChan[j].second; + break; + } + } + llvm_unreachable("Chan wasn't reassigned"); +} + MachineInstr *R600VectorRegMerger::RebuildVector( RegSeqInfo *RSI, const RegSeqInfo *BaseRSI, const std::vector<std::pair<unsigned, unsigned> > &RemapChan) const { @@ -179,13 +192,8 @@ MachineInstr *R600VectorRegMerger::RebuildVector( unsigned DstReg = MRI->createVirtualRegister(&AMDGPU::R600_Reg128RegClass); unsigned SubReg = (*It).first; unsigned Swizzle = (*It).second; - unsigned Chan = 0xDEADBEEF; - for (unsigned j = 0, je = RemapChan.size(); j < je; j++) { - if (RemapChan[j].first == Swizzle) { - Chan = RemapChan[j].second; - break; - } - } + unsigned Chan = getReassignedChan(RemapChan, Swizzle); + MachineInstr *Tmp = BuildMI(MBB, Pos, DL, TII->get(AMDGPU::INSERT_SUBREG), DstReg) .addReg(SrcVec) |

