[llvm-branch-commits] [llvm-branch] r293796 - Merging r293727:
Hans Wennborg via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Feb 1 10:42:29 PST 2017
Author: hans
Date: Wed Feb 1 12:42:29 2017
New Revision: 293796
URL: http://llvm.org/viewvc/llvm-project?rev=293796&view=rev
Log:
Merging r293727:
------------------------------------------------------------------------
r293727 | davide | 2017-01-31 17:01:22 -0800 (Tue, 31 Jan 2017) | 3 lines
[IPSCCP] Teach how to not propagate return values of naked functions.
Differential Revision: https://reviews.llvm.org/D29360
------------------------------------------------------------------------
Added:
llvm/branches/release_40/test/Transforms/IPConstantProp/naked-return.ll
- copied unchanged from r293727, llvm/trunk/test/Transforms/IPConstantProp/naked-return.ll
Modified:
llvm/branches/release_40/ (props changed)
llvm/branches/release_40/lib/Transforms/Scalar/SCCP.cpp
Propchange: llvm/branches/release_40/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Feb 1 12:42:29 2017
@@ -1,3 +1,3 @@
/llvm/branches/Apple/Pertwee:110850,110961
/llvm/branches/type-system-rewrite:133420-134817
-/llvm/trunk:155241,291858-291859,291863,291875,291909,291918,291966,291968,291979,292117,292133,292242,292254-292255,292280,292323,292444,292467,292516,292583,292624-292625,292641,292651,292667,292711-292713,292758,293021,293025,293230,293259,293291,293293,293417,293522,293629,293658
+/llvm/trunk:155241,291858-291859,291863,291875,291909,291918,291966,291968,291979,292117,292133,292242,292254-292255,292280,292323,292444,292467,292516,292583,292624-292625,292641,292651,292667,292711-292713,292758,293021,293025,293230,293259,293291,293293,293417,293522,293629,293658,293727
Modified: llvm/branches/release_40/lib/Transforms/Scalar/SCCP.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_40/lib/Transforms/Scalar/SCCP.cpp?rev=293796&r1=293795&r2=293796&view=diff
==============================================================================
--- llvm/branches/release_40/lib/Transforms/Scalar/SCCP.cpp (original)
+++ llvm/branches/release_40/lib/Transforms/Scalar/SCCP.cpp Wed Feb 1 12:42:29 2017
@@ -1705,7 +1705,10 @@ static bool runIPSCCP(Module &M, const D
// If this is an exact definition of this function, then we can propagate
// information about its result into callsites of it.
- if (F.hasExactDefinition())
+ // Don't touch naked functions. They may contain asm returning a
+ // value we don't see, so we may end up interprocedurally propagating
+ // the return value incorrectly.
+ if (F.hasExactDefinition() && !F.hasFnAttribute(Attribute::Naked))
Solver.AddTrackedFunction(&F);
// If this function only has direct calls that we can see, we can track its
More information about the llvm-branch-commits
mailing list