Merge pull request #878 from davidaylaian/reduce-peekstack-calls

Optimize stepThread by reducing the number of calls to peekStack
This commit is contained in:
Ray Schamp 2018-02-28 16:50:20 -05:00 committed by GitHub
commit 4e933eed81
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -174,7 +174,8 @@ class Sequencer {
// A "null block" - empty branch. // A "null block" - empty branch.
thread.popStack(); thread.popStack();
} }
while (thread.peekStack()) { // Save the current block ID to notice if we did control flow.
while ((currentBlockId = thread.peekStack()) !== 0) {
let isWarpMode = thread.peekStackFrame().warpMode; let isWarpMode = thread.peekStackFrame().warpMode;
if (isWarpMode && !thread.warpTimer) { if (isWarpMode && !thread.warpTimer) {
// Initialize warp-mode timer if it hasn't been already. // Initialize warp-mode timer if it hasn't been already.
@ -183,8 +184,6 @@ class Sequencer {
thread.warpTimer.start(); thread.warpTimer.start();
} }
// Execute the current block. // Execute the current block.
// Save the current block ID to notice if we did control flow.
currentBlockId = thread.peekStack();
if (this.runtime.profiler !== null) { if (this.runtime.profiler !== null) {
if (executeProfilerId === -1) { if (executeProfilerId === -1) {
executeProfilerId = this.runtime.profiler.idByName(executeProfilerFrame); executeProfilerId = this.runtime.profiler.idByName(executeProfilerFrame);