diff options
author | Alexandru Dutu <alexandru.dutu@amd.com> | 2016-09-16 12:29:01 -0400 |
---|---|---|
committer | Alexandru Dutu <alexandru.dutu@amd.com> | 2016-09-16 12:29:01 -0400 |
commit | 791837645002679eb3f7f71469d151c10c533d5c (patch) | |
tree | a439673ec08094ef232631307d3edba5f20c8673 /src/gpu-compute/wavefront.cc | |
parent | d5c8c5d3db1954ff4e33dade0812fed7b60a9269 (diff) | |
download | gem5-791837645002679eb3f7f71469d151c10c533d5c.tar.xz |
gpu-compute: Changing reconvergenceStack type
std::stack has no iterators, therefore the reconvergence stack can't be
iterated without poping elements off. We will be using std::list instead to be
able to iterate for saving and restoring purposes.
Diffstat (limited to 'src/gpu-compute/wavefront.cc')
-rw-r--r-- | src/gpu-compute/wavefront.cc | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/gpu-compute/wavefront.cc b/src/gpu-compute/wavefront.cc index 76a0bdf9e..3deb11961 100644 --- a/src/gpu-compute/wavefront.cc +++ b/src/gpu-compute/wavefront.cc @@ -873,7 +873,7 @@ Wavefront::pushToReconvergenceStack(uint32_t pc, uint32_t rpc, const VectorMask& mask) { assert(mask.count()); - reconvergenceStack.emplace(new ReconvergenceStackEntry(pc, rpc, mask)); + reconvergenceStack.emplace_back(new ReconvergenceStackEntry{pc, rpc, mask}); } void @@ -886,7 +886,7 @@ Wavefront::popFromReconvergenceStack() execMask().to_string<char, std::string::traits_type, std::string::allocator_type>().c_str(), pc()); - reconvergenceStack.pop(); + reconvergenceStack.pop_back(); DPRINTF(WavefrontStack, "%3i %s\n", pc(), execMask().to_string<char, std::string::traits_type, @@ -904,32 +904,32 @@ Wavefront::discardFetch() uint32_t Wavefront::pc() const { - return reconvergenceStack.top()->pc; + return reconvergenceStack.back()->pc; } uint32_t Wavefront::rpc() const { - return reconvergenceStack.top()->rpc; + return reconvergenceStack.back()->rpc; } VectorMask Wavefront::execMask() const { - return reconvergenceStack.top()->execMask; + return reconvergenceStack.back()->execMask; } bool Wavefront::execMask(int lane) const { - return reconvergenceStack.top()->execMask[lane]; + return reconvergenceStack.back()->execMask[lane]; } void Wavefront::pc(uint32_t new_pc) { - reconvergenceStack.top()->pc = new_pc; + reconvergenceStack.back()->pc = new_pc; } uint32_t |