diff options
author | Mike Aizatsky <aizatsky@chromium.org> | 2015-11-18 20:43:00 +0000 |
---|---|---|
committer | Mike Aizatsky <aizatsky@chromium.org> | 2015-11-18 20:43:00 +0000 |
commit | c7810baaa6761fe9771d4b3cba675266e576b19d (patch) | |
tree | 584668fee17c97b2e7c41689d5152a77ada3f2dc /llvm/lib/Transforms | |
parent | 617c60013dc31e5b768912217bd354b133888796 (diff) | |
download | bcm5719-llvm-c7810baaa6761fe9771d4b3cba675266e576b19d.tar.gz bcm5719-llvm-c7810baaa6761fe9771d4b3cba675266e576b19d.zip |
Disable gvn non-local speculative loads under asan.
Summary: Fix for https://llvm.org/bugs/show_bug.cgi?id=25550
Differential Revision: http://reviews.llvm.org/D14763
llvm-svn: 253498
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/Scalar/GVN.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Scalar/GVN.cpp b/llvm/lib/Transforms/Scalar/GVN.cpp index 06faa2d76b6..d261b2acae9 100644 --- a/llvm/lib/Transforms/Scalar/GVN.cpp +++ b/llvm/lib/Transforms/Scalar/GVN.cpp @@ -1701,6 +1701,10 @@ bool GVN::PerformLoadPRE(LoadInst *LI, AvailValInBlkVect &ValuesPerBlock, /// Attempt to eliminate a load whose dependencies are /// non-local by performing PHI construction. bool GVN::processNonLocalLoad(LoadInst *LI) { + // non-local speculations are not allowed under asan. + if (LI->getParent()->getParent()->hasFnAttribute(Attribute::SanitizeAddress)) + return false; + // Step 1: Find the non-local dependencies of the load. LoadDepVect Deps; MD->getNonLocalPointerDependency(LI, Deps); |