This is an archive of the discontinued LLVM Phabricator instance.

AMDGPU: Fix verifier error from partially undef copy
ClosedPublic

Authored by arsenm on Jul 15 2016, 1:56 PM.

Details

Summary

In this situation:

%VGPR2<def> = BUFFER_LOAD_DWORD_OFFSET %SGPR8_SGPR9_SGPR10_SGPR11,
%VGPR7<def,tied3> = V_MAC_F32_e32 %VGPR0<undef>, %VGPR1<kill>, %VGPR7<kill,tied0>, %EXEC<imp-use>
%VGPR3_VGPR4_VGPR5_VGPR6<def> = COPY %VGPR0_VGPR1_VGPR2_VGPR3
%VGPR4<def> = COPY %VGPR2

The copy for VGPR1 -> VGPR4 was an error from reading undefined VGPR1,
but VGPR4 is defined immediately after this copy.

Diff Detail

Event Timeline

arsenm updated this revision to Diff 64193.Jul 15 2016, 1:56 PM
arsenm retitled this revision from to AMDGPU: Fix verifier error from partially undef copy.
arsenm updated this object.
arsenm added a reviewer: MatzeB.
arsenm added a subscriber: llvm-commits.
MatzeB accepted this revision.Jul 15 2016, 3:00 PM
MatzeB edited edge metadata.

Yep that's the current way to indicate to the verifier that you are really copying a bigger register.

This revision is now accepted and ready to land.Jul 15 2016, 3:00 PM
arsenm closed this revision.Jul 15 2016, 3:39 PM

r275635