diff --git a/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp b/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp index 2745af893be2..639c51803780 100644 --- a/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp +++ b/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp @@ -93,7 +93,7 @@ bool ArgPromotion::run(Module &M) { // See if we can transform all users to use the function directly. while (!CPR->use_empty()) { User *TheUser = CPR->use_back(); - if (!isa<Constant>(TheUser)) { + if (!isa<Constant>(TheUser) && !isa<GlobalVariable>(TheUser)) { Changed = true; TheUser->replaceUsesOfWith(CPR, I); } else { @@ -312,7 +312,7 @@ void ArgPromotion::DoPromotion(Function *F, std::vector<Argument*> &Args2Prom) { // Otherwise, if we promoted this argument, then all users are load // instructions, and all loads should be using the new argument that we // added. - /*DEBUG*/(std::cerr << "*** Promoted argument '" << I->getName() + DEBUG(std::cerr << "*** Promoted argument '" << I->getName() << "' of function '" << F->getName() << "'\n"); I2->setName(I->getName()+".val"); while (!I->use_empty()) {