summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGStmt.cpp
diff options
context:
space:
mode:
authorEric Christopher <echristo@gmail.com>2015-02-06 18:44:18 +0000
committerEric Christopher <echristo@gmail.com>2015-02-06 18:44:18 +0000
commit79f5e4ede5a53d94a9c657ef56a1a2daae1e3b0f (patch)
tree2be5a0626c4259c7899cd91828365dbdd998caeb /clang/lib/CodeGen/CGStmt.cpp
parenta8cb36ea4334f3c0a65981f6f5ca4c81a1599717 (diff)
downloadbcm5719-llvm-79f5e4ede5a53d94a9c657ef56a1a2daae1e3b0f.tar.gz
bcm5719-llvm-79f5e4ede5a53d94a9c657ef56a1a2daae1e3b0f.zip
Inline asm IR input register constraints don't have early clobber
modifiers on them. If we have a matching output constraint with an early clobber make sure we don't propagate that to the input constraint. llvm-svn: 228422
Diffstat (limited to 'clang/lib/CodeGen/CGStmt.cpp')
-rw-r--r--clang/lib/CodeGen/CGStmt.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/CGStmt.cpp b/clang/lib/CodeGen/CGStmt.cpp
index 8e1c7f2d197..d921c0d9b97 100644
--- a/clang/lib/CodeGen/CGStmt.cpp
+++ b/clang/lib/CodeGen/CGStmt.cpp
@@ -1957,10 +1957,9 @@ void CodeGenFunction::EmitAsmStmt(const AsmStmt &S) {
InputConstraint = SimplifyConstraint(InputConstraint.c_str(), getTarget(),
&OutputConstraintInfos);
- InputConstraint =
- AddVariableConstraints(InputConstraint,
- *InputExpr->IgnoreParenNoopCasts(getContext()),
- getTarget(), CGM, S, Info.earlyClobber());
+ InputConstraint = AddVariableConstraints(
+ InputConstraint, *InputExpr->IgnoreParenNoopCasts(getContext()),
+ getTarget(), CGM, S, false /* No EarlyClobber */);
llvm::Value *Arg = EmitAsmInput(Info, InputExpr, Constraints);
OpenPOWER on IntegriCloud