diff options
author | Nirav Dave <niravd@google.com> | 2016-05-25 01:45:42 +0000 |
---|---|---|
committer | Nirav Dave <niravd@google.com> | 2016-05-25 01:45:42 +0000 |
commit | e003bb7eade6ece69847c0a85e1f4de2d18f2989 (patch) | |
tree | 66256d96c8fdf1c8b21a723250d7367e03473679 | |
parent | 2b8e41705e26f2eba369037ef6f7ba83a47cdf4e (diff) | |
download | bcm5719-llvm-e003bb7eade6ece69847c0a85e1f4de2d18f2989.tar.gz bcm5719-llvm-e003bb7eade6ece69847c0a85e1f4de2d18f2989.zip |
Soften assertion in AMDGPU emitPrologue.
[AMDGPU] emitPrologue looks for an unused unallocated SGPR that is not
the scratch descriptor. Continue search if unused register found fails
other requirements.
Reviewers: arsenm, tstellarAMD, nhaehnle
Subscribers: arsenm, llvm-commits, kzhuravl
Differential Revision: http://reviews.llvm.org/D20526
llvm-svn: 270646
-rw-r--r-- | llvm/lib/Target/AMDGPU/SIFrameLowering.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp b/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp index 5c219c8e740..37a47b45c18 100644 --- a/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp +++ b/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp @@ -184,8 +184,9 @@ void SIFrameLowering::emitPrologue(MachineFunction &MF, // Pick the first unallocated SGPR. Be careful not to pick an alias of the // scratch descriptor, since we haven’t added its uses yet. if (!MRI.isPhysRegUsed(Reg)) { - assert(MRI.isAllocatable(Reg) && - !TRI->isSubRegisterEq(ScratchRsrcReg, Reg)); + if (!MRI.isAllocatable(Reg) || + TRI->isSubRegisterEq(ScratchRsrcReg, Reg)) + continue; MRI.replaceRegWith(ScratchWaveOffsetReg, Reg); ScratchWaveOffsetReg = Reg; |