[llvm-branch-commits] [llvm-gcc-branch] r104727 - in /llvm-gcc-4.2/branches/Apple/Hermes: ./ gcc/llvm-convert.cpp
Bob Wilson
bob.wilson at apple.com
Wed May 26 12:57:57 PDT 2010
Author: bwilson
Date: Wed May 26 14:57:57 2010
New Revision: 104727
URL: http://llvm.org/viewvc/llvm-project?rev=104727&view=rev
Log:
Merge 104726 from trunk.
Modified:
llvm-gcc-4.2/branches/Apple/Hermes/ (props changed)
llvm-gcc-4.2/branches/Apple/Hermes/gcc/llvm-convert.cpp
Propchange: llvm-gcc-4.2/branches/Apple/Hermes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed May 26 14:57:57 2010
@@ -1,2 +1,2 @@
/llvm/trunk:104523
-/llvm-gcc-4.2/trunk:100565,100624-100626,101304,102589,104420,104423,104523
+/llvm-gcc-4.2/trunk:100565,100624-100626,101304,102589,104420,104423,104523,104726
Modified: llvm-gcc-4.2/branches/Apple/Hermes/gcc/llvm-convert.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/branches/Apple/Hermes/gcc/llvm-convert.cpp?rev=104727&r1=104726&r2=104727&view=diff
==============================================================================
--- llvm-gcc-4.2/branches/Apple/Hermes/gcc/llvm-convert.cpp (original)
+++ llvm-gcc-4.2/branches/Apple/Hermes/gcc/llvm-convert.cpp Wed May 26 14:57:57 2010
@@ -4498,6 +4498,7 @@
std::vector<const Type*> CallArgTypes;
std::string NewAsmStr = ConvertInlineAsmStr(exp, NumOutputs+NumInputs);
std::string ConstraintStr;
+ bool HasSideEffects = ASM_VOLATILE_P(exp) || !ASM_OUTPUTS(exp);
// StoreCallResultAddr - The pointer to store the result of the call through.
SmallVector<Value *, 4> StoreCallResultAddrs;
@@ -4546,6 +4547,8 @@
NewConstraint[RegNameLen+2] = '}';
NewConstraint[RegNameLen+3] = 0;
SimplifiedConstraint = NewConstraint;
+ // This output will now be implicit; set the sideffect flag on the asm.
+ HasSideEffects = true;
// We should no longer consider mem constraints.
AllowsMem = false;
} else {
@@ -4780,8 +4783,7 @@
}
Value *Asm = InlineAsm::get(FTy, NewAsmStr, ConstraintStr,
- ASM_VOLATILE_P(exp) || !ASM_OUTPUTS(exp),
- ASM_ASM_BLOCK(exp));
+ HasSideEffects, ASM_ASM_BLOCK(exp));
CallInst *CV = Builder.CreateCall(Asm, CallOps.begin(), CallOps.end(),
CallResultTypes.empty() ? "" : "asmtmp");
CV->setDoesNotThrow();
More information about the llvm-branch-commits
mailing list