summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kotas <jkotas@microsoft.com>2016-01-13 09:29:36 -0800
committerJan Kotas <jkotas@microsoft.com>2016-01-13 09:29:36 -0800
commit40bfbbc93701d62f3ea751f53b5c6f67b07b8f62 (patch)
treee1690e234c06688841019f130baf6ffa8e751c81
parenta31dbef16b121d388068f19c73516a611b65cfe8 (diff)
parent844b3b4af42f04074482c20c11679121a4d2a7eb (diff)
downloadcoreclr-40bfbbc93701d62f3ea751f53b5c6f67b07b8f62.tar.gz
coreclr-40bfbbc93701d62f3ea751f53b5c6f67b07b8f62.tar.bz2
coreclr-40bfbbc93701d62f3ea751f53b5c6f67b07b8f62.zip
Merge pull request #2639 from dotnet/revert-2624-founddiff
Revert "Fix to github issue #2349."
-rw-r--r--src/jit/codegencommon.cpp4
-rw-r--r--src/jit/lsra.cpp4
2 files changed, 1 insertions, 7 deletions
diff --git a/src/jit/codegencommon.cpp b/src/jit/codegencommon.cpp
index 49c00622b3..40dec4a791 100644
--- a/src/jit/codegencommon.cpp
+++ b/src/jit/codegencommon.cpp
@@ -891,10 +891,6 @@ void Compiler::compUpdateLifeVar(GenTreePtr tree, VARSET_TP* pLastUseVars)
if (!varDsc->lvTracked && !varDsc->lvPromoted)
return;
- // Don't update life for thisptr that is kept alive
- if (lvaKeepAliveAndReportThis() && lclNum == info.compThisArg)
- return;
-
bool isBorn = ((tree->gtFlags & GTF_VAR_DEF) != 0 &&
(tree->gtFlags & GTF_VAR_USEASG) == 0); // if it's "x <op>= ..." then variable "x" must have had a previous, original, site to be born.
bool isDying = ((tree->gtFlags & GTF_VAR_DEATH) != 0);
diff --git a/src/jit/lsra.cpp b/src/jit/lsra.cpp
index c7a91bb787..78815633cc 100644
--- a/src/jit/lsra.cpp
+++ b/src/jit/lsra.cpp
@@ -2250,7 +2250,6 @@ LinearScan::setLastUses(BasicBlock * block)
{
unsigned varNum = currentRefPosition->getInterval()->varNum;
unsigned varIndex = currentRefPosition->getInterval()->getVarIndex(compiler);
-
// We should always have a tree node for a localVar, except for the "special" RefPositions.
GenTreePtr tree = currentRefPosition->treeNode;
assert(tree != nullptr || currentRefPosition->refType == RefTypeExpUse || currentRefPosition->refType == RefTypeDummyDef);
@@ -2286,8 +2285,7 @@ LinearScan::setLastUses(BasicBlock * block)
}
}
- if ((currentRefPosition->refType == RefTypeDef || currentRefPosition->refType == RefTypeDummyDef) &&
- (varNum != keepAliveVarNum))
+ if (currentRefPosition->refType == RefTypeDef || currentRefPosition->refType == RefTypeDummyDef)
{
VarSetOps::RemoveElemD(compiler, temp, varIndex);
}