arch-gcn3: Free registers when execMask = 0
authorKyle Roarty <kyleroarty1716@gmail.com>
Wed, 5 Aug 2020 18:24:56 +0000 (13:24 -0500)
committerKyle Roarty <kyleroarty1716@gmail.com>
Thu, 13 Aug 2020 19:39:34 +0000 (19:39 +0000)
commit62ec973244f5e905c3934b80cc75bfd51e63a8ed
treef05ae81c3cfd7b74748e23b475dd1a5842b46efe
parent187c44fe448e9af4efb9f632855d8822437c222b
arch-gcn3: Free registers when execMask = 0

Flat instructions free some of their registers through their memory
requests, in particuar a call to scheduleWriteOperandsFromLoad(),
which gets called from GlobalMemPipeline::exec.

When execMask is 0, the instruction doesn't issue a memory request.

This patch adds in a call to scheduleWriteOperandsFromLoad() when
execMask is 0 for Flat Load and AtomicReturn instructions, as those
are the instructions that call scheduleWriteOperandsFromLoad()
in the memory pipeline.

This patch also adds in a missing return statement when execMask is 0
in one of the Flat instructions.

Change-Id: I09296adb7401e7515d3cedceb780a5df4598b109
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/32234
Reviewed-by: Matt Sinclair <mattdsinclair@gmail.com>
Reviewed-by: Anthony Gutierrez <anthony.gutierrez@amd.com>
Maintainer: Anthony Gutierrez <anthony.gutierrez@amd.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/arch/gcn3/insts/instructions.cc