From c7a79c9a4298220852252738dbf5d7d174705333 Mon Sep 17 00:00:00 2001 From: Tony Gutierrez Date: Wed, 26 Oct 2016 22:47:27 -0400 Subject: [PATCH] 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. --- src/arch/hsail/insts/branch.hh | 3 --- src/gpu-compute/wavefront.cc | 2 ++ 2 files changed, 2 insertions(+), 3 deletions(-) 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) { -- 2.30.2