diff options
author | Bruce Forstall <brucefo@microsoft.com> | 2017-04-18 07:18:10 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-18 07:18:10 -0700 |
commit | 9051ff8ee9cd8876c169c3756b76af8506d8f89b (patch) | |
tree | 3dcda6c7256620b9dae8d8c0a1ee53ddc2af8a09 /src | |
parent | 432e8bf1efbc696b842b1fe5004fed5319d58818 (diff) | |
parent | f503a568fd54d423510323921bb9065e398471e2 (diff) | |
download | coreclr-9051ff8ee9cd8876c169c3756b76af8506d8f89b.tar.gz coreclr-9051ff8ee9cd8876c169c3756b76af8506d8f89b.tar.bz2 coreclr-9051ff8ee9cd8876c169c3756b76af8506d8f89b.zip |
Merge pull request #11035 from BruceForstall/NumSuccImprovement
Hoist calls to NumSucc() out of loops
Diffstat (limited to 'src')
-rw-r--r-- | src/jit/importer.cpp | 15 | ||||
-rw-r--r-- | src/jit/lsra.cpp | 3 |
2 files changed, 12 insertions, 6 deletions
diff --git a/src/jit/importer.cpp b/src/jit/importer.cpp index a07c55c62d..e678b15f98 100644 --- a/src/jit/importer.cpp +++ b/src/jit/importer.cpp @@ -15507,7 +15507,8 @@ inline void Compiler::impReimportMarkBlock(BasicBlock* block) void Compiler::impReimportMarkSuccessors(BasicBlock* block) { - for (unsigned i = 0; i < block->NumSucc(); i++) + const unsigned numSuccs = block->NumSucc(); + for (unsigned i = 0; i < numSuccs; i++) { impReimportMarkBlock(block->GetSucc(i)); } @@ -15682,7 +15683,8 @@ void Compiler::impImportBlock(BasicBlock* block) JITDUMP("Marking BBF_INTERNAL block BB%02u as BBF_IMPORTED\n", block->bbNum); block->bbFlags |= BBF_IMPORTED; - for (unsigned i = 0; i < block->NumSucc(); i++) + const unsigned numSuccs = block->NumSucc(); + for (unsigned i = 0; i < numSuccs; i++) { impImportBlockPending(block->GetSucc(i)); } @@ -16109,7 +16111,8 @@ SPILLSTACK: impReimportSpillClique(block); // For blocks that haven't been imported yet, we still need to mark them as pending import. - for (unsigned i = 0; i < block->NumSucc(); i++) + const unsigned numSuccs = block->NumSucc(); + for (unsigned i = 0; i < numSuccs; i++) { BasicBlock* succ = block->GetSucc(i); if ((succ->bbFlags & BBF_IMPORTED) == 0) @@ -16123,7 +16126,8 @@ SPILLSTACK: // otherwise just import the successors of block /* Does this block jump to any other blocks? */ - for (unsigned i = 0; i < block->NumSucc(); i++) + const unsigned numSuccs = block->NumSucc(); + for (unsigned i = 0; i < numSuccs; i++) { impImportBlockPending(block->GetSucc(i)); } @@ -16380,7 +16384,8 @@ void Compiler::impWalkSpillCliqueFromPred(BasicBlock* block, SpillCliqueWalker* BasicBlock* blk = node->m_blk; FreeBlockListNode(node); - for (unsigned succNum = 0; succNum < blk->NumSucc(); succNum++) + const unsigned numSuccs = blk->NumSucc(); + for (unsigned succNum = 0; succNum < numSuccs; succNum++) { BasicBlock* succ = blk->GetSucc(succNum); // If it's not already in the clique, add it, and also add it diff --git a/src/jit/lsra.cpp b/src/jit/lsra.cpp index e7c1c839d1..557614021d 100644 --- a/src/jit/lsra.cpp +++ b/src/jit/lsra.cpp @@ -1378,7 +1378,8 @@ void LinearScan::setBlockSequence() assert(!"Switch with single successor"); } - for (unsigned succIndex = 0; succIndex < block->NumSucc(compiler); succIndex++) + const unsigned numSuccs = block->NumSucc(compiler); + for (unsigned succIndex = 0; succIndex < numSuccs; succIndex++) { BasicBlock* succ = block->GetSucc(succIndex, compiler); if (checkForCriticalOutEdge && succ->GetUniquePred(compiler) == nullptr) |