summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/Scalarizer.cpp
diff options
context:
space:
mode:
authorPatrik Hagglund <patrik.h.hagglund@ericsson.com>2016-06-16 10:48:54 +0000
committerPatrik Hagglund <patrik.h.hagglund@ericsson.com>2016-06-16 10:48:54 +0000
commit0acaefaf9d67786ffbc8700d8b65711fbb5f1e99 (patch)
tree8a61428ae5def7c243cff4b94996b67f05a01bd3 /llvm/lib/Transforms/Scalar/Scalarizer.cpp
parent4798eb6d592f7447fd5b6d8085ad287718997939 (diff)
downloadbcm5719-llvm-0acaefaf9d67786ffbc8700d8b65711fbb5f1e99.tar.gz
bcm5719-llvm-0acaefaf9d67786ffbc8700d8b65711fbb5f1e99.zip
PR27938: Don't remove valid DebugLoc in Scalarizer
Added checks to make sure the Scalarizer::transferMetadata() don't remove valid debug locations from instructions. This is important as the verifier pass require that e.g. inlinable callsites have a valid debug location. https://llvm.org/bugs/show_bug.cgi?id=27938 Patch by Karl-Johan Karlsson Reviewers: dblaikie Differential Revision: http://reviews.llvm.org/D20807 llvm-svn: 272884
Diffstat (limited to 'llvm/lib/Transforms/Scalar/Scalarizer.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/Scalarizer.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Scalar/Scalarizer.cpp b/llvm/lib/Transforms/Scalar/Scalarizer.cpp
index 3f6fd8fa1a7..5e6df0ddf6d 100644
--- a/llvm/lib/Transforms/Scalar/Scalarizer.cpp
+++ b/llvm/lib/Transforms/Scalar/Scalarizer.cpp
@@ -341,7 +341,8 @@ void Scalarizer::transferMetadata(Instruction *Op, const ValueVector &CV) {
MI != ME; ++MI)
if (canTransferMetadata(MI->first))
New->setMetadata(MI->first, MI->second);
- New->setDebugLoc(Op->getDebugLoc());
+ if (Op->getDebugLoc() && !New->getDebugLoc())
+ New->setDebugLoc(Op->getDebugLoc());
}
}
}
OpenPOWER on IntegriCloud