From: Tony Gutierrez Date: Thu, 27 Oct 2016 02:47:27 +0000 (-0400) Subject: gpu-compute, hsail: call discardFetch() from the WF X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c7a79c9a4298220852252738dbf5d7d174705333;p=gem5.git gpu-compute, hsail: call discardFetch() from the WF because every taken branch causes fetch to be discarded, we move the call to the WF to avoid to have to call it from each and every branch instruction type. --- diff --git a/src/arch/hsail/insts/branch.hh b/src/arch/hsail/insts/branch.hh index 89bcc1277..3a520b216 100644 --- a/src/arch/hsail/insts/branch.hh +++ b/src/arch/hsail/insts/branch.hh @@ -133,7 +133,6 @@ namespace HsailISA // Rpc and execution mask remain the same w->pc(getTargetPc()); } - w->discardFetch(); } class BrnDirectInst : public BrnInstBase @@ -293,7 +292,6 @@ namespace HsailISA w->pushToReconvergenceStack(true_pc, rpc, true_mask); } assert(w->pc() != curr_pc); - w->discardFetch(); } @@ -405,7 +403,6 @@ namespace HsailISA // Rpc and execution mask remain the same w->pc(getTargetPc()); } - w->discardFetch(); } class BrDirectInst : public BrInstBase diff --git a/src/gpu-compute/wavefront.cc b/src/gpu-compute/wavefront.cc index caeed85a7..96f0d0e96 100644 --- a/src/gpu-compute/wavefront.cc +++ b/src/gpu-compute/wavefront.cc @@ -675,6 +675,8 @@ Wavefront::exec() } else { instructionBuffer.pop_front(); } + } else { + discardFetch(); } if (computeUnit->shader->hsail_mode==Shader::SIMT) {