diff options
author | Tony Gutierrez <anthony.gutierrez@amd.com> | 2016-10-26 22:47:27 -0400 |
---|---|---|
committer | Tony Gutierrez <anthony.gutierrez@amd.com> | 2016-10-26 22:47:27 -0400 |
commit | c7a79c9a4298220852252738dbf5d7d174705333 (patch) | |
tree | c4b00969af16a9cef490137918ccd2ced09287fa | |
parent | 00a6346c91f6e09eb9c0f4cf61a7d72932a1282f (diff) | |
download | gem5-c7a79c9a4298220852252738dbf5d7d174705333.tar.xz |
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.
-rw-r--r-- | src/arch/hsail/insts/branch.hh | 3 | ||||
-rw-r--r-- | 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<LabelOperand> @@ -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<LabelOperand> 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) { |