summaryrefslogtreecommitdiff
path: root/packaging/Set-local-variables-as-addr-exposed-if-it-appears-in.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/Set-local-variables-as-addr-exposed-if-it-appears-in.patch')
-rw-r--r--packaging/Set-local-variables-as-addr-exposed-if-it-appears-in.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/packaging/Set-local-variables-as-addr-exposed-if-it-appears-in.patch b/packaging/Set-local-variables-as-addr-exposed-if-it-appears-in.patch
new file mode 100644
index 0000000000..e97ed4c139
--- /dev/null
+++ b/packaging/Set-local-variables-as-addr-exposed-if-it-appears-in.patch
@@ -0,0 +1,49 @@
+From fe2fa78459ee56163e78ac5a854b85d50de2f83c Mon Sep 17 00:00:00 2001
+From: Jonghyun Park <parjong@gmail.com>
+Date: Wed, 14 Jun 2017 07:05:12 +0900
+Subject: [PATCH] Set local variables as addr-exposed if it appears in ADDR
+ expression
+
+---
+ src/jit/morph.cpp | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/src/jit/morph.cpp b/src/jit/morph.cpp
+index 215b45f..92d2f6e 100644
+--- a/src/jit/morph.cpp
++++ b/src/jit/morph.cpp
+@@ -8888,7 +8888,6 @@ GenTreePtr Compiler::fgMorphOneAsgBlockOp(GenTreePtr tree)
+ }
+ else
+ {
+-#ifndef LEGACY_BACKEND
+
+ // The source argument of the copyblk can potentially
+ // be accessed only through indir(addr(lclVar))
+@@ -8898,6 +8897,7 @@ GenTreePtr Compiler::fgMorphOneAsgBlockOp(GenTreePtr tree)
+ // we don't delete it as a dead store later on.
+ unsigned lclVarNum = lclVarTree->gtLclVarCommon.gtLclNum;
+ lvaTable[lclVarNum].lvAddrExposed = true;
++#ifndef LEGACY_BACKEND
+ lvaSetVarDoNotEnregister(lclVarNum DEBUGARG(DNER_AddrExposed));
+
+ #else // LEGACY_BACKEND
+@@ -10268,7 +10268,6 @@ GenTreePtr Compiler::fgMorphCopyBlock(GenTreePtr tree)
+
+ tree = gtNewAssignNode(gtNewLclvNode(addrSpillTemp, TYP_BYREF), addrSpill);
+
+-#ifndef LEGACY_BACKEND
+ // If we are assigning the address of a LclVar here
+ // liveness does not account for this kind of address taken use.
+ //
+@@ -10286,7 +10285,6 @@ GenTreePtr Compiler::fgMorphCopyBlock(GenTreePtr tree)
+ lvaSetVarDoNotEnregister(lclVarNum DEBUGARG(DNER_AddrExposed));
+ }
+ }
+-#endif // !LEGACY_BACKEND
+ }
+
+ _AssignFields:
+--
+2.7.4
+