summaryrefslogtreecommitdiff
path: root/lib/Transforms/IPO
diff options
context:
space:
mode:
authorMatthijs Kooijman <matthijs@stdin.nl>2008-08-07 15:14:04 +0000
committerMatthijs Kooijman <matthijs@stdin.nl>2008-08-07 15:14:04 +0000
commit81ec2486b36e5f190785329faaa4ffe146cbcedc (patch)
tree0e1cc25ada4ec8f315d2486367fdd5eaee0aa0ad /lib/Transforms/IPO
parentb3e15c00086d8442f5ff6f00aeb1e2f5d8b68ee0 (diff)
downloadllvm-81ec2486b36e5f190785329faaa4ffe146cbcedc.tar.gz
llvm-81ec2486b36e5f190785329faaa4ffe146cbcedc.tar.bz2
llvm-81ec2486b36e5f190785329faaa4ffe146cbcedc.tar.xz
Add some debug output to SRETPromotion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54464 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/IPO')
-rw-r--r--lib/Transforms/IPO/StructRetPromotion.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Transforms/IPO/StructRetPromotion.cpp b/lib/Transforms/IPO/StructRetPromotion.cpp
index aa74944850..314d1b9871 100644
--- a/lib/Transforms/IPO/StructRetPromotion.cpp
+++ b/lib/Transforms/IPO/StructRetPromotion.cpp
@@ -89,6 +89,8 @@ bool SRETPromotion::PromoteReturn(CallGraphNode *CGN) {
if (F->arg_size() == 0 || !F->hasStructRetAttr() || F->doesNotReturn())
return false;
+ DOUT << "SretPromotion: Looking at sret function " << F->getNameStart() << "\n";
+
assert (F->getReturnType() == Type::VoidTy && "Invalid function return type");
Function::arg_iterator AI = F->arg_begin();
const llvm::PointerType *FArgType = dyn_cast<PointerType>(AI->getType());
@@ -99,10 +101,12 @@ bool SRETPromotion::PromoteReturn(CallGraphNode *CGN) {
// Check if it is ok to perform this promotion.
if (isSafeToUpdateAllCallers(F) == false) {
+ DOUT << "SretPromotion: Not all callers can be updated\n";
NumRejectedSRETUses++;
return false;
}
+ DOUT << "SretPromotion: sret argument will be promoted\n";
NumSRET++;
// [1] Replace use of sret parameter
AllocaInst *TheAlloca = new AllocaInst (STy, NULL, "mrv",