projects
/
platform
/
upstream
/
dotnet
/
runtime.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
7f94311
)
Skip removed loops in `optBlockIsLoopEntry`
author
Joseph Tremoulet
<jotrem@microsoft.com>
Fri, 14 Oct 2016 18:08:48 +0000
(14:08 -0400)
committer
Joseph Tremoulet
<jotrem@microsoft.com>
Mon, 31 Oct 2016 19:12:56 +0000
(15:12 -0400)
This allows running this utility downstream of loop unrolling.
Commit migrated from https://github.com/dotnet/coreclr/commit/
77398bcc4f1a54222f7fb71a48bdc4ad32618e37
src/coreclr/src/jit/optimizer.cpp
patch
|
blob
|
history
diff --git
a/src/coreclr/src/jit/optimizer.cpp
b/src/coreclr/src/jit/optimizer.cpp
index
fdcd1d1
..
2273753
100644
(file)
--- a/
src/coreclr/src/jit/optimizer.cpp
+++ b/
src/coreclr/src/jit/optimizer.cpp
@@
-6765,15
+6765,17
@@
void Compiler::fgCreateLoopPreHeader(unsigned lnum)
bool Compiler::optBlockIsLoopEntry(BasicBlock* blk, unsigned* pLnum)
{
- unsigned lnum = blk->bbNatLoopNum;
- while (lnum != BasicBlock::NOT_IN_LOOP)
+ for (unsigned lnum = blk->bbNatLoopNum; lnum != BasicBlock::NOT_IN_LOOP; lnum = optLoopTable[lnum].lpParent)
{
+ if (optLoopTable[lnum].lpFlags & LPFLG_REMOVED)
+ {
+ continue;
+ }
if (optLoopTable[lnum].lpEntry == blk)
{
*pLnum = lnum;
return true;
}
- lnum = optLoopTable[lnum].lpParent;
}
return false;
}