Author: hans Date: Wed Aug 2 08:52:32 2017 New Revision: 309827 URL: http://llvm.org/viewvc/llvm-project?rev=309827&view=rev Log: Merging r309594: ------------------------------------------------------------------------ r309594 | majnemer | 2017-07-31 10:47:07 -0700 (Mon, 31 Jul 2017) | 4 lines
[IPSCCP] Guard a user of getInitializer with hasDefinitiveInitializer We are not allowed to reason about an initializer value without first consulting hasDefinitiveInitializer. ------------------------------------------------------------------------ Added: llvm/branches/release_50/test/Transforms/SCCP/definite-initializer.ll - copied unchanged from r309594, llvm/trunk/test/Transforms/SCCP/definite-initializer.ll Modified: llvm/branches/release_50/ (props changed) llvm/branches/release_50/lib/Transforms/Scalar/SCCP.cpp Propchange: llvm/branches/release_50/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Wed Aug 2 08:52:32 2017 @@ -1,3 +1,3 @@ /llvm/branches/Apple/Pertwee:110850,110961 /llvm/branches/type-system-rewrite:133420-134817 -/llvm/trunk:155241,308483-308484,308503,308808,308813,308891,308906,308950,308963,308978,308986,309113,309302,309321,309323,309325,309330,309343,309353,309355,309422,309481,309483,309495,309561 +/llvm/trunk:155241,308483-308484,308503,308808,308813,308891,308906,308950,308963,308978,308986,309113,309302,309321,309323,309325,309330,309343,309353,309355,309422,309481,309483,309495,309561,309594 Modified: llvm/branches/release_50/lib/Transforms/Scalar/SCCP.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_50/lib/Transforms/Scalar/SCCP.cpp?rev=309827&r1=309826&r2=309827&view=diff ============================================================================== --- llvm/branches/release_50/lib/Transforms/Scalar/SCCP.cpp (original) +++ llvm/branches/release_50/lib/Transforms/Scalar/SCCP.cpp Wed Aug 2 08:52:32 2017 @@ -1790,7 +1790,8 @@ static bool runIPSCCP(Module &M, const D // variables that do not have their 'addresses taken'. If they don't have // their addresses taken, we can propagate constants through them. for (GlobalVariable &G : M.globals()) - if (!G.isConstant() && G.hasLocalLinkage() && !AddressIsTaken(&G)) + if (!G.isConstant() && G.hasLocalLinkage() && + G.hasDefinitiveInitializer() && !AddressIsTaken(&G)) Solver.TrackValueOfGlobalVariable(&G); // Solve for constants. _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits