summaryrefslogtreecommitdiff
path: root/packaging/0006-Set-local-variables-as-addr-exposed-if-it-appears-in.patch
diff options
context:
space:
mode:
authorjiseob.jang <jiseob.jang@samsung.com>2017-09-07 13:16:07 +0900
committerCHUNSEOK LEE <chunseok.lee@samsung.com>2017-09-08 11:46:55 +0900
commita27dfe2057fe9d294b784f5f5be279ed6c5d6c22 (patch)
tree47415bfdd11796c44b4447ad8a5c8ac8c171ea69 /packaging/0006-Set-local-variables-as-addr-exposed-if-it-appears-in.patch
parentcb9516da9df966079e5a34490139eec68c38dafa (diff)
downloadcoreclr-a27dfe2057fe9d294b784f5f5be279ed6c5d6c22.tar.gz
coreclr-a27dfe2057fe9d294b784f5f5be279ed6c5d6c22.tar.bz2
coreclr-a27dfe2057fe9d294b784f5f5be279ed6c5d6c22.zip
Change-Id: I72c9f2b7258c576be457df609e33af55e0beab88
Diffstat (limited to 'packaging/0006-Set-local-variables-as-addr-exposed-if-it-appears-in.patch')
-rw-r--r--packaging/0006-Set-local-variables-as-addr-exposed-if-it-appears-in.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/packaging/0006-Set-local-variables-as-addr-exposed-if-it-appears-in.patch b/packaging/0006-Set-local-variables-as-addr-exposed-if-it-appears-in.patch
new file mode 100644
index 0000000000..e8b06f412a
--- /dev/null
+++ b/packaging/0006-Set-local-variables-as-addr-exposed-if-it-appears-in.patch
@@ -0,0 +1,49 @@
+From 49b89a063fc18e2000a978ed0e0e0e2aeab42f8a Mon Sep 17 00:00:00 2001
+From: Jonghyun Park <parjong@gmail.com>
+Date: Wed, 14 Jun 2017 07:05:12 +0900
+Subject: [PATCH 06/23] 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 27a1dae..629dc83 100644
+--- a/src/jit/morph.cpp
++++ b/src/jit/morph.cpp
+@@ -8921,7 +8921,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))
+@@ -8931,6 +8930,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
+@@ -10301,7 +10301,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.
+ //
+@@ -10319,7 +10318,6 @@ GenTreePtr Compiler::fgMorphCopyBlock(GenTreePtr tree)
+ lvaSetVarDoNotEnregister(lclVarNum DEBUGARG(DNER_AddrExposed));
+ }
+ }
+-#endif // !LEGACY_BACKEND
+ }
+
+ _AssignFields:
+--
+1.9.1
+